public async Task <IActionResult> GetCertificate(long uln, string familyName, [SwaggerParameter("Standard Code or Standard Reference Number")] string standard) { var getRequest = new GetBatchCertificateRequest { UkPrn = _headerInfo.Ukprn, Uln = uln, FamilyName = familyName, Standard = standard }; var response = await _apiClient.GetCertificate(getRequest); if (response.ValidationErrors.Any()) { ApiResponse error = new ApiResponse((int)HttpStatusCode.Forbidden, string.Join("; ", response.ValidationErrors)); return(StatusCode(error.StatusCode, error)); } else if (response.Certificate is null) { return(NoContent()); } else { if (CertificateHelpers.IsDraftCertificateDeemedAsReady(response.Certificate)) { response.Certificate.Status.CurrentStatus = CertificateStatus.Ready; } else if (response.Certificate.Status.CurrentStatus == CertificateStatus.Printed || response.Certificate.Status.CurrentStatus == CertificateStatus.Reprint) { response.Certificate.Status.CurrentStatus = CertificateStatus.Submitted; } return(Ok(response.Certificate)); } }
public async Task <IActionResult> CreateCertificates([FromBody] IEnumerable <CreateCertificateRequest> request) { if (request.Count() > MAX_CERTIFICATES_IN_REQUEST) { ApiResponse error = new ApiResponse((int)HttpStatusCode.Forbidden, MAX_CERTIFICATES_IN_REQUEST_ERROR_MESSAGE); return(StatusCode(error.StatusCode, error)); } var createRequest = request.Select(req => new CreateBatchCertificateRequest { UkPrn = _headerInfo.Ukprn, RequestId = req.RequestId, CertificateData = new Models.Request.Certificates.CertificateData { Standard = req.Standard, Learner = req.Learner, LearningDetails = req.LearningDetails, PostalContact = req.PostalContact } }); var results = await _apiClient.CreateCertificates(createRequest); foreach (var result in results) { if (CertificateHelpers.IsDraftCertificateDeemedAsReady(result.Certificate)) { result.Certificate.Status.CurrentStatus = CertificateStatus.Ready; } } return(Ok(results)); }
public async Task <IActionResult> GetCertificate(long uln, string familyName, [SwaggerParameter("Standard Code or Standard Reference Number")] string standard) { var getRequest = new GetBatchCertificateRequest { UkPrn = _headerInfo.Ukprn, Uln = uln, FamilyName = familyName, Standard = standard }; var response = await _apiClient.GetCertificate(getRequest); if (response.ValidationErrors.Any()) { ApiResponse error = new ApiResponse((int)HttpStatusCode.Forbidden, string.Join("; ", response.ValidationErrors)); return(StatusCode(error.StatusCode, error)); } else if (response.Certificate is null) { return(NoContent()); } if (response.Certificate.Status.CurrentStatus == CertificateStatus.Printed) { response.Certificate.Delivered = new Delivered { Status = "WaitingForDelivery" }; } if (CertificateStatus.HasPrintProcessStatus(response.Certificate.Status.CurrentStatus) is false) // status could be Draft or Deleted (or Privately Funded statuses) { var certificateData = response.Certificate.CertificateData; if (!string.IsNullOrEmpty(certificateData.Standard?.StandardReference) && !string.IsNullOrEmpty(certificateData?.LearningDetails?.Version)) { var standardOptions = await _apiClient.GetStandardOptionsByStandardIdAndVersion(certificateData.Standard.StandardReference, certificateData.LearningDetails.Version); var hasOptions = standardOptions != null && standardOptions.CourseOption?.Count() > 0; if (CertificateHelpers.IsDraftCertificateDeemedAsReady(response.Certificate, hasOptions)) { response.Certificate.Status.CurrentStatus = CertificateStatus.Ready; } } } return(Ok(response.Certificate)); }
public void When_AllRequiredFieldsAreComplete_Then_ReturnTrue() { var result = CertificateHelpers.IsDraftCertificateDeemedAsReady(_certificate); result.Should().BeTrue(); }
private void CheckHelperReturnsFalse() { var result = CertificateHelpers.IsDraftCertificateDeemedAsReady(_certificate, hasOptions: true); result.Should().BeFalse(); }