Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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;
            }));
        }