public void TransferRegistration(TqRegistrationProfile profile, Provider transferTo) { var toProvider = DbContext.TlProvider.FirstOrDefault(x => x.UkPrn == (long)transferTo); var transferToTqProvider = ProviderDataProvider.CreateTqProvider(DbContext, TqAwardingOrganisation, toProvider, true); foreach (var pathway in profile.TqRegistrationPathways) { pathway.Status = RegistrationPathwayStatus.Transferred; pathway.EndDate = DateTime.UtcNow; foreach (var specialism in pathway.TqRegistrationSpecialisms) { specialism.IsOptedin = true; specialism.EndDate = DateTime.UtcNow; } } var industryPlacement = profile.TqRegistrationPathways.FirstOrDefault()?.IndustryPlacements?.FirstOrDefault(); var tqRegistrationPathway = RegistrationsDataProvider.CreateTqRegistrationPathway(DbContext, profile, transferToTqProvider); var tqRegistrationSpecialism = RegistrationsDataProvider.CreateTqRegistrationSpecialism(DbContext, tqRegistrationPathway, Specialism); DbContext.SaveChanges(); if (industryPlacement != null) { IndustryPlacementProvider.CreateIndustryPlacement(DbContext, tqRegistrationPathway.Id, industryPlacement.Status); } DbContext.SaveChanges(); }
public override void Given() { // Seed Tlevel data for pearson _uln = 1111111111; SeedTestData(EnumAwardingOrganisation.Pearson, true); _tqRegistrationProfile = SeedRegistrationData(_uln); CreateMapper(); ProviderRepositoryLogger = new Logger <ProviderRepository>(new NullLoggerFactory()); RegistrationRepositoryLogger = new Logger <RegistrationRepository>(new NullLoggerFactory()); TqRegistrationPathwayRepositoryLogger = new Logger <GenericRepository <TqRegistrationPathway> >(new NullLoggerFactory()); TqRegistrationSpecialismRepositoryLogger = new Logger <GenericRepository <TqRegistrationSpecialism> >(new NullLoggerFactory()); ProviderRepository = new ProviderRepository(ProviderRepositoryLogger, DbContext); RegistrationRepository = new RegistrationRepository(RegistrationRepositoryLogger, DbContext); TqRegistrationPathwayRepository = new GenericRepository <TqRegistrationPathway>(TqRegistrationPathwayRepositoryLogger, DbContext); TqRegistrationSpecialismRepository = new GenericRepository <TqRegistrationSpecialism>(TqRegistrationSpecialismRepositoryLogger, DbContext); RegistrationService = new RegistrationService(ProviderRepository, RegistrationRepository, TqRegistrationPathwayRepository, TqRegistrationSpecialismRepository, RegistrationMapper, RegistrationRepositoryLogger); var newProvider = TlProviders.Last(); _updateRegistrationRequest = new ManageRegistration { ProfileId = _profileId, Uln = _uln, FirstName = "John", LastName = "Smith", DateOfBirth = DateTime.UtcNow.AddYears(-20), AoUkprn = TlAwardingOrganisation.UkPrn, ProviderUkprn = newProvider.UkPrn, CoreCode = Pathway.LarId, SpecialismCodes = new List <string>(), PerformedBy = "Test User", HasProviderChanged = false }; }
public void SeedQualificationAchievedData(TqRegistrationProfile profile) { var engQual = Qualifications.FirstOrDefault(e => e.TlLookup.Code == "Eng"); var mathQual = Qualifications.FirstOrDefault(e => e.TlLookup.Code == "Math"); var engQualifcationGrade = engQual.QualificationType.QualificationGrades.FirstOrDefault(x => x.IsAllowable); var mathsQualifcationGrade = mathQual.QualificationType.QualificationGrades.FirstOrDefault(x => x.IsAllowable); profile.QualificationAchieved.Add(new QualificationAchieved { TqRegistrationProfileId = profile.Id, QualificationId = engQual.Id, QualificationGradeId = engQualifcationGrade.Id, IsAchieved = engQualifcationGrade.IsAllowable }); profile.QualificationAchieved.Add(new QualificationAchieved { TqRegistrationProfileId = profile.Id, QualificationId = mathQual.Id, QualificationGradeId = mathsQualifcationGrade.Id, IsAchieved = mathsQualifcationGrade.IsAllowable }); DbContext.SaveChanges(); }
public TqPathwayAssessment SeedPathwayAssessmentData(TqRegistrationProfile registrationProfile) { var pathwayAssessment = new TqPathwayAssessmentBuilder().Build(registrationProfile.TqRegistrationPathways.First()); var tqPathwayAssessment = PathwayAssessmentDataProvider.CreateTqPathwayAssessment(DbContext, pathwayAssessment); DbContext.SaveChanges(); return(tqPathwayAssessment); }
public TqSpecialismAssessment SeedSpecialismAssessmentData(TqRegistrationProfile registrationProfile) { var specialism = registrationProfile.TqRegistrationPathways.First().TqRegistrationSpecialisms.First(); var specialsimAssessment = new TqSpecialismAssessmentBuilder().Build(specialism); var tqSpecialismAssessment = SpecialismAssessmentDataProvider.CreateTqSpecialismAssessment(DbContext, specialsimAssessment); DbContext.SaveChanges(); return(tqSpecialismAssessment); }
public IList <TqRegistrationPathway> BuildList(TqRegistrationProfile tqRegistrationProfile = null) { tqRegistrationProfile ??= new TqRegistrationProfileBuilder().Build(); var tqRegistrationPathways = new List <TqRegistrationPathway> { new TqRegistrationPathway { TqRegistrationProfileId = tqRegistrationProfile.Id, TqRegistrationProfile = tqRegistrationProfile, TqProviderId = 1, AcademicYear = 2020, StartDate = DateTime.UtcNow, Status = ResultsAndCertification.Common.Enum.RegistrationPathwayStatus.Active, IsBulkUpload = true, CreatedBy = Constants.CreatedByUser, CreatedOn = Constants.CreatedOn, ModifiedBy = Constants.ModifiedByUser, ModifiedOn = Constants.ModifiedOn }, new TqRegistrationPathway { TqRegistrationProfileId = tqRegistrationProfile.Id, TqRegistrationProfile = tqRegistrationProfile, TqProviderId = 1, AcademicYear = 2020, StartDate = DateTime.UtcNow, Status = ResultsAndCertification.Common.Enum.RegistrationPathwayStatus.Active, IsBulkUpload = true, CreatedBy = Constants.CreatedByUser, CreatedOn = Constants.CreatedOn, ModifiedBy = Constants.ModifiedByUser, ModifiedOn = Constants.ModifiedOn }, new TqRegistrationPathway { TqRegistrationProfileId = tqRegistrationProfile.Id, TqRegistrationProfile = tqRegistrationProfile, TqProviderId = 1, AcademicYear = 2020, StartDate = DateTime.UtcNow, Status = ResultsAndCertification.Common.Enum.RegistrationPathwayStatus.Active, IsBulkUpload = true, CreatedBy = Constants.CreatedByUser, CreatedOn = Constants.CreatedOn, ModifiedBy = Constants.ModifiedByUser, ModifiedOn = Constants.ModifiedOn } }; return(tqRegistrationPathways); }
public void BuildLearnerRecordCriteria(TqRegistrationProfile profile, bool?isEngishAndMathsAchieved, bool seedIndustryPlacement = false, IndustryPlacementStatus ipStatus = IndustryPlacementStatus.Completed) { if (profile == null) { return; } profile.IsEnglishAndMathsAchieved = isEngishAndMathsAchieved; if (seedIndustryPlacement) { var pathway = profile.TqRegistrationPathways.OrderByDescending(x => x.CreatedOn).FirstOrDefault(); IndustryPlacementProvider.CreateIndustryPlacement(DbContext, pathway.Id, ipStatus); } }
public static TqRegistrationProfile CreateTqRegistrationProfile(ResultsAndCertificationDbContext _dbContext, long uniqueLearnerNumber, string firstName, string lastName, DateTime dateOfBirth, bool addToDbContext = true) { var tqRegistrationProfile = new TqRegistrationProfile { UniqueLearnerNumber = uniqueLearnerNumber, Firstname = firstName, Lastname = lastName, DateofBirth = dateOfBirth }; if (addToDbContext) { _dbContext.Add(tqRegistrationProfile); } return(tqRegistrationProfile); }
public void AssertRegistrationProfile(TqRegistrationProfile actualProfile, TqRegistrationProfile expectedProfile) { if (expectedProfile != null) { actualProfile.Should().NotBeNull(); } actualProfile.UniqueLearnerNumber.Should().Be(expectedProfile.UniqueLearnerNumber); actualProfile.Firstname.Should().Be(expectedProfile.Firstname); actualProfile.Lastname.Should().Be(expectedProfile.Lastname); actualProfile.DateofBirth.Should().Be(expectedProfile.DateofBirth); actualProfile.Gender.Should().Be(expectedProfile.Gender); actualProfile.IsLearnerVerified.Should().Be(expectedProfile.IsLearnerVerified); actualProfile.IsEnglishAndMathsAchieved.Should().Be(expectedProfile.IsEnglishAndMathsAchieved); actualProfile.IsSendLearner.Should().Be(expectedProfile.IsSendLearner); actualProfile.IsRcFeed.Should().Be(expectedProfile.IsRcFeed); }
public override void Given() { // Seed Tlevel data for pearson _uln = 1111111111; SeedTestData(EnumAwardingOrganisation.Pearson, true); _tqRegistrationProfile = SeedRegistrationData(_uln); // Assessments seed var tqPathwayAssessmentsSeedData = new List <TqPathwayAssessment>(); var pathwayAssessments = GetPathwayAssessmentsDataToProcess(_tqRegistrationProfile.TqRegistrationPathways.ToList(), isBulkUpload: false); tqPathwayAssessmentsSeedData.AddRange(pathwayAssessments); SeedPathwayAssessmentsData(tqPathwayAssessmentsSeedData, false); var tqPathwayResultsSeedData = new List <TqPathwayResult>(); foreach (var assessment in pathwayAssessments) { tqPathwayResultsSeedData.AddRange(GetPathwayResultsDataToProcess(new List <TqPathwayAssessment> { assessment }, isBulkUpload: false)); } SeedPathwayResultsData(tqPathwayResultsSeedData, false); DbContext.SaveChangesAsync(); CreateMapper(); ProviderRepositoryLogger = new Logger <ProviderRepository>(new NullLoggerFactory()); RegistrationRepositoryLogger = new Logger <RegistrationRepository>(new NullLoggerFactory()); TqRegistrationPathwayRepositoryLogger = new Logger <GenericRepository <TqRegistrationPathway> >(new NullLoggerFactory()); TqRegistrationSpecialismRepositoryLogger = new Logger <GenericRepository <TqRegistrationSpecialism> >(new NullLoggerFactory()); ProviderRepository = new ProviderRepository(ProviderRepositoryLogger, DbContext); RegistrationRepository = new RegistrationRepository(RegistrationRepositoryLogger, DbContext); TqRegistrationPathwayRepository = new GenericRepository <TqRegistrationPathway>(TqRegistrationPathwayRepositoryLogger, DbContext); TqRegistrationSpecialismRepository = new GenericRepository <TqRegistrationSpecialism>(TqRegistrationSpecialismRepositoryLogger, DbContext); RegistrationService = new RegistrationService(ProviderRepository, RegistrationRepository, TqRegistrationPathwayRepository, TqRegistrationSpecialismRepository, RegistrationMapper, RegistrationRepositoryLogger); _reJoinRegistrationRequest = new RejoinRegistrationRequest { AoUkprn = TlAwardingOrganisation.UkPrn, PerformedBy = "Test User" }; }
public void BuildLearnerRecordCriteria(TqRegistrationProfile profile, bool?isRcFeed, bool seedQualificationAchieved, bool isSendQualification, bool?isEngishAndMathsAchieved, bool seedIndustryPlacement = false, bool?isSendLearner = null, IndustryPlacementStatus ipStatus = IndustryPlacementStatus.Completed) { if (profile == null) { return; } profile.IsRcFeed = isRcFeed; profile.IsEnglishAndMathsAchieved = isEngishAndMathsAchieved; profile.IsSendLearner = isSendLearner; if (seedQualificationAchieved) { var engQual = Qualifications.FirstOrDefault(e => e.TlLookup.Code == "Eng" && e.IsSendQualification == isSendQualification); var mathQual = Qualifications.FirstOrDefault(e => e.TlLookup.Code == "Math"); var engQualifcationGrade = engQual.QualificationType.QualificationGrades.FirstOrDefault(x => x.IsAllowable == isEngishAndMathsAchieved); var mathsQualifcationGrade = mathQual.QualificationType.QualificationGrades.FirstOrDefault(x => x.IsAllowable == isEngishAndMathsAchieved); profile.QualificationAchieved.Add(new QualificationAchieved { TqRegistrationProfileId = profile.Id, QualificationId = engQual.Id, QualificationGradeId = engQualifcationGrade.Id, IsAchieved = engQualifcationGrade.IsAllowable }); profile.QualificationAchieved.Add(new QualificationAchieved { TqRegistrationProfileId = profile.Id, QualificationId = mathQual.Id, QualificationGradeId = mathsQualifcationGrade.Id, IsAchieved = mathsQualifcationGrade.IsAllowable }); } if (seedIndustryPlacement) { var pathway = profile.TqRegistrationPathways.OrderByDescending(x => x.CreatedOn).FirstOrDefault(); IndustryPlacementProvider.CreateIndustryPlacement(DbContext, pathway.Id, ipStatus); } }
public QualificationAchieved Build(TqRegistrationProfile tqRegistrationProfile = null, Qualification qualification = null, QualificationGrade qualificationGrade = null) { tqRegistrationProfile ??= new TqRegistrationProfileBuilder().Build(); qualification ??= new QualificationBuilder().Build(); qualificationGrade ??= new QualificationGradeBuilder().Build(); return(new QualificationAchieved { TqRegistrationProfileId = tqRegistrationProfile.Id, TqRegistrationProfile = tqRegistrationProfile, QualificationId = qualification.Id, Qualification = qualification, QualificationGradeId = qualificationGrade.Id, QualificationGrade = qualificationGrade, IsAchieved = true, CreatedBy = Constants.CreatedByUser, CreatedOn = Constants.CreatedOn, ModifiedBy = Constants.ModifiedByUser, ModifiedOn = Constants.ModifiedOn }); }
public IList <QualificationAchieved> BuildList(TqRegistrationProfile tqRegistrationProfile = null) { tqRegistrationProfile ??= new TqRegistrationProfileBuilder().Build(); var qualifications = new QualificationBuilder().BuildList(); var qualificationGrades = new QualificationGradeBuilder().BuildList(); var qualificationAchievedList = new List <QualificationAchieved> { new QualificationAchieved { TqRegistrationProfileId = tqRegistrationProfile.Id, TqRegistrationProfile = tqRegistrationProfile, QualificationId = qualifications[0].Id, Qualification = qualifications[0], QualificationGradeId = qualificationGrades[0].Id, QualificationGrade = qualificationGrades[0], IsAchieved = true, CreatedBy = Constants.CreatedByUser, CreatedOn = Constants.CreatedOn, ModifiedBy = Constants.ModifiedByUser, ModifiedOn = Constants.ModifiedOn }, new QualificationAchieved { TqRegistrationProfileId = tqRegistrationProfile.Id, TqRegistrationProfile = tqRegistrationProfile, QualificationId = qualifications[1].Id, Qualification = qualifications[1], QualificationGradeId = qualificationGrades[1].Id, QualificationGrade = qualificationGrades[1], IsAchieved = true, CreatedBy = Constants.CreatedByUser, CreatedOn = Constants.CreatedOn, ModifiedBy = Constants.ModifiedByUser, ModifiedOn = Constants.ModifiedOn } }; return(qualificationAchievedList); }
private static TqRegistrationProfile ProcessProfileAndQualificationsAchieved(LearnerRecordDetails learnerRecord, TqRegistrationProfile profile) { if (learnerRecord.IsLearnerVerified == false && learnerRecord.IsLearnerVerified == profile.IsLearnerVerified) { return(null); } var isProfileChanged = false; var learnerLearningEvents = learnerRecord.LearningEventDetails.Where(x => x.IsQualificationAllowed); if (learnerRecord.IsLearnerVerified != profile.IsLearnerVerified) { profile.IsLearnerVerified = learnerRecord.IsLearnerVerified; profile.ModifiedOn = DateTime.UtcNow; profile.ModifiedBy = learnerRecord.PerformedBy; isProfileChanged = true; } if (!profile.IsEnglishAndMathsAchieved.HasValue || !profile.IsEnglishAndMathsAchieved.Value) { if (learnerLearningEvents.Any()) { var isQualificationAchievedChanged = false; foreach (var learnerLearningEvent in learnerLearningEvents) { var existingQualificationAchieved = profile.QualificationAchieved.FirstOrDefault(q => q.QualificationId == learnerLearningEvent.QualificationId); if (existingQualificationAchieved != null) { if (existingQualificationAchieved.QualificationGradeId != learnerLearningEvent.QualificationGradeId || existingQualificationAchieved.IsAchieved != learnerLearningEvent.IsAchieved) { existingQualificationAchieved.QualificationGradeId = learnerLearningEvent.QualificationGradeId; existingQualificationAchieved.IsAchieved = learnerLearningEvent.IsAchieved; existingQualificationAchieved.ModifiedBy = learnerRecord.PerformedBy; existingQualificationAchieved.ModifiedOn = DateTime.UtcNow; isQualificationAchievedChanged = true; } } else { profile.QualificationAchieved.Add(new QualificationAchieved { TqRegistrationProfileId = profile.Id, QualificationId = learnerLearningEvent.QualificationId, QualificationGradeId = learnerLearningEvent.QualificationGradeId, IsAchieved = learnerLearningEvent.IsAchieved, CreatedBy = learnerRecord.PerformedBy }); isQualificationAchievedChanged = true; } } if (isQualificationAchievedChanged) { profile.IsEnglishAndMathsAchieved = learnerLearningEvents.Any(e => e.IsAchieved && e.IsEnglishSubject) && learnerLearningEvents.Any(e => e.IsAchieved && e.IsMathsSubject); profile.IsRcFeed = false; profile.ModifiedOn = DateTime.UtcNow; profile.ModifiedBy = learnerRecord.PerformedBy; isProfileChanged = true; } } } return(isProfileChanged ? profile : null); }
private bool IsValidLearner(TqRegistrationProfile profile) { return(profile != null && (profile.IsRcFeed == null || profile.IsRcFeed.Value == false)); }
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 static TqRegistrationPathway CreateTqRegistrationPathway(ResultsAndCertificationDbContext _dbContext, TqRegistrationProfile tqRegistrationProfile, bool addToDbContext = true) { if (tqRegistrationProfile == null) { tqRegistrationProfile = new TqRegistrationProfileBuilder().Build(); } var tqRegistrationPathway = new TqRegistrationPathwayBuilder().Build(tqRegistrationProfile); if (addToDbContext) { _dbContext.Add(tqRegistrationPathway); } return(tqRegistrationPathway); }