public async Task <SearchAccommodationViewModel> GetAsync(SearchAccommodationFormModel searchAccommodationForm) { try { var queryable = _context.Accommodations.AsQueryable(); if (!string.IsNullOrEmpty(searchAccommodationForm.Caption)) { queryable = queryable.Where(q => q.Caption.Contains(searchAccommodationForm.Caption)); } if (searchAccommodationForm.IsActivated.HasValue) { queryable = queryable.Where(q => q.IsActivated == searchAccommodationForm.IsActivated.Value); } if (searchAccommodationForm.CityId.HasValue) { queryable = queryable.Where(q => q.CityId == searchAccommodationForm.CityId.Value); } queryable = queryable.OrderBy(x => x.CityId); var resp = await queryable.Skip((searchAccommodationForm.PageIndex - 1) *searchAccommodationForm.PageSize).Take(searchAccommodationForm.PageSize).ToListAsync(); var count = await queryable.CountAsync(); var searchViewModel = new SearchAccommodationViewModel { searchAccommodationViewModels = resp.Select(respAcc => new AccommodationViewModel() { Id = respAcc.Id, Caption = respAcc.Caption, Address = respAcc.Address, CityTitle = $"{respAcc.City.Title} ({respAcc.City.Province.Title})", Code = respAcc.Code, District = respAcc.District, IsActivated = respAcc.IsActivated, FileId = respAcc.FileId, Number = respAcc.Number }).ToList(), PageIndex = searchAccommodationForm.PageIndex, PageSize = searchAccommodationForm.PageSize, TotalCount = count }; return(searchViewModel); } catch (Exception ex) { throw new ReservationGlobalException(AccommodationServiceErrors.GetAccommodationError, ex); } }
public async Task <SearchAccommodationViewModel> SmartSearchAsync(SmartSearchFormModel smartSearchForm) { var queryable = _context.Accommodations.Where(x => x.CityId == smartSearchForm.CityId); //if (smartSearchForm.StartDate.HasValue) //{ // query = query; //} //if (smartSearchForm.EndTime.HasValue) //{ // query = query; //} var resp = await queryable.Skip((smartSearchForm.PageIndex - 1) *smartSearchForm.PageSize).Take(smartSearchForm.PageSize).ToListAsync(); var count = await queryable.CountAsync(); var searchViewModel = new SearchAccommodationViewModel { searchAccommodationViewModels = resp.Select(respAcc => new AccommodationViewModel() { Id = respAcc.Id, Caption = respAcc.Caption, Address = respAcc.Address, CityTitle = $"{respAcc.City.Title} ({respAcc.City.Province.Title})", Code = respAcc.Code, District = respAcc.District, IsActivated = respAcc.IsActivated, FileId = respAcc.FileId, Number = respAcc.Number }).ToList(), PageIndex = smartSearchForm.PageIndex, PageSize = smartSearchForm.PageSize, TotalCount = count }; return(searchViewModel); }