コード例 #1
0
        public async Task And_Has_Keyword_Then_Gets_Standards_From_SearchManager(
            string keyword,
            OrderBy orderBy,
            StandardFilter filter,
            List <Standard> standardsFromRepo,
            StandardSearchResultsList searchResult,
            [Frozen] Mock <IStandardRepository> mockStandardsRepository,
            [Frozen] Mock <ISearchManager> mockSearchManager,
            [Frozen] Mock <IStandardsSortOrderService> mockSortOrderService,
            StandardsService service)
        {
            searchResult.Standards = new List <StandardSearchResult>
            {
                new StandardSearchResult {
                    StandardUId = standardsFromRepo[0].StandardUId
                }
            };
            var standardsFoundInSearch = standardsFromRepo
                                         .Where(standard => searchResult.Standards.Select(result => result.StandardUId).Contains(standard.StandardUId))
                                         .ToList();

            mockStandardsRepository
            .Setup(repository => repository.GetStandards(new List <int>(), new List <int>(), filter))
            .ReturnsAsync(standardsFromRepo);
            mockSearchManager
            .Setup(manager => manager.Query(keyword))
            .Returns(searchResult);
            mockSortOrderService
            .Setup(orderService => orderService.OrderBy(standardsFoundInSearch, It.IsAny <OrderBy>(), It.IsAny <string>()))
            .Returns(standardsFoundInSearch.OrderBy(standard => standard.SearchScore));

            var standards = await service.GetStandardsList(keyword, new List <int>(), new List <int>(), orderBy, filter);

            standards.Should().BeEquivalentTo(standardsFoundInSearch, StandardEquivalencyAssertionOptions.ExcludingFields);
        }
コード例 #2
0
        public async Task And_No_Keyword_And_Filtering_By_Active_Then_Gets_Standards_From_Repository(
            List <Standard> standardsFromRepo,
            OrderBy orderBy,
            StandardFilter filter,
            [Frozen] Mock <IStandardRepository> mockStandardsRepository,
            [Frozen] Mock <IStandardsSortOrderService> mockSortOrderService,
            StandardsService service)
        {
            filter = StandardFilter.Active;
            mockStandardsRepository
            .Setup(repository => repository.GetStandards(new List <int>(), new List <int>(), filter))
            .ReturnsAsync(standardsFromRepo);
            mockSortOrderService
            .Setup(orderService => orderService.OrderBy(standardsFromRepo, It.IsAny <OrderBy>(), It.IsAny <string>()))
            .Returns(standardsFromRepo.OrderBy(standard => standard.SearchScore));

            var result = (await service.GetStandardsList("", new List <int>(), new List <int>(), orderBy, filter)).ToList();

            result.Should().BeEquivalentTo(standardsFromRepo, StandardEquivalencyAssertionOptions.ExcludingFields);

            foreach (var standard in result)
            {
                standard.Route.Should().Be(standardsFromRepo.Single(c => c.LarsCode.Equals(standard.LarsCode)).Route.Name);
            }
        }
        public async Task Then_Gets_A_Standard_From_The_Repository_By_IFateReferenceNumber(
            string iFateReferenceNumber,
            Standard standardFromRepo,
            [Frozen] Mock <IStandardRepository> mockStandardsRepository,
            StandardsService service)
        {
            mockStandardsRepository
            .Setup(repository => repository.GetLatestActiveStandard(iFateReferenceNumber))
            .ReturnsAsync(standardFromRepo);

            var standard = await service.GetLatestActiveStandard(iFateReferenceNumber);

            standard.Should().BeEquivalentTo(standardFromRepo, StandardEquivalencyAssertionOptions.ExcludingFields);
        }
        public async Task Then_Gets_Count_From_Repo(
            int count,
            StandardFilter filter,
            [Frozen] Mock <IStandardRepository> mockRepository,
            StandardsService service)
        {
            mockRepository
            .Setup(repository => repository.Count(filter))
            .ReturnsAsync(count);

            var actual = await service.Count(filter);

            actual.Should().Be(count);
        }
コード例 #5
0
        public async Task And_Has_Levels_Then_Gets_Standards_From_Filters(
            List <int> levelCodes,
            OrderBy orderBy,
            StandardFilter filter,
            List <Standard> standardsFromRepo,
            [Frozen] Mock <IStandardRepository> mockStandardsRepository,
            [Frozen] Mock <IStandardsSortOrderService> mockSortOrderService,
            StandardsService service)
        {
            mockStandardsRepository
            .Setup(repository => repository.GetStandards(new List <int>(), levelCodes, filter))
            .ReturnsAsync(standardsFromRepo);
            mockSortOrderService
            .Setup(orderService => orderService.OrderBy(standardsFromRepo, It.IsAny <OrderBy>(), It.IsAny <string>()))
            .Returns(standardsFromRepo.OrderBy(standard => standard.SearchScore));

            var getStandardsListResult = await service.GetStandardsList("", new List <int>(), levelCodes, orderBy, filter);

            getStandardsListResult.Should().BeEquivalentTo(standardsFromRepo, StandardEquivalencyAssertionOptions.ExcludingFields);
        }
コード例 #6
0
        public async Task Then_Gets_A_Standard_From_The_Repository(
            string standardUId,
            Standard standardFromRepo,
            [Frozen] Mock <IStandardRepository> mockStandardsRepository,
            StandardsService service)
        {
            mockStandardsRepository
            .Setup(repository => repository.Get(standardUId))
            .ReturnsAsync(standardFromRepo);

            var expectedEqaProvider   = (Domain.Courses.EqaProvider)standardFromRepo;
            var expectedVersionDetail = (Domain.Courses.StandardVersionDetail)standardFromRepo;

            var standard = await service.GetStandard(standardUId);

            standard.Should().BeEquivalentTo(standardFromRepo, StandardEquivalencyAssertionOptions.ExcludingFields);

            standard.Route.Should().Be(standardFromRepo.Route.Name);
            standard.EqaProvider.Should().BeEquivalentTo(expectedEqaProvider);
            standard.VersionDetail.Should().BeEquivalentTo(expectedVersionDetail);
        }
コード例 #7
0
        public async Task Then_Standards_Are_Ordered_By_SortOrderService(
            List <int> levelCodes,
            OrderBy orderBy,
            StandardFilter filter,
            List <Standard> standardsFromRepo,
            List <Standard> standardsFromSortService,
            [Frozen] Mock <IStandardRepository> mockStandardsRepository,
            [Frozen] Mock <IStandardsSortOrderService> mockSortOrderService,
            StandardsService service)
        {
            mockStandardsRepository
            .Setup(repository => repository.GetStandards(new List <int>(), levelCodes, filter))
            .ReturnsAsync(standardsFromRepo);
            mockSortOrderService
            .Setup(orderService => orderService.OrderBy(standardsFromRepo, orderBy, ""))
            .Returns(standardsFromSortService.OrderBy(standard => standard.SearchScore));

            var getStandardsListResult = await service.GetStandardsList("", new List <int>(), levelCodes, orderBy, filter);

            getStandardsListResult
            .Should().BeEquivalentTo(standardsFromSortService.OrderBy(standard => standard.SearchScore), StandardEquivalencyAssertionOptions.ExcludingFieldsWithStrictOrdering);
        }
コード例 #8
0
        private void Run()
        {
            var dbConnFact = new DbConnectionFactory(_config);

            using (var conn = dbConnFact.Get())
            {
                Console.WriteLine($"Importing data:");
                Console.WriteLine($"  from:  {NHSD.GPITF.BuyingCatalog.Settings.GIF_CRM_URL(_config)}");
                Console.WriteLine($"  into:  {conn.ConnectionString}");
                Console.WriteLine();

                Console.WriteLine($"Retrieving data from CRM:");

                #region NHSD data
                Console.WriteLine($"  Frameworks...");
                var frameworksSvc = new FrameworksService(_repo);
                var frameworks    = frameworksSvc
                                    .GetAll()
                                    .Select(x => Converter.FromCrm(x))
                                    .ToList();

                Console.WriteLine($"  Capabilities...");
                var capsSvc = new CapabilitiesService(_repo);
                var caps    = capsSvc
                              .GetAll()
                              .Select(x => Converter.FromCrm(x))
                              .ToList();

                Console.WriteLine($"  Standards...");
                var stdsSvc = new StandardsService(_repo);
                var stds    = stdsSvc
                              .GetAll()
                              .Select(x => Converter.FromCrm(x))
                              .ToList();

                Console.WriteLine($"  TODO   CapabilityFramework...");
                Console.WriteLine($"  TODO   FrameworkStandard...");

                Console.WriteLine($"  CapabilityStandard...");
                var capsStdsSvc = new CapabilitiesStandardService(_repo);
                var capsStds    = capsStdsSvc
                                  .GetAll()
                                  .Select(x => Converter.FromCrm(x))
                                  .ToList();
                #endregion

                #region Supplier data
                Console.WriteLine($"  Organisations...");
                var orgsSvc = new OrganisationsService(_repo);
                var orgs    = orgsSvc
                              .GetAll()
                              .Select(x => Converter.FromCrm(x))
                              .ToList();

                Console.WriteLine($"  Contacts...");
                var contactsSvc = new ContactsService(_repo);
                var contacts    = orgs
                                  .SelectMany(org => contactsSvc.ByOrganisation(org.Id))
                                  .Select(x => Converter.FromCrm(x))
                                  .ToList();

                Console.WriteLine($"  Solutions...");
                var solnsSvc = new SolutionsService(_repo);
                var solns    = orgs
                               .SelectMany(org => solnsSvc.ByOrganisation(org.Id))
                               .Select(x => Converter.FromCrm(x))
                               .ToList();

                Console.WriteLine($"  TechnicalContact...");
                var techContSvc = new TechnicalContactService(_repo);
                var techConts   = solns
                                  .SelectMany(soln => techContSvc.BySolution(soln.Id))
                                  .Select(x => Converter.FromCrm(x))
                                  .ToList();

                Console.WriteLine($"  TODO   FrameworkSolution...");

                Console.WriteLine($"  ClaimedCapability...");
                var claimedCapsSvc = new CapabilitiesImplementedService(_repo);
                var claimedCaps    = solns
                                     .SelectMany(soln => claimedCapsSvc.BySolution(soln.Id))
                                     .Select(x => Converter.FromCrm(x))
                                     .ToList();

                Console.WriteLine($"  ClaimedStandard...");
                var claimedStdsSvc = new StandardsApplicableService(_repo);
                var claimedStds    = solns
                                     .SelectMany(soln => claimedStdsSvc.BySolution(soln.Id))
                                     .Select(x => Converter.FromCrm(x))
                                     .ToList();

                Console.WriteLine($"  ClaimedCapabilityEvidence...");
                var claimedCapsEvSvc = new CapabilitiesImplementedEvidenceService(_repo);
                var claimedCapsEv    = claimedCaps
                                       .SelectMany(claim => claimedCapsEvSvc.ByClaim(claim.Id).SelectMany(x => x))
                                       .Select(x => Converter.FromCrm(x))
                                       .ToList();

                Console.WriteLine($"  ClaimedStandardEvidence...");
                var claimedStdsEvSvc = new StandardsApplicableEvidenceService(_repo);
                var claimedStdsEv    = claimedStds
                                       .SelectMany(claim => claimedStdsEvSvc.ByClaim(claim.Id).SelectMany(x => x))
                                       .Select(x => Converter.FromCrm(x))
                                       .ToList();

                Console.WriteLine($"  ClaimedCapabilityReview...");
                var claimedCapsRevSvc = new CapabilitiesImplementedReviewsService(_repo);
                var claimedCapsRev    = claimedCapsEv
                                        .SelectMany(ev => claimedCapsRevSvc.ByEvidence(ev.Id).SelectMany(x => x))
                                        .Select(x => Converter.CapabilitiesImplementedReviewsFromCrm(x))
                                        .ToList();

                Console.WriteLine($"  ClaimedStandardReview...");
                var claimedStdsRevSvc = new StandardsApplicableReviewsService(_repo);
                var claimedStdsRev    = claimedStdsEv
                                        .SelectMany(ev => claimedStdsRevSvc.ByEvidence(ev.Id).SelectMany(x => x))
                                        .Select(x => Converter.StandardsApplicableReviewsFromCrm(x))
                                        .ToList();
                #endregion

                Console.WriteLine();

                Console.WriteLine($"Importing data into datastore...");
                using (var trans = conn.BeginTransaction())
                {
                    // NHSD data
                    conn.Insert(frameworks, trans);
                    conn.Insert(caps, trans);
                    conn.Insert(stds, trans);
                    conn.Insert(capsStds, trans);

                    // Supplier data
                    conn.Insert(orgs, trans);
                    conn.Insert(contacts, trans);
                    conn.Insert(solns, trans);
                    conn.Insert(techConts, trans);

                    conn.Insert(claimedCaps, trans);
                    conn.Insert(claimedStds, trans);

                    conn.Insert(GetInsertionTree(claimedCapsEv), trans);
                    conn.Insert(GetInsertionTree(claimedStdsEv), trans);

                    conn.Insert(GetInsertionTree(claimedCapsRev), trans);
                    conn.Insert(GetInsertionTree(claimedStdsRev), trans);

                    trans.Commit();
                }

                Console.WriteLine("Finished!");
            }
        }