@Override
    public String execute(SessionRequestContent request) throws ServletLogicException {
        String page = ConfigurationManager.getProperty("path.page.edittour");
        resaveParamsSaveTour(request);
        try {
            Criteria criteria = new Criteria();
            Tour tour = (Tour) request.getSessionAttribute(JSP_CURRENT_TOUR);
            Validator.validateTour(tour);
            criteria.addParam(DAO_ID_TOUR, tour.getIdTour());
            criteria.addParam(DAO_TOUR_DATE, tour.getDepartDate());
            criteria.addParam(DAO_TOUR_DAYS, tour.getDaysCount());
            criteria.addParam(DAO_TOUR_PRICE, tour.getPrice());
            criteria.addParam(DAO_TOUR_DISCOUNT, tour.getDiscount());
            criteria.addParam(DAO_TOUR_TOTAL_SEATS, tour.getTotalSeats());
            criteria.addParam(DAO_TOUR_FREE_SEATS, tour.getFreeSeats());
            criteria.addParam(DAO_ID_DIRECTION, tour.getDirection().getIdDirection());

            User user = (User) request.getSessionAttribute(JSP_USER);
            if (user != null) {
                criteria.addParam(DAO_USER_LOGIN, user.getLogin());
                ClientType type = ClientTypeManager.clientTypeOf(user.getRole().getRoleName());
                criteria.addParam(DAO_ROLE_NAME, type);
            } else {
                criteria.addParam(DAO_ROLE_NAME, request.getSessionAttribute(JSP_ROLE_TYPE));
            }
            AbstractLogic tourLogic = LogicFactory.getInctance(LogicType.TOURLOGIC);
            Integer resIdTour = tourLogic.doRedactEntity(criteria);
            request.setParameter(JSP_SELECT_ID, resIdTour.toString());
            page = new ShowTour().execute(request);
        } catch (TechnicalException | LogicException ex) {
            request.setAttribute("errorSaveReason", ex.getMessage());
            request.setAttribute("errorSave", "message.errorSaveData");
            request.setSessionAttribute(JSP_PAGE, page);
        }
        return page;
    }