Example #1
0
        public async Task <Certificate> Handle(StartCertificatePrivateRequest request, CancellationToken cancellationToken)
        {
            var organisation = await _organisationQueryRepository.GetByUkPrn(request.UkPrn);

            var certificate = await _certificateRepository.GetPrivateCertificate(request.Uln,
                                                                                 organisation.EndPointAssessorOrganisationId);

            if (certificate != null)
            {
                if (certificate.Status == Domain.Consts.CertificateStatus.Deleted)
                {
                    var certData = JsonConvert.DeserializeObject <CertificateData>(certificate.CertificateData);
                    certData.LearnerFamilyName    = request.LastName;
                    certificate.CertificateData   = JsonConvert.SerializeObject(certData);
                    certificate.IsPrivatelyFunded = true;
                    await _certificateRepository.Update(certificate, request.Username, string.Empty, false);
                }
                return(certificate);
            }

            return(await CreateNewCertificate(request));
        }