コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #4
0
        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);
        }