public async Task UpdateStatuses(UpdateCertificatesBatchToIndicatePrintedRequest updateCertificatesBatchToIndicatePrintedRequest) { var toBePrintedDate = DateTime.UtcNow; foreach (var certificateStatus in updateCertificatesBatchToIndicatePrintedRequest.CertificateStatuses) { var certificate = await _context.Certificates.FirstAsync(q => q.CertificateReference == certificateStatus.CertificateReference); certificate.BatchNumber = updateCertificatesBatchToIndicatePrintedRequest.BatchNumber; certificate.Status = CertificateStatus.Printed; certificate.ToBePrinted = toBePrintedDate; certificate.UpdatedBy = UpdatedBy.PrintFunction; await UpdateCertificateLog(certificate, CertificateActions.Printed, UpdatedBy.PrintFunction); } await _context.SaveChangesAsync(); }
public async Task ChangeStatusToPrinted(int batchNumber, IEnumerable <CertificateResponse> responses) { // the certificate printed status be will updated in chunks to stay within the WAF message size limits const int chunkSize = 100; var certificateStatuses = responses.Select( q => new CertificateStatus { CertificateReference = q.CertificateReference, Status = Domain.Consts.CertificateStatus.Printed }).ToList(); foreach (var certificateStatusesChunk in certificateStatuses.ChunkBy(chunkSize)) { var updateCertificatesBatchToIndicatePrintedRequest = new UpdateCertificatesBatchToIndicatePrintedRequest { BatchNumber = batchNumber, CertificateStatuses = certificateStatusesChunk }; await _httpClient.PutAsJsonAsync($"/api/v1/certificates/{batchNumber}", updateCertificatesBatchToIndicatePrintedRequest); } }
public async Task <IActionResult> UpdateCertificatesBatchToIndicatePrinted(int batchNumber, [FromBody] UpdateCertificatesBatchToIndicatePrintedRequest updateCertificatesBatchToIndicatePrintedRequest) { await _mediator.Send(updateCertificatesBatchToIndicatePrintedRequest); return(Ok()); }