private bool EqualsTqRegistrationPathway(TqRegistrationPathway x, TqRegistrationPathway y)
 {
     if (x == null && x == null)
     {
         return(true);
     }
     else if (x == null || x == null)
     {
         return(false);
     }
     else if (x.GetType() != y.GetType())
     {
         return(false);
     }
     else
     {
         var retVal =
             //x.TqRegistrationProfileId == y.TqRegistrationProfileId &&
             x.TqProviderId == y.TqProviderId &&
             Equals(x.StartDate, y.StartDate) &&
             Equals(x.EndDate, y.EndDate) &&
             x.Status == y.Status;
         return(retVal);
     }
 }
コード例 #2
0
        public static void AssertRegistrationPathway(TqRegistrationPathway actualPathway, TqRegistrationPathway expectedPathway, bool assertStatus = true)
        {
            actualPathway.Should().NotBeNull();
            actualPathway.TqProviderId.Should().Be(expectedPathway.TqProviderId);
            actualPathway.AcademicYear.Should().Be(expectedPathway.AcademicYear);
            if (assertStatus)
            {
                actualPathway.Status.Should().Be(expectedPathway.Status);
            }

            actualPathway.IsBulkUpload.Should().Be(expectedPathway.IsBulkUpload);

            // Assert specialisms
            actualPathway.TqRegistrationSpecialisms.Count.Should().Be(expectedPathway.TqRegistrationSpecialisms.Count);

            foreach (var expectedSpecialism in expectedPathway.TqRegistrationSpecialisms)
            {
                var actualSpecialism = actualPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.TlSpecialismId == expectedSpecialism.TlSpecialismId);

                actualSpecialism.Should().NotBeNull();
                actualSpecialism.TlSpecialismId.Should().Be(expectedSpecialism.TlSpecialismId);
                actualSpecialism.IsOptedin.Should().Be(expectedSpecialism.IsOptedin);
                actualSpecialism.IsBulkUpload.Should().Be(expectedSpecialism.IsBulkUpload);
            }
        }
        private bool IsValidAddResultRequestAsync(TqRegistrationPathway registrationPathway, AddResultRequest addResultRequest)
        {
            // 1. Must be an active registration.
            if (registrationPathway == null || registrationPathway.Status != RegistrationPathwayStatus.Active)
            {
                return(false);
            }


            if (addResultRequest.ComponentType == ComponentType.Core)
            {
                var assessmentEntry = registrationPathway.TqPathwayAssessments.FirstOrDefault(p => p.Id == addResultRequest.AssessmentId && p.IsOptedin && p.EndDate == null);

                if (assessmentEntry == null)
                {
                    return(false);
                }

                var anyActiveResult = assessmentEntry.TqPathwayResults.Any(x => x.IsOptedin && x.EndDate == null);
                return(!anyActiveResult);
            }
            else
            {
                return(false);
            }
        }
コード例 #4
0
        public IList <TqRegistrationSpecialism> BuildList(TqRegistrationPathway tqRegistrationPathway = null)
        {
            tqRegistrationPathway ??= new TqRegistrationPathwayBuilder().Build();
            var tqRegistrationSpecialisms = new List <TqRegistrationSpecialism>
            {
                new TqRegistrationSpecialism
                {
                    TqRegistrationPathwayId = tqRegistrationPathway.Id,
                    TqRegistrationPathway   = tqRegistrationPathway,
                    TlSpecialismId          = 1,
                    StartDate    = DateTime.UtcNow,
                    IsOptedin    = true,
                    IsBulkUpload = true,
                    CreatedBy    = Constants.CreatedByUser,
                    CreatedOn    = Constants.CreatedOn,
                    ModifiedBy   = Constants.ModifiedByUser,
                    ModifiedOn   = Constants.ModifiedOn
                },
                new TqRegistrationSpecialism
                {
                    TqRegistrationPathwayId = tqRegistrationPathway.Id,
                    TqRegistrationPathway   = tqRegistrationPathway,
                    TlSpecialismId          = 2,
                    StartDate    = DateTime.UtcNow,
                    IsOptedin    = true,
                    IsBulkUpload = true,
                    CreatedBy    = Constants.CreatedByUser,
                    CreatedOn    = Constants.CreatedOn,
                    ModifiedBy   = Constants.ModifiedByUser,
                    ModifiedOn   = Constants.ModifiedOn
                }
            };

            return(tqRegistrationSpecialisms);
        }
コード例 #5
0
        public async Task WhenAsync(long aoUkprn, int profileId, bool includeProfile, bool includeIndustryPlacements)
        {
            if (_actualResult != null)
            {
                return;
            }

            _actualResult = await RegistrationRepository.GetRegistrationLiteAsync(aoUkprn, profileId, includeProfile, includeIndustryPlacements);
        }
        public async Task WhenAsync(long aoUkprn, int profileId)
        {
            if (_result != null)
            {
                return;
            }

            _result = await ResultRepository.GetResultsAsync(aoUkprn, profileId);
        }
コード例 #7
0
        private async Task <Tuple <List <TqRegistrationSpecialism>, List <TqPathwayAssessment>, List <IndustryPlacement> > > ProcessRegistrationPathwayEntities(BulkConfig bulkConfig, List <TqRegistrationPathway> pathwayRegistrations, List <TqRegistrationSpecialism> specialismRegistrations, List <TqPathwayAssessment> pathwayAssessments, List <IndustryPlacement> industryPlacements)
        {
            if (pathwayRegistrations.Count > 0)
            {
                var orignialPathwayEntititesCopy = new List <TqRegistrationPathway>(pathwayRegistrations);

                pathwayRegistrations = SortUpdateAndInsertOrder(pathwayRegistrations, x => x.Id);

                await _dbContext.BulkInsertOrUpdateAsync(pathwayRegistrations, bulkConfig);

                orignialPathwayEntititesCopy.ForEach(pathway =>
                {
                    TqRegistrationPathway pathwayEntity = null;
                    if (pathway.Id <= 0)
                    {
                        pathwayEntity = pathwayRegistrations.FirstOrDefault(p => p.TqRegistrationProfileId == pathway.TqRegistrationProfileId &&
                                                                            p.TqProviderId == pathway.TqProviderId &&
                                                                            p.Status == RegistrationPathwayStatus.Active);
                    }

                    foreach (var industryPlacement in pathway.IndustryPlacements)
                    {
                        // update fk relationship id for newely added records
                        // take only newly added industry placement record as we are not maintaining history in IP table
                        // so we don't want to update existing records
                        if (industryPlacement.TqRegistrationPathwayId == 0)
                        {
                            industryPlacement.TqRegistrationPathwayId = pathwayEntity.Id;
                            industryPlacements.Add(industryPlacement);
                        }
                    }

                    foreach (var specialism in pathway.TqRegistrationSpecialisms)
                    {
                        // update fk relationship id for newely added records
                        if (specialism.TqRegistrationPathwayId == 0)
                        {
                            specialism.TqRegistrationPathwayId = pathwayEntity.Id;
                        }
                        specialismRegistrations.Add(specialism);
                    }

                    foreach (var assessment in pathway.TqPathwayAssessments)
                    {
                        if (assessment.TqRegistrationPathwayId == 0)
                        {
                            assessment.TqRegistrationPathwayId = pathwayEntity.Id;
                        }

                        pathwayAssessments.Add(assessment);
                    }
                });
            }

            return(new Tuple <List <TqRegistrationSpecialism>, List <TqPathwayAssessment>, List <IndustryPlacement> >(specialismRegistrations, pathwayAssessments, industryPlacements));
        }
コード例 #8
0
 private TqPathwayAssessment GetExpectedPathwayAssessment(long uln, TqRegistrationPathway expectedPathway)
 {
     if (expectedPathway.Status == RegistrationPathwayStatus.Withdrawn)
     {
         return(_pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate != null));
     }
     else
     {
         return(_pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate == null));
     }
 }
        private TqRegistrationProfile SeedRegistrationData(long uln)
        {
            var profile = new TqRegistrationProfileBuilder().BuildList().FirstOrDefault(p => p.UniqueLearnerNumber == uln);
            var tqRegistrationProfile = RegistrationsDataProvider.CreateTqRegistrationProfile(DbContext, profile);

            _tqRegistrationPathway = RegistrationsDataProvider.CreateTqRegistrationPathway(DbContext, tqRegistrationProfile, TqProviders.First());

            foreach (var specialism in Specialisms)
            {
                _tqRegistrationPathway.TqRegistrationSpecialisms.Add(RegistrationsDataProvider.CreateTqRegistrationSpecialism(DbContext, _tqRegistrationPathway, specialism));
            }

            DbContext.SaveChangesAsync();
            return(profile);
        }
        private bool IsValidAddAssessmentRequestAsync(TqRegistrationPathway registrationPathway, ComponentType componentType)
        {
            // 1. Must be an active registration.
            if (registrationPathway == null || registrationPathway.Status != RegistrationPathwayStatus.Active)
            {
                return(false);
            }

            // 2. Must not have an active assessment.
            var anyActiveAssessment = componentType == ComponentType.Core ?
                                      registrationPathway.TqPathwayAssessments.Any(x => x.IsOptedin && x.EndDate == null) :
                                      registrationPathway.TqRegistrationSpecialisms.Any(x => x.TqSpecialismAssessments.Any(x => x.IsOptedin && x.EndDate == null));

            return(!anyActiveAssessment);
        }
        public IndustryPlacement Build(TqRegistrationPathway tqRegistrationPathway = null, IndustryPlacementStatus?status = null)
        {
            tqRegistrationPathway ??= new TqRegistrationPathwayBuilder().Build();
            status ??= IndustryPlacementStatus.Completed;

            return(new IndustryPlacement
            {
                TqRegistrationPathwayId = tqRegistrationPathway.Id,
                TqRegistrationPathway = tqRegistrationPathway,
                Status = status.Value,
                CreatedBy = Constants.CreatedByUser,
                CreatedOn = Constants.CreatedOn,
                ModifiedBy = Constants.ModifiedByUser,
                ModifiedOn = Constants.ModifiedOn
            });
        }
コード例 #12
0
        private bool IsValidAddLearnerRecordRequest(TqRegistrationPathway registrationPathway, AddLearnerRecordRequest request)
        {
            if (!IsValidPathwayStatus(registrationPathway))
            {
                return(false);
            }

            var isValidEnglishAndMathsLrsEmailRequest = IsValidEnglishAndMathsLrsEmailRequest(request);

            var isValidEnglishAndMaths = isValidEnglishAndMathsLrsEmailRequest || (request.HasLrsEnglishAndMaths && request.EnglishAndMathsStatus == null) ||
                                         (!request.HasLrsEnglishAndMaths && request.EnglishAndMathsStatus != null && request.EnglishAndMathsLrsStatus == null);

            var isValidIndustryPlacement = request.IndustryPlacementStatus != IndustryPlacementStatus.NotSpecified && !registrationPathway.IndustryPlacements.Any();

            return(isValidEnglishAndMathsLrsEmailRequest ? isValidEnglishAndMaths : isValidEnglishAndMaths && isValidIndustryPlacement);
        }
コード例 #13
0
 public TqRegistrationSpecialism Build(TqRegistrationPathway tqRegistrationPathway = null)
 {
     tqRegistrationPathway ??= new TqRegistrationPathwayBuilder().Build();
     return(new TqRegistrationSpecialism
     {
         TqRegistrationPathwayId = tqRegistrationPathway.Id,
         TqRegistrationPathway = tqRegistrationPathway,
         TlSpecialismId = 1,
         StartDate = DateTime.UtcNow,
         IsOptedin = true,
         IsBulkUpload = true,
         CreatedBy = Constants.CreatedByUser,
         CreatedOn = Constants.CreatedOn,
         ModifiedBy = Constants.ModifiedByUser,
         ModifiedOn = Constants.ModifiedOn
     });
 }
 public TqPathwayAssessment Build(TqRegistrationPathway tqRegistrationPathway = null, AssessmentSeries assessmentSeries = null, bool isBulkUpload = true)
 {
     tqRegistrationPathway ??= new TqRegistrationPathwayBuilder().Build();
     assessmentSeries ??= new AssessmentSeriesBuilder().Build();
     return(new TqPathwayAssessment
     {
         TqRegistrationPathwayId = tqRegistrationPathway.Id,
         TqRegistrationPathway = tqRegistrationPathway,
         AssessmentSeriesId = assessmentSeries.Id,
         StartDate = DateTime.UtcNow,
         IsOptedin = true,
         IsBulkUpload = isBulkUpload,
         CreatedBy = Constants.CreatedByUser,
         CreatedOn = Constants.CreatedOn,
         ModifiedBy = Constants.ModifiedByUser,
         ModifiedOn = Constants.ModifiedOn
     });
 }
        private async Task <Tuple <List <TqRegistrationSpecialism>, List <TqPathwayAssessment> > > ProcessRegistrationPathwayEntities(BulkConfig bulkConfig, List <TqRegistrationPathway> pathwayRegistrations, List <TqRegistrationSpecialism> specialismRegistrations, List <TqPathwayAssessment> pathwayAssessments)
        {
            if (pathwayRegistrations.Count > 0)
            {
                var orignialPathwayEntititesCopy = new List <TqRegistrationPathway>(pathwayRegistrations);

                pathwayRegistrations = SortUpdateAndInsertOrder(pathwayRegistrations, x => x.Id);

                await _dbContext.BulkInsertOrUpdateAsync(pathwayRegistrations, bulkConfig);

                orignialPathwayEntititesCopy.ForEach(pathway =>
                {
                    TqRegistrationPathway pathwayEntity = null;
                    if (pathway.Id <= 0)
                    {
                        pathwayEntity = pathwayRegistrations.FirstOrDefault(p => p.TqRegistrationProfileId == pathway.TqRegistrationProfileId &&
                                                                            p.TqProviderId == pathway.TqProviderId &&
                                                                            p.Status == Common.Enum.RegistrationPathwayStatus.Active);
                    }

                    foreach (var specialism in pathway.TqRegistrationSpecialisms)
                    {
                        // update fk relationship id for newely added records
                        if (specialism.TqRegistrationPathwayId == 0)
                        {
                            specialism.TqRegistrationPathwayId = pathwayEntity.Id;
                        }
                        specialismRegistrations.Add(specialism);
                    }

                    foreach (var assessment in pathway.TqPathwayAssessments)
                    {
                        if (assessment.TqRegistrationPathwayId == 0)
                        {
                            assessment.TqRegistrationPathwayId = pathwayEntity.Id;
                        }

                        pathwayAssessments.Add(assessment);
                    }
                });
            }

            return(new Tuple <List <TqRegistrationSpecialism>, List <TqPathwayAssessment> >(specialismRegistrations, pathwayAssessments));
        }
        private bool AreSpecialismsEqual(TqRegistrationPathway xpathway, TqRegistrationPathway ypathway)
        {
            var isSpecialismEqual = (xpathway.TqRegistrationSpecialisms.Count == ypathway.TqRegistrationSpecialisms.Count);

            if (isSpecialismEqual)
            {
                foreach (var xspecialism in xpathway.TqRegistrationSpecialisms)
                {
                    var yspecialism = ypathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.TlSpecialismId == xspecialism.TlSpecialismId);
                    isSpecialismEqual = EqualsTqRegistrationSpecialism(xspecialism, yspecialism);

                    if (!isSpecialismEqual)
                    {
                        break;
                    }
                }
            }
            return(isSpecialismEqual);
        }
コード例 #17
0
 private bool EqualsTqRegistrationPathway(TqRegistrationPathway x, TqRegistrationPathway y)
 {
     if (x == null && y == null)
     {
         return(true);
     }
     else if (x == null || y == null)
     {
         return(false);
     }
     else if (x.GetType() != y.GetType())
     {
         return(false);
     }
     else
     {
         return(x.TqProviderId == y.TqProviderId && Equals(x.AcademicYear, y.AcademicYear) && x.Status == y.Status);
     }
 }
 public PrintCertificate Build(PrintBatchItem printBatchItem = null, TqRegistrationPathway tqRegistrationPathway = null)
 {
     return(new PrintCertificate
     {
         PrintBatchItem = printBatchItem ?? new PrintBatchItemBuilder().Build(),
         TqRegistrationPathway = tqRegistrationPathway ?? new TqRegistrationPathwayBuilder().Build(),
         Uln = 1111111111,
         LearnerName = "First 1 Last 1",
         Type = PrintCertificateType.StatementOfAchievement,
         LearningDetails = "Test",
         DisplaySnapshot = "Display",
         Status = PrintCertificateStatus.Created,
         Reason = string.Empty,
         TrackingId = "TR12345687",
         StatusChangedOn = DateTime.UtcNow,
         CreatedBy = Constants.CreatedByUser,
         CreatedOn = Constants.CreatedOn,
         ModifiedBy = Constants.ModifiedByUser,
         ModifiedOn = Constants.ModifiedOn
     });
 }
コード例 #19
0
        private bool AreSpecialismsEqual(TqRegistrationPathway xpathway, TqRegistrationPathway ypathway)
        {
            var xSpecialisms = xpathway.TqRegistrationSpecialisms.Where(s => s.IsOptedin && s.EndDate == null);
            var ySpecialisms = ypathway.TqRegistrationSpecialisms.Where(s => s.IsOptedin && s.EndDate == null);

            var isSpecialismEqual = (xSpecialisms.Count() == ySpecialisms.Count());

            if (isSpecialismEqual)
            {
                foreach (var xspecialism in xSpecialisms)
                {
                    var yspecialism = ySpecialisms.FirstOrDefault(s => s.TlSpecialismId == xspecialism.TlSpecialismId);
                    isSpecialismEqual = EqualsTqRegistrationSpecialism(xspecialism, yspecialism);

                    if (!isSpecialismEqual)
                    {
                        break;
                    }
                }
            }
            return(isSpecialismEqual);
        }
        public static TqRegistrationPathway CreateTqRegistrationPathway(ResultsAndCertificationDbContext _dbContext, TqRegistrationProfile tqRegistrationProfile, int tqProviderId, DateTime registrationDate, RegistrationPathwayStatus status = RegistrationPathwayStatus.Active, bool addToDbContext = true)
        {
            if (tqRegistrationProfile == null)
            {
                tqRegistrationProfile = new TqRegistrationProfileBuilder().Build();
            }

            var tqRegistrationPathway = new TqRegistrationPathway
            {
                TqRegistrationProfileId = tqRegistrationProfile.Id,
                TqProviderId            = tqProviderId,
                AcademicYear            = registrationDate.Year,
                StartDate    = DateTime.UtcNow,
                Status       = status,
                IsBulkUpload = true
            };

            if (addToDbContext)
            {
                _dbContext.Add(tqRegistrationPathway);
            }
            return(tqRegistrationPathway);
        }
        public IList <TqPathwayAssessment> BuildList(TqRegistrationPathway tqRegistrationPathway = null, bool isBulkUpload = true)
        {
            tqRegistrationPathway ??= new TqRegistrationPathwayBuilder().Build();
            var assessmentSeries = new AssessmentSeriesBuilder().BuildList();

            var tqPathwayAssessments = new List <TqPathwayAssessment> {
                new TqPathwayAssessment
                {
                    TqRegistrationPathwayId = tqRegistrationPathway.Id,
                    TqRegistrationPathway   = tqRegistrationPathway,
                    AssessmentSeriesId      = assessmentSeries[0].Id,
                    StartDate    = DateTime.UtcNow,
                    IsOptedin    = true,
                    IsBulkUpload = isBulkUpload,
                    CreatedBy    = Constants.CreatedByUser,
                    CreatedOn    = Constants.CreatedOn,
                    ModifiedBy   = Constants.ModifiedByUser,
                    ModifiedOn   = Constants.ModifiedOn
                },
                new TqPathwayAssessment
                {
                    TqRegistrationPathwayId = tqRegistrationPathway.Id,
                    TqRegistrationPathway   = tqRegistrationPathway,
                    AssessmentSeriesId      = assessmentSeries[1].Id,
                    StartDate    = DateTime.UtcNow,
                    IsOptedin    = true,
                    IsBulkUpload = isBulkUpload,
                    CreatedBy    = Constants.CreatedByUser,
                    CreatedOn    = Constants.CreatedOn,
                    ModifiedBy   = Constants.ModifiedByUser,
                    ModifiedOn   = Constants.ModifiedOn
                }
            };

            return(tqPathwayAssessments);
        }
        public async Task Then_Expected_Results_Are_Returned(long aoUkprn, long uln, int profileId, RegistrationPathwayStatus status, bool hasAssessments, bool expectedResponse)
        {
            await WhenAsync(aoUkprn, profileId);

            if (_result == null)
            {
                expectedResponse.Should().BeFalse();
                return;
            }

            // Expected result
            var expectedRegistration = _registrations.SingleOrDefault(x => x.UniqueLearnerNumber == uln);

            expectedRegistration.Should().NotBeNull();

            TqRegistrationPathway expectedPathway = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate != null);
            }
            else
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate == null);
            }

            expectedPathway.Should().NotBeNull();

            TqRegistrationSpecialism expectedSpecialim = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate != null);
            }
            else
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate == null);
            }

            TqPathwayAssessment expectedPathwayAssessment = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate == null);
            }

            TqPathwayResult expectedPathwayResult = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathwayResult = _pathwayResults.FirstOrDefault(x => expectedPathwayAssessment != null && x.TqPathwayAssessmentId == expectedPathwayAssessment.Id && x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedPathwayResult = _pathwayResults.FirstOrDefault(x => expectedPathwayAssessment != null && x.TqPathwayAssessmentId == expectedPathwayAssessment.Id && x.IsOptedin && x.EndDate == null);
            }

            _result.Should().NotBeNull();

            // Actual result
            var actualPathway           = _result;
            var actualSpecialism        = actualPathway.TqRegistrationSpecialisms.FirstOrDefault();
            var actualPathwayAssessment = actualPathway.TqPathwayAssessments.FirstOrDefault();

            // Assert Registration Pathway
            actualPathway.TqRegistrationProfileId.Should().Be(expectedPathway.TqRegistrationProfileId);
            actualPathway.TqProviderId.Should().Be(expectedPathway.TqProviderId);
            actualPathway.AcademicYear.Should().Be(expectedPathway.AcademicYear);
            actualPathway.StartDate.Should().Be(expectedPathway.StartDate);
            actualPathway.EndDate.Should().Be(expectedPathway.EndDate);
            actualPathway.Status.Should().Be(expectedPathway.Status);

            // Assert Registration Specialism
            actualSpecialism.TqRegistrationPathwayId.Should().Be(expectedSpecialim.TqRegistrationPathwayId);
            actualSpecialism.TlSpecialismId.Should().Be(expectedSpecialim.TlSpecialismId);
            actualSpecialism.StartDate.Should().Be(expectedSpecialim.StartDate);
            actualSpecialism.EndDate.Should().Be(expectedSpecialim.EndDate);
            actualSpecialism.IsOptedin.Should().Be(expectedSpecialim.IsOptedin);

            // Assert Assessments
            if (hasAssessments)
            {
                AssertPathwayAssessment(actualPathwayAssessment, expectedPathwayAssessment);
                AssertPathwayResult(expectedPathwayResult, expectedPathwayResult);
            }
        }
        public static TqRegistrationPathway CreateTqRegistrationPathway(ResultsAndCertificationDbContext _dbContext, TqRegistrationPathway tqRegistrationPathway, bool addToDbContext = true)
        {
            if (tqRegistrationPathway == null)
            {
                tqRegistrationPathway = new TqRegistrationPathwayBuilder().Build();
            }

            if (addToDbContext)
            {
                _dbContext.Add(tqRegistrationPathway);
            }
            return(tqRegistrationPathway);
        }
        public static TqRegistrationSpecialism CreateTqRegistrationSpecialism(ResultsAndCertificationDbContext _dbContext, TqRegistrationPathway tqRegistrationPathway, TlSpecialism tlSpecialism, bool isOptedin = true, bool addToDbContext = true)
        {
            if (tqRegistrationPathway == null && tlSpecialism == null)
            {
                return(null);
            }

            var tqRegistrationSpecialism = new TqRegistrationSpecialism
            {
                TqRegistrationPathwayId = tqRegistrationPathway.Id,
                TqRegistrationPathway   = tqRegistrationPathway,
                TlSpecialismId          = tlSpecialism.Id,
                TlSpecialism            = tlSpecialism,
                StartDate    = DateTime.UtcNow,
                IsOptedin    = isOptedin,
                IsBulkUpload = true
            };

            if (addToDbContext)
            {
                _dbContext.Add(tqRegistrationSpecialism);
            }
            return(tqRegistrationSpecialism);
        }
コード例 #25
0
 private bool IsValidPathwayStatus(TqRegistrationPathway registrationPathway)
 {
     return(registrationPathway?.Status == RegistrationPathwayStatus.Active || registrationPathway?.Status == RegistrationPathwayStatus.Withdrawn);
 }
コード例 #26
0
 private bool IsValidAddEnglishAndMathsRequest(TqRegistrationPathway registrationPathway, AddLearnerRecordRequest request)
 {
     return(!request.HasLrsEnglishAndMaths && request.EnglishAndMathsStatus != null &&
            registrationPathway.TqRegistrationProfile.IsEnglishAndMathsAchieved == null &&
            registrationPathway.TqRegistrationProfile.IsRcFeed == null);
 }
コード例 #27
0
        public async Task Then_Expected_Results_Are_Returned(long aoUkprn, long uln, int profileId, RegistrationPathwayStatus status, bool expectedResponse)
        {
            await WhenAsync(aoUkprn, profileId);

            if (_result == null)
            {
                expectedResponse.Should().BeFalse();
                return;
            }

            var expectedRegistration = _registrations.SingleOrDefault(x => x.UniqueLearnerNumber == uln);

            expectedRegistration.Should().NotBeNull();

            TqRegistrationPathway expectedPathway = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate != null);
            }
            else
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate == null);
            }

            expectedPathway.Should().NotBeNull();

            TqRegistrationSpecialism expectedSpecialim = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate != null);
            }
            else
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate == null);
            }

            TqPathwayAssessment expectedPathwayAssessment = null;
            TqPathwayResult     expectedPathwayResult     = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate != null);
                expectedPathwayResult     = expectedPathwayAssessment?.TqPathwayResults.FirstOrDefault(x => x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate == null);
                expectedPathwayResult     = expectedPathwayAssessment?.TqPathwayResults.FirstOrDefault(x => x.IsOptedin && x.EndDate == null);
            }

            TqSpecialismAssessment expectedSpecialismAssessment = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedSpecialismAssessment = _specialismAssessments.FirstOrDefault(x => x.TqRegistrationSpecialismId == expectedSpecialim.Id && x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedSpecialismAssessment = _specialismAssessments.FirstOrDefault(x => x.TqRegistrationSpecialismId == expectedSpecialim.Id && x.IsOptedin && x.EndDate == null);
            }

            var expectedAssessmentDetails = new AssessmentDetails
            {
                ProfileId               = expectedRegistration.Id,
                Uln                     = expectedRegistration.UniqueLearnerNumber,
                Firstname               = expectedRegistration.Firstname,
                Lastname                = expectedRegistration.Lastname,
                ProviderUkprn           = expectedPathway.TqProvider.TlProvider.UkPrn,
                ProviderName            = expectedPathway.TqProvider.TlProvider.Name,
                PathwayLarId            = expectedPathway.TqProvider.TqAwardingOrganisation.TlPathway.LarId,
                PathwayName             = expectedPathway.TqProvider.TqAwardingOrganisation.TlPathway.Name,
                PathwayAssessmentSeries = expectedPathwayAssessment?.AssessmentSeries.Name,
                PathwayAssessmentId     = expectedPathwayAssessment != null ? expectedPathwayAssessment.Id : (int?)null,

                SpecialismLarId            = expectedSpecialim?.TlSpecialism.LarId,
                SpecialismName             = expectedSpecialim?.TlSpecialism.Name,
                SpecialismAssessmentSeries = expectedSpecialismAssessment?.AssessmentSeries.Name,
                SpecialismAssessmentId     = expectedSpecialismAssessment != null ? expectedSpecialismAssessment.Id : (int?)null,
                Status = expectedPathway.Status,

                PathwayResultId = expectedPathwayResult?.Id
            };

            var expectedIsIndustryPlacementExist = expectedRegistration.TqRegistrationPathways.FirstOrDefault().IndustryPlacements.Any();

            // Assert
            _result.ProfileId.Should().Be(expectedAssessmentDetails.ProfileId);
            _result.Uln.Should().Be(expectedAssessmentDetails.Uln);
            _result.Firstname.Should().Be(expectedAssessmentDetails.Firstname);
            _result.Lastname.Should().Be(expectedAssessmentDetails.Lastname);
            _result.ProviderUkprn.Should().Be(expectedAssessmentDetails.ProviderUkprn);
            _result.ProviderName.Should().Be(expectedAssessmentDetails.ProviderName);
            _result.PathwayLarId.Should().Be(expectedAssessmentDetails.PathwayLarId);
            _result.PathwayName.Should().Be(expectedAssessmentDetails.PathwayName);
            _result.PathwayAssessmentSeries.Should().Be(expectedAssessmentDetails.PathwayAssessmentSeries);
            _result.PathwayAssessmentId.Should().Be(expectedAssessmentDetails.PathwayAssessmentId);
            _result.SpecialismLarId.Should().Be(expectedAssessmentDetails.SpecialismLarId);
            _result.SpecialismName.Should().Be(expectedAssessmentDetails.SpecialismName);
            _result.SpecialismAssessmentSeries.Should().Be(expectedAssessmentDetails.SpecialismAssessmentSeries);
            _result.SpecialismAssessmentId.Should().Be(expectedAssessmentDetails.SpecialismAssessmentId);
            _result.Status.Should().Be(expectedAssessmentDetails.Status);
            _result.PathwayResultId.Should().Be(expectedAssessmentDetails.PathwayResultId);
            _result.IsIndustryPlacementExist.Should().Be(expectedIsIndustryPlacementExist);
        }
        public async Task Then_Expected_Results_Are_Returned(long aoUkprn, long uln, int profileId, RegistrationPathwayStatus status, bool expectedResponse)
        {
            await WhenAsync(aoUkprn, profileId);

            if (_result == null)
            {
                expectedResponse.Should().BeFalse();
                return;
            }

            var expectedRegistration = _registrations.SingleOrDefault(x => x.UniqueLearnerNumber == uln);

            expectedRegistration.Should().NotBeNull();

            TqRegistrationPathway expectedPathway = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate != null);
            }
            else
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate == null);
            }

            expectedPathway.Should().NotBeNull();

            TqRegistrationSpecialism expectedSpecialim = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate != null);
            }
            else
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate == null);
            }

            TqPathwayAssessment expectedPathwayAssessment = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate == null);
            }

            var expectedAssessmentDetails = new ResultDetails
            {
                ProfileId     = expectedRegistration.Id,
                Uln           = expectedRegistration.UniqueLearnerNumber,
                Firstname     = expectedRegistration.Firstname,
                Lastname      = expectedRegistration.Lastname,
                ProviderUkprn = expectedPathway.TqProvider.TlProvider.UkPrn,
                ProviderName  = expectedPathway.TqProvider.TlProvider.Name,
                Status        = expectedPathway.Status
            };

            // Assert
            _result.ProfileId.Should().Be(expectedAssessmentDetails.ProfileId);
            _result.Uln.Should().Be(expectedAssessmentDetails.Uln);
            _result.Firstname.Should().Be(expectedAssessmentDetails.Firstname);
            _result.Lastname.Should().Be(expectedAssessmentDetails.Lastname);
            _result.ProviderUkprn.Should().Be(expectedAssessmentDetails.ProviderUkprn);
            _result.ProviderName.Should().Be(expectedAssessmentDetails.ProviderName);
            _result.Status.Should().Be(expectedAssessmentDetails.Status);
        }
        public static IList <TqRegistrationSpecialism> CreateTqRegistrationSpecialisms(ResultsAndCertificationDbContext _dbContext, TqRegistrationPathway tqRegistrationPathway, bool addToDbContext = true)
        {
            var tqRegistrationSpecialisms = new TqRegistrationSpecialismBuilder().BuildList(tqRegistrationPathway);

            if (addToDbContext && tqRegistrationSpecialisms != null)
            {
                _dbContext.AddRange(tqRegistrationSpecialisms);
            }
            return(tqRegistrationSpecialisms);
        }