public Paged <PimsResearchFile> GetPage(ResearchFilter filter) { _logger.LogInformation("Searching for research files..."); _logger.LogDebug("Research file search with filter", filter); _user.ThrowIfNotAuthorized(Permissions.ResearchFileView); return(_researchFileRepository.GetPage(filter)); }
/// <summary> /// Get a page with an array of leases within the specified filters. /// Note that the 'researchFilter' will control the 'page' and 'quantity'. /// </summary> /// <param name="filter"></param> /// <returns></returns> public Paged <PimsResearchFile> GetPage(ResearchFilter filter) { filter.ThrowIfNull(nameof(filter)); if (!filter.IsValid()) { throw new ArgumentException("Argument must have a valid filter", nameof(filter)); } var skip = (filter.Page - 1) * filter.Quantity; var query = this.Context.GenerateResearchQuery(filter); var items = query .Skip(skip) .Take(filter.Quantity) .ToArray(); return(new Paged <PimsResearchFile>(items, filter.Page, filter.Quantity, query.Count())); }
public void Get_ResearchFiles_Paged(ResearchFilter filter, int expectedCount) { // Arrange var helper = new TestHelper(); var user = PrincipalHelper.CreateForPermission(Permissions.ResearchFileView); var eResearch = EntityHelper.CreateResearchFile(rfileNumber: "100-000-000"); eResearch.RoadAlias = "a road name or alias"; eResearch.RoadName = "a road name or alias"; eResearch.Name = "research file name"; eResearch.ResearchFileStatusTypeCodeNavigation = new Entity.PimsResearchFileStatusType() { Id = "Active" }; eResearch.PimsPropertyResearchFiles = new List <PimsPropertyResearchFile>() { new PimsPropertyResearchFile() { Property = new PimsProperty() { RegionCode = 1 } } }; var context = helper.CreatePimsContext(user, true); context.AddAndSaveChanges(eResearch); var repository = helper.CreateRepository <ResearchFileRepository>(user); // Act var result = repository.GetPage(filter); // Assert Assert.NotNull(result); Assert.IsAssignableFrom <Paged <PimsResearchFile> >(result); Assert.Equal(expectedCount, result.Count()); }