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())); }
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)); } }