public async Task <IActionResult> GetEstates([FromQuery] EstateParams estateParams) { var estates = await _repo.GetEstates(estateParams); var estatesToReturn = _mapper.Map <IEnumerable <EstateForListDto> >(estates); Response.AddPagination(estates.CurrentPage, estates.PageSize, estates.TotalCount, estates.TotalPages); return(Ok(estatesToReturn)); }
public void GetEstates_Pagination_OneAdToPage() { // Arrange var estateRepo = new EstatesRepository(_context); EstateParams estateParams = new EstateParams() { PageSize = 1 }; // Act var result = estateRepo.GetEstates(estateParams); // Assert Assert.IsTrue(result.Result.Count == 1); }
public void GetEstates_Pagination_OneAdToPage_SecondPage() { // Arrange var estateRepo = new EstatesRepository(_context); EstateParams estateParams = new EstateParams(); var resultExpected = estateRepo.GetEstates(estateParams) .Result .ToList(); estateParams.PageSize = 1; estateParams.PageNumber = 2; // Act var result = estateRepo.GetEstates(estateParams); // Assert Assert.AreEqual(resultExpected[1], result.Result[0]); }
public void GetEstates_Filtering_ByStreet() { // Arrange var estateRepo = new EstatesRepository(_context); EstateParams estateParams = new EstateParams(); var resultExpected = estateRepo.GetEstates(estateParams) .Result .Where(e => e.Street == "Shevchenka") .ToList(); estateParams.Street = "Shevchenka"; // Act var result = estateRepo.GetEstates(estateParams); // Assert CollectionAssert.AreEqual(resultExpected, result.Result); }
public void GetEstates_Filtering_ByCountry() { // Arrange var estateRepo = new EstatesRepository(_context); EstateParams estateParams = new EstateParams(); var resultExpected = estateRepo.GetEstates(estateParams) .Result .Where(e => e.Country == "Ukraine") .ToList(); estateParams.Country = "Ukraine"; // Act var result = estateRepo.GetEstates(estateParams); // Assert CollectionAssert.AreEqual(resultExpected, result.Result); }
public void GetEstates_Filtering_OrderBySquareDown() { // Arrange var estateRepo = new EstatesRepository(_context); EstateParams estateParams = new EstateParams(); var resultExpected = estateRepo.GetEstates(estateParams) .Result .OrderByDescending(e => e.Square) .ToList(); estateParams.OrderBy = "squareDown"; // Act var result = estateRepo.GetEstates(estateParams); // Assert CollectionAssert.AreEqual(resultExpected, result.Result); }
public void GetEstates_Filtering_OrderByRoomsUp() { // Arrange var estateRepo = new EstatesRepository(_context); EstateParams estateParams = new EstateParams(); var resultExpected = estateRepo.GetEstates(estateParams) .Result .OrderBy(e => e.Rooms) .ToList(); estateParams.OrderBy = "roomsUp"; // Act var result = estateRepo.GetEstates(estateParams); // Assert CollectionAssert.AreEqual(resultExpected, result.Result); }
public void GetEstates_Filtering_TypeSelling() { // Arrange var estateRepo = new EstatesRepository(_context); EstateParams estateParams = new EstateParams() { Type = "Selling" }; var resultExpected = estateRepo.GetEstates(estateParams) .Result .Where(e => e.AdType == "Selling") .ToList(); // Act var result = estateRepo.GetEstates(estateParams); // Assert CollectionAssert.AreEqual(resultExpected, result.Result); }
public void GetEstates_Filtering_FloorsMinMax() { // Arrange var estateRepo = new EstatesRepository(_context); EstateParams estateParams = new EstateParams(); var resultExpected = estateRepo.GetEstates(estateParams) .Result .Where(e => e.Floors >= 1 && e.Floors <= 2) .ToList(); estateParams.MinFloors = 1; estateParams.MaxFloors = 2; // Act var result = estateRepo.GetEstates(estateParams); // Assert CollectionAssert.AreEqual(resultExpected, result.Result); }
public void GetEstates_Filtering_SquareMinMax() { // Arrange var estateRepo = new EstatesRepository(_context); EstateParams estateParams = new EstateParams(); var resultExpected = estateRepo.GetEstates(estateParams) .Result .Where(e => e.Square >= 50 && e.Square <= 100) .ToList(); estateParams.MinSquare = 50; estateParams.MaxSquare = 100; // Act var result = estateRepo.GetEstates(estateParams); // Assert CollectionAssert.AreEqual(resultExpected, result.Result); }
public async Task <PagedList <Domain.Entities.Estate> > GetEstates(EstateParams estateParams) { var estates = _context.Estates.Include(p => p.Photos).OrderByDescending(e => e.Created).AsQueryable(); if (!string.IsNullOrEmpty(estateParams.Type) && estateParams.Type != "All") { estates = estates.Where(e => e.AdType == estateParams.Type); } if (!string.IsNullOrEmpty(estateParams.Country) && estateParams.Country != "All") { estates = estates.Where(e => e.Country == estateParams.Country); } if (!string.IsNullOrEmpty(estateParams.City) && estateParams.City != "All") { estates = estates.Where(e => e.City == estateParams.City); } if (!string.IsNullOrEmpty(estateParams.Street) && estateParams.Street != "All") { estates = estates.Where(e => e.Street == estateParams.Street); } if (estateParams.OwnerId != -1) { estates = estates.Where(e => e.OwnerId == estateParams.OwnerId); } if (estateParams.MinPrice != 0 || estateParams.MaxPrice != 5000000) { estates = estates.Where(e => e.Price >= estateParams.MinPrice && e.Price <= estateParams.MaxPrice); } if (estateParams.MinSquare != 0 || estateParams.MaxSquare != 1000) { estates = estates.Where(e => e.Square >= estateParams.MinSquare && e.Square <= estateParams.MaxSquare); } if (estateParams.MinRooms != 1 || estateParams.MaxRooms != 10) { estates = estates.Where(e => e.Rooms >= estateParams.MinRooms && e.Rooms <= estateParams.MaxRooms); } if (estateParams.MinFloors != 1 || estateParams.MaxFloors != 50) { estates = estates.Where(e => e.Floors >= estateParams.MinFloors && e.Floors <= estateParams.MaxFloors); } if (!string.IsNullOrEmpty(estateParams.OrderBy)) { switch (estateParams.OrderBy) { case "priceUp": { estates = estates.OrderBy(e => e.Price); break; }; case "priceDown": { estates = estates.OrderByDescending(e => e.Price); break; }; case "squareUp": { estates = estates.OrderBy(e => e.Square); break; }; case "squareDown": { estates = estates.OrderByDescending(e => e.Square); break; }; case "roomsUp": { estates = estates.OrderBy(e => e.Rooms); break; }; case "roomsDown": { estates = estates.OrderByDescending(e => e.Rooms); break; }; default: { estates = estates.OrderByDescending(e => e.Created); break; } } } return(await PagedList <Domain.Entities.Estate> .CreateAsync(estates, estateParams.PageNumber, estateParams.PageSize)); }