public IActionResult Search([FromQuery] HotelInventorySearchModel model)
        {
            var hotelIdDecrypted = Decrypt.DecryptToInt32(model.HotelFid);

            if (hotelIdDecrypted != 0)
            {
                var response = _hotelInventoryService.Search(model);
                return(Ok(response));
            }
            return(Ok(BaseResponse <object> .BadRequest()));
        }
Пример #2
0
        public BaseResponse <PagedList <HotelInventoryViewModel> > Search(HotelInventorySearchModel model)
        {
            try
            {
                var hotelId = model.HotelFid.DecryptToInt32();
                if (model != null && hotelId != 0)
                {
                    //Filter values
                    var roomName = !string.IsNullOrEmpty(model.RoomName) ? model.RoomName.ToUpper() : string.Empty;
                    var fromDate = model.FromDate;
                    var toDate   = model.ToDate;

                    //Paging values
                    var pageIndex  = model.PageIndex > 0 ? model.PageIndex : 1;
                    var pageSize   = model.PageSize > 0 ? model.PageSize : 10;
                    var sortColumn = !string.IsNullOrEmpty(model.SortColumn) ? model.SortColumn : "RoomName";
                    var sortType   = !string.IsNullOrEmpty(model.SortType) ? model.SortType : "ASC";
                    var sortString = $"{sortColumn} {sortType}";

                    //Query
                    var query = _db.HotelInventories
                                .AsNoTracking()
                                .Where(k => !k.Deleted)
                                .Where(k => hotelId != 0 && k.HotelFid == hotelId)
                                .Where(k => string.IsNullOrEmpty(roomName) || k.RoomName.ToUpper().Contains(roomName))
                                .Where(k => (fromDate == null || k.ActivatedDate >= fromDate) && (toDate == null || k.ActivatedDate <= toDate))
                                .Select(k => _mapper.Map <HotelInventories, HotelInventoryViewModel>(k))
                                .OrderBy(sortString);

                    var result = new PagedList <HotelInventoryViewModel>(query, pageIndex, pageSize);
                    return(BaseResponse <PagedList <HotelInventoryViewModel> > .Success(result));
                }
                return(BaseResponse <PagedList <HotelInventoryViewModel> > .BadRequest());
            }
            catch (Exception ex)
            {
                return(BaseResponse <PagedList <HotelInventoryViewModel> > .InternalServerError(ex));
            }
        }