コード例 #1
0
        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);
        }
コード例 #2
0
 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)));
 }