public async Task <LearnerDetail> Handle(LearnerDetailRequest request, CancellationToken cancellationToken) { var learner = await _ilrRepository.Get(request.Uln, request.StdCode); var standard = await _standardRepository.GetStandardCollationByStandardId(request.StdCode); var certificate = await _certificateRepository.GetCertificate(request.Uln, request.StdCode); var logs = new List <CertificateLogSummary>(); var certificateData = new CertificateData(); var epao = new Organisation(); if (certificate != null) { logs = await _staffCertificateRepository.GetCertificateLogsFor(certificate.Id, request.AllRecords); if (logs.Count() > 1) { CalculateDifferences(logs); } certificateData = JsonConvert.DeserializeObject <CertificateData>(certificate.CertificateData) ?? new CertificateData(); epao = await _organisationRepository.Get(certificate.OrganisationId) ?? new Organisation(); } var learnerDetail = new LearnerDetail() { Uln = request.Uln, FamilyName = !string.IsNullOrEmpty(certificateData.LearnerFamilyName) ? certificateData.LearnerFamilyName : learner?.FamilyName, GivenNames = !string.IsNullOrEmpty(certificateData.LearnerGivenNames) ? certificateData.LearnerGivenNames : learner?.GivenNames, LearnStartDate = certificateData.LearningStartDate.HasValue ? certificateData.LearningStartDate : learner?.LearnStartDate, StandardCode = (certificate?.StandardCode).HasValue ? certificate.StandardCode : standard?.StandardId ?? 0, Standard = !string.IsNullOrEmpty(certificateData.StandardName) ? certificateData.StandardName : standard?.Title, Level = certificateData.StandardLevel > 0 ? certificateData.StandardLevel : standard?.StandardData?.Level ?? 0, CertificateReference = certificate?.CertificateReference, CertificateStatus = certificate?.Status, OverallGrade = certificateData.OverallGrade, AchievementDate = certificateData.AchievementDate, //?.UtcToTimeZoneTime(), Option = certificateData.CourseOption, OrganisationName = epao.EndPointAssessorName, OrganisationId = epao.EndPointAssessorOrganisationId, CertificateLogs = logs, FundingModel = learner?.FundingModel, CompletionStatus = learner?.CompletionStatus, CompletionStatusDescription = FormatCompletionStatusDescription(learner?.CompletionStatus), IsPrivatelyFunded = certificate?.IsPrivatelyFunded, CertificateId = certificate?.Id }; return(learnerDetail); }
public async Task <StandardCollation> GetStandard(int standardId) { StandardCollation standardCollation = null; try { standardCollation = await _standardRepository.GetStandardCollationByStandardId(standardId); } catch (Exception ex) { _logger.LogError(ex, $"STANDARD COLLATION: Failed to get for standard id: {standardId}"); } return(standardCollation); }
public async Task <StandardCollation> Handle(GetCollatedStandardRequest request, CancellationToken cancellationToken) { StandardCollation result = null; if (request.StandardId.HasValue) { result = await _standardRepository.GetStandardCollationByStandardId(request.StandardId.Value); } else if (request.ReferenceNumber != null) { result = await _standardRepository.GetStandardCollationByReferenceNumber(request.ReferenceNumber); } return(result); }
public async Task <LearnerDetailResult> Handle(GetLearnerDetailRequest request, CancellationToken cancellationToken) { var learner = await _ilrRepository.Get(request.Uln, request.StdCode); var standard = await _standardRepository.GetStandardCollationByStandardId(request.StdCode); var certificate = await _certificateRepository.GetCertificate(request.Uln, request.StdCode); var logs = new List <CertificateLogSummary>(); var certificateData = new CertificateData(); var epao = new Organisation(); if (certificate != null) { if (request.AllRecords) { logs.AddRange(await _staffCertificateRepository.GetAllCertificateLogs(certificate.Id)); } else { var showSummaryStatus = new[] { CertificateStatus.Submitted }.Concat(CertificateStatus.PrintProcessStatus).ToList(); if (showSummaryStatus.Contains(certificate.Status)) { logs.AddRange(await _staffCertificateRepository.GetSummaryCertificateLogs(certificate.Id)); } else { var latestCertificateLog = await _staffCertificateRepository.GetLatestCertificateLog(certificate.Id); if (latestCertificateLog != null) { logs.Add(latestCertificateLog); } } } if (logs.Count() > 1) { CalculateDifferences(logs); } certificateData = JsonConvert.DeserializeObject <CertificateData>(certificate.CertificateData) ?? new CertificateData(); epao = await _organisationRepository.Get(certificate.OrganisationId) ?? new Organisation(); } var learnerDetail = new LearnerDetailResult() { Uln = request.Uln, FamilyName = !string.IsNullOrEmpty(certificateData.LearnerFamilyName) ? certificateData.LearnerFamilyName : learner?.FamilyName, GivenNames = !string.IsNullOrEmpty(certificateData.LearnerGivenNames) ? certificateData.LearnerGivenNames : learner?.GivenNames, LearnStartDate = certificateData.LearningStartDate.HasValue ? certificateData.LearningStartDate : learner?.LearnStartDate, StandardCode = (certificate?.StandardCode).HasValue ? certificate.StandardCode : standard?.StandardId ?? 0, Standard = !string.IsNullOrEmpty(certificateData.StandardName) ? certificateData.StandardName : standard?.Title, Level = certificateData.StandardLevel > 0 ? certificateData.StandardLevel : standard?.StandardData?.Level ?? 0, CertificateReference = certificate?.CertificateReference, CertificateStatus = certificate?.Status, OverallGrade = certificateData.OverallGrade, AchievementDate = certificateData.AchievementDate, //?.UtcToTimeZoneTime(), Option = certificateData.CourseOption, OrganisationName = epao.EndPointAssessorName, OrganisationId = epao.EndPointAssessorOrganisationId, CertificateLogs = logs, FundingModel = learner?.FundingModel, CompletionStatus = learner?.CompletionStatus, CompletionStatusDescription = FormatCompletionStatusDescription(learner?.CompletionStatus), IsPrivatelyFunded = certificate?.IsPrivatelyFunded, CertificateId = certificate?.Id, PrintStatusAt = certificate?.CertificateBatchLog?.StatusAt, ReasonForChange = certificate?.CertificateBatchLog?.ReasonForChange, ContactName = certificateData.ContactName, ContactOrganisation = certificateData.ContactOrganisation, ContactAddLine1 = certificateData.ContactAddLine1, ContactAddLine2 = certificateData.ContactAddLine2, ContactAddLine3 = certificateData.ContactAddLine3, ContactAddLine4 = certificateData.ContactAddLine4, ContactPostCode = certificateData.ContactPostCode, LastUpdatedAt = certificate?.LatestChange() }; return(learnerDetail); }