public async Task <WoodyPlantListModel> Handle(GetWoodyPlantsByFilterRequest request, CancellationToken cancellationToken) { var versionDoc = await fVersionRepository.GetSingleAsync(cancellationToken); if (await IsFillCoordsFilterAsync(request.Filter, request.Sort, cancellationToken)) { var all = await fWoodyPlantsRepository.GetWithCoordsAsync(cancellationToken); return(new WoodyPlantListModel { TotalCount = all.Count, WoodyPlants = all.ToPreview(), DataVersion = versionDoc?.Version }); } var plants = await fWoodyPlantsRepository.GetByFilterAsync(request.Filter, request.Sort, cancellationToken); return(new WoodyPlantListModel { TotalCount = await fWoodyPlantsRepository.CountByFilterAsync(request.Filter, cancellationToken), WoodyPlants = plants.ToPreview(), DataVersion = versionDoc?.Version }); }
public async Task HandleGetByFilter_OptimalizedGet_TestAsync() { var filter = new WoodyPlantFilterModel { Distance = null, Skip = 0, Text = null, Point = new Point { Latitude = 50, Longitude = 50 }, Take = 70 }; var sort = new WoodyPlantSortModel { SortBy = null, Ascending = true }; var request = new GetWoodyPlantsByFilterRequest(filter, sort); var id = ObjectId.GenerateNewId(); var expectedPlants = new List <WoodyPlantDocument>() { new WoodyPlantDocument { Id = id } }; fWoodyPlantsRepository .GetWithCoordsAsync(Arg.Is(default(CancellationToken))) .Returns(expectedPlants); fWoodyPlantsRepository .CountByFilterAsync(Arg.Is(filter), Arg.Is(default(CancellationToken))) .Returns(1); var result = await new WoodyPlantsRequestHandler(fWoodyPlantsRepository, fVersionRepository).Handle(request, default); Assert.NotNull(result); Assert.True(sort.Ascending); Assert.Equal(expectedPlants.Count, result.WoodyPlants.Count); Assert.Equal(expectedPlants[0].Id, result.WoodyPlants[0].Id); Assert.Equal(1, result.TotalCount); }