public async Task <List <CertificatePrintStatusUpdateMessage> > Update(Batch batch) { List <CertificatePrintStatusUpdateMessage> printStatusUpdateMessages = new List <CertificatePrintStatusUpdateMessage>(); if (batch.Status == CertificateStatus.SentToPrinter) { _logger.LogInformation($"Batch log {batch.BatchNumber} will be updated as sent to printer"); var updateRequest = new UpdateBatchLogSentToPrinterRequest() { BatchCreated = batch.BatchCreated, NumberOfCertificates = batch.NumberOfCertificates, NumberOfCoverLetters = batch.NumberOfCoverLetters, CertificatesFileName = batch.CertificatesFileName, FileUploadStartTime = batch.FileUploadStartTime, FileUploadEndTime = batch.FileUploadEndTime, }; var response = await _assessorServiceApiClient.UpdateBatchLogSentToPrinter(batch.BatchNumber, updateRequest); if (response.Errors.Count == 0) { printStatusUpdateMessages.AddRange(BuildCertificatePrintStatusUpdateMessages( batch.BatchNumber, batch.Certificates, batch.Status, DateTime.UtcNow)); } } else if (batch.Status == CertificateStatus.Printed) { _logger.LogInformation($"Batch log {batch.BatchNumber} will be updated as printed"); var updateRequest = new UpdateBatchLogPrintedRequest() { BatchDate = batch.BatchCreated, PostalContactCount = batch.NumberOfCoverLetters, TotalCertificateCount = batch.NumberOfCertificates, PrintedDate = batch.PrintedDate, DateOfResponse = batch.DateOfResponse }; var response = await _assessorServiceApiClient.UpdateBatchLogPrinted(batch.BatchNumber, updateRequest); if (response.Errors.Count == 0) { printStatusUpdateMessages.AddRange(BuildCertificatePrintStatusUpdateMessages( batch.BatchNumber, batch.Certificates, batch.Status, batch.PrintedDate.Value)); } } if (printStatusUpdateMessages.Count > 0) { _logger.LogInformation($"Batch log {batch.BatchNumber} contained {batch.Certificates.Count} certificates, for which {printStatusUpdateMessages.Count} messages will be queued"); } return(printStatusUpdateMessages); }
public async Task <ValidationResponse> UpdateBatchLogPrinted(int batchNumber, UpdateBatchLogPrintedRequest model) { using (var request = new HttpRequestMessage(HttpMethod.Put, $"/api/v1/batches/{batchNumber}/update-printed")) { return(await PostPutRequestWithResponse <UpdateBatchLogPrintedRequest, ValidationResponse>(request, model)); } }
public async Task <IActionResult> UpdateBatchLogPrinted(int batchNumber, [FromBody] UpdateBatchLogPrintedRequest request) { request.BatchNumber = batchNumber; return(Ok(await _mediator.Send(request))); }