public IEnumerable <RoomEntity> GetAllRoomFullSearch(SearchRoomEntity filter, int page, int pageSize, out int totalRow) { List <RoomEntity> lstroom = new List <RoomEntity>(); if (filter.Keywords == null) { filter.Keywords = ""; } try { lstroom = _roomRepository.GetAllListRoom().Where(x => x.Status == true && (x.RoomTypeID == filter.RoomTypeID || filter.RoomTypeID == null) && (x.Price >= filter.PriceFrom || filter.PriceFrom == null) && (x.Price <= filter.PriceTo || filter.PriceTo == null) && (x.ProvinceID == filter.ProvinceID || filter.ProvinceID == null) && (x.DistrictID == filter.DistrictID || filter.DistrictID == null) && (x.WardID == filter.WardID || filter.WardID == null) && (x.RoomName.Contains(filter.Keywords) || string.IsNullOrEmpty(filter.Keywords)) ).OrderByDescending(x => x.CreateDate).ToList(); totalRow = lstroom.Count(); } catch (Exception ex) { string FunctionName = string.Format("AddRoom('{0}')", lstroom); Common.Logs.LogCommon.WriteError(ex.ToString(), FunctionName); totalRow = 0; return(null); } return(lstroom.Skip((page) * pageSize).Take(pageSize)); }
public HttpResponseMessage GetAllRoomFullSearch(HttpRequestMessage request, [FromUri] SearchRoomEntity filter, int page = 0, int pageSize = 20) { return(CreateHttpResponse(request, () => { int totalRow = 0; var listRoom = _roomService.GetAllRoomFullSearch(filter, page, pageSize, out totalRow); var listRoomVm = Mapper.Map <List <RoomViewModel> >(listRoom); var paginationSet = new PaginationSet <RoomViewModel>() { Items = listRoomVm, Page = page, TotalCount = totalRow, TotalPages = (int)Math.Ceiling((decimal)totalRow / pageSize) }; HttpResponseMessage response = request.CreateResponse(HttpStatusCode.OK, paginationSet); return response; })); }