Example #1
0
        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));
        }
Example #2
0
        /// <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()));
        }
Example #3
0
        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());
        }