Beispiel #1
0
        public ActionResult Index(UserReservationSearch search, int?page, string offerName, string hotelName, string dateFrom,
                                  string dateTo, string peopleFrom, string peopleTo, string priceFrom, string priceTo)
        {
            ViewBag.CurrentSearch = new UserReservationSearch();
            ViewBag.empty         = null;
            if (search != null)
            {
                page = 1;
                ViewBag.CurrentSearch = search;
            }
            else
            {
                ViewBag.CurrentSearch.offerName  = offerName;
                ViewBag.CurrentSearch.hotelName  = hotelName;
                ViewBag.CurrentSearch.dateFrom   = dateFrom;
                ViewBag.CurrentSearch.dateTo     = dateTo;
                ViewBag.CurrentSearch.peopleFrom = peopleFrom;
                ViewBag.CurrentSearch.peopleTo   = peopleTo;
                ViewBag.CurrentSearch.priceFrom  = priceFrom;
                ViewBag.CurrentSearch.priceTo    = priceTo;
                search = ViewBag.CurrentSearch;
            }

            int pageSize   = 10;
            int pageNumber = (page ?? 1);
            var user       = HttpContext.User.Identity;
            var idUser     = _accountSqlExecutor.GetUserId(user.Name);

            var reservations           = _reservationsSqlExecutor.FilterUserReservations(idUser, search);
            UserReservationModel model = new UserReservationModel {
                Reservations = reservations.ToPagedList <UserReservationFullData>(pageNumber, pageSize), Search = search
            };

            return(View(model));
        }
Beispiel #2
0
        public List <UserReservationFullData> FilterUserReservations(int idUser, UserReservationSearch search)
        {
            search.dateFrom   = string.IsNullOrEmpty(search.dateFrom) ? "1999-01-01" : search.dateFrom;
            search.dateTo     = string.IsNullOrEmpty(search.dateTo) ? "2100-01-01" : search.dateTo;
            search.guestsFrom = string.IsNullOrEmpty(search.guestsFrom) ? "1" : search.guestsFrom;
            search.guestsTo   = string.IsNullOrEmpty(search.guestsTo) ? "20" : search.guestsTo;
            search.priceFrom  = string.IsNullOrEmpty(search.priceFrom) ? "0" : search.priceFrom;
            search.priceTo    = string.IsNullOrEmpty(search.priceTo) ? "100000" : search.priceTo;

            var sqlQuery = $"SELECT USER_RESERVATIONS.*, OFFERS.*, HOTELS.NAME AS HOTEL_NAME FROM USER_RESERVATIONS INNER JOIN OFFERS ON USER_RESERVATIONS.ID_OFFER = OFFERS.ID_OFFER " +
                           $" INNER JOIN HOTELS ON OFFERS.ID_HOTEL = HOTELS.ID_HOTEL" +
                           $" WHERE OFFERS.NAME LIKE '%" + search.offerName + "%' AND HOTELS.NAME LIKE '%" + search.hotelName + "%'" +
                           $" AND OFFERS.DATE_START BETWEEN @dateFrom AND @dateTo AND OFFERS.DATE_END BETWEEN @dateFrom AND @dateTo AND OFFERS.PRICE BETWEEN @priceFrom AND @priceTo " +
                           $" AND USER_RESERVATIONS.GUESTS >= @guestsFrom and USER_RESERVATIONS.GUESTS <= @guestsTo AND USER_RESERVATIONS.ID_USER = '******'";

            List <UserReservationFullData> reservations = db.Query <UserReservationFullData>(sqlQuery, search).ToList();

            foreach (var r in reservations)
            {
                r.GuestsList = GetGuestsToReservation(r.ID_USER_RESERVATION);
            }

            return(reservations);
        }