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); } }
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); } }
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); }
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); }
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)); }
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 }); }
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); }
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); }
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 }); }
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); }
private bool IsValidPathwayStatus(TqRegistrationPathway registrationPathway) { return(registrationPathway?.Status == RegistrationPathwayStatus.Active || registrationPathway?.Status == RegistrationPathwayStatus.Withdrawn); }
private bool IsValidAddEnglishAndMathsRequest(TqRegistrationPathway registrationPathway, AddLearnerRecordRequest request) { return(!request.HasLrsEnglishAndMaths && request.EnglishAndMathsStatus != null && registrationPathway.TqRegistrationProfile.IsEnglishAndMathsAchieved == null && registrationPathway.TqRegistrationProfile.IsRcFeed == null); }
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); }