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)); }