public async Task <IActionResult> GetCurrentUserRealEstates([FromBody] RealEstateSearchModel realEstateSearchModel, int page, int numberOfRealEstatesPerPage) { var user = HttpContext.User; var userName = user.Identity.Name; var list = await _realEstateService.GetRealEstatesWithPaginationAsync(realEstateSearchModel, page, numberOfRealEstatesPerPage, userName); return(Ok(list)); }
public async Task <IEnumerable <RealEstateViewModel> > GetRealEstatesWithPaginationAsync(RealEstateSearchModel realEstateSearchModel, int page, int numberOfRealEstatesPerPage, string userName) { var listOfRealEstateViewModels = new List <RealEstateViewModel>(); var user = await _userManager.FindByNameAsync(userName); var list = await _realEstateRepository.GetRealEstatesByConditionWithPaginationAsync(realEstateSearchModel, page, numberOfRealEstatesPerPage, user); foreach (var realEstate in list) { var realEstateViewModel = RealEstateMapper.ToViewModel(realEstate); listOfRealEstateViewModels.Add(realEstateViewModel); } return(listOfRealEstateViewModels); }
public async Task <IQueryable <RealEstate> > GetRealEstatesByConditionWithPaginationAsync(RealEstateSearchModel realEstateSearchModel, int page, int numberOfRealEstatesPerPage, User user) { var list = _context.RealEstates.AsQueryable(); list = list.Where(x => x.IsForRent == realEstateSearchModel.IsForRent); list = list.Where(x => x.IsReadyToMoveIn == realEstateSearchModel.IsReadyToMoveIn); if (realEstateSearchModel.Floor != -1) { list = list.Where(x => x.Floor == realEstateSearchModel.Floor); } if (realEstateSearchModel.NumberOfFloors != -1) { list = list.Where(x => x.NumberOfFloors == realEstateSearchModel.NumberOfFloors); } if (realEstateSearchModel.NumberOfRooms != -1) { list = list.Where(x => x.NumberOfRooms == realEstateSearchModel.NumberOfRooms); } if (realEstateSearchModel.PriceFrom != -1) { list = list.Where(x => x.Price >= realEstateSearchModel.PriceFrom); } if (realEstateSearchModel.PriceTo != -1) { list = list.Where(x => x.Price <= realEstateSearchModel.PriceTo); } if (!string.IsNullOrEmpty(realEstateSearchModel.Heating)) { list = list.Where(x => x.Heating == realEstateSearchModel.Heating); } if (!string.IsNullOrEmpty(realEstateSearchModel.Location)) { list = list.Where(x => x.Location == realEstateSearchModel.Location); } if (!string.IsNullOrEmpty(realEstateSearchModel.Name)) { list = list.Where(x => x.Name == realEstateSearchModel.Name); } if (!string.IsNullOrEmpty(realEstateSearchModel.Category)) { list = list.Where(x => x.Category == realEstateSearchModel.Category); } if (user != null) { list = list.Where(x => x.User == user); } var numberOfRealEstatesToSkip = (page - 1) * numberOfRealEstatesPerPage; list = list.Skip(numberOfRealEstatesToSkip).Take(numberOfRealEstatesPerPage); return(list); }
public async Task <IActionResult> GetRealEstatesByConditionWithPaginationAsync([FromBody] RealEstateSearchModel realEstateSearchModel, int page, int numberOfRealEstatesPerPage) { var list = await _realEstateService.GetRealEstatesWithPaginationAsync(realEstateSearchModel, page, numberOfRealEstatesPerPage, null); return(Ok(list)); }