public override void Given() { CreateMapper(); ProviderUkprn = 987654321; ProfileId = 1; _expectedApiResult = new LearnerRecordDetails { ProfileId = ProfileId, Uln = 1234567890, Name = "Test User", IsLearnerRecordAdded = true, HasLrsEnglishAndMaths = false, IsEnglishAndMathsAchieved = true, IsSendLearner = false }; ViewModel = new UpdateEnglishAndMathsQuestionViewModel { ProfileId = ProfileId, EnglishAndMathsStatus = EnglishAndMathsStatus.AchievedWithSend }; InternalApiClient.GetLearnerRecordDetailsAsync(ProviderUkprn, ProfileId).Returns(_expectedApiResult); InternalApiClient.UpdateLearnerRecordAsync(Arg.Is <UpdateLearnerRecordRequest> (x => x.ProfileId == ViewModel.ProfileId && x.Ukprn == ProviderUkprn && x.Uln == _expectedApiResult.Uln && x.EnglishAndMathsStatus == ViewModel.EnglishAndMathsStatus && x.PerformedBy == $"{Givenname} {Surname}")) .Returns(false); Loader = new TrainingProviderLoader(InternalApiClient, Mapper); }
public async override Task When() { _actualResult = await _apiClient.GetLearnerRecordDetailsAsync(_providerUkprn, _profileId, _pathwayId); }
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 static void ProcessLearningEvents(List <Qualification> qualifications, LearnerRecordDetails learnerRecord) { if (learnerRecord.IsLearnerVerified == false) { return; } foreach (var learnerEvent in learnerRecord.LearningEventDetails) { var qualification = qualifications.FirstOrDefault(q => q.IsActive && q.Code.Equals(learnerEvent.QualificationCode, StringComparison.InvariantCultureIgnoreCase)); var qualificationGrade = qualification?.QualificationType?.QualificationGrades?.FirstOrDefault(g => g.IsActive && g.Grade.Equals(learnerEvent.Grade, StringComparison.InvariantCultureIgnoreCase)); if (qualification != null && qualificationGrade != null) { learnerEvent.IsQualificationAllowed = true; learnerEvent.IsAchieved = qualificationGrade.IsAllowable; learnerEvent.QualificationGradeId = qualificationGrade.Id; learnerEvent.QualificationId = qualification.Id; learnerEvent.IsEnglishSubject = qualification.TlLookup?.Code.Equals("Eng", StringComparison.InvariantCultureIgnoreCase) ?? false; learnerEvent.IsMathsSubject = qualification.TlLookup?.Code.Equals("Math", StringComparison.InvariantCultureIgnoreCase) ?? false; } } }