Esempio n. 1
0
 public async Task <BatchLogResponse> CreateBatchLog(CreateBatchLogRequest createBatchLogRequest)
 {
     using (var request = new HttpRequestMessage(HttpMethod.Post, $"/api/v1/batches/create"))
     {
         return(await PostPutRequestWithResponse <CreateBatchLogRequest, BatchLogResponse>(request, createBatchLogRequest));
     }
 }
        public async Task <BatchLogResponse> CreateBatchLog(CreateBatchLogRequest createBatchLogRequest)
        {
            var responseMessage = await _httpClient.PostAsJsonAsync(
                $"/api/v1/batches", createBatchLogRequest);

            return(await responseMessage.Content.ReadAsAsync <BatchLogResponse>());
        }
        public async Task Then_ApiCalled_ToCreateBatchLog()
        {
            // Arrange
            var utcDate = DateTime.UtcNow;

            var batchResponse = Builder <BatchLogResponse> .CreateNew().Build();

            batchResponse.ScheduledDate = utcDate;

            var request = new CreateBatchLogRequest()
            {
                ScheduledDate = utcDate
            };

            _mockHttpMessageHandler
            .Protected()
            .Setup <Task <HttpResponseMessage> >
            (
                "SendAsync",
                ItExpr.Is <HttpRequestMessage>(r => r.RequestUri.AbsolutePath == $"/api/v1/batches/create" && r.Method == HttpMethod.Post),
                ItExpr.IsAny <CancellationToken>()
            )
            .ReturnsAsync(new HttpResponseMessage {
                StatusCode = System.Net.HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(batchResponse), Encoding.UTF8, "text/json")
            })
            .Verifiable();

            // Act
            var result = await _sut.CreateBatchLog(request);

            // Assert
            result.Should().Equals(batchResponse);
        }
 public async Task <IActionResult> Create([FromBody] CreateBatchLogRequest request)
 {
     return(Ok(await _mediator.Send(request)));
 }
Esempio n. 5
0
        private async Task UploadCertificateDetailsToPinter()
        {
            try
            {
                _aggregateLogger.LogInfo("Print Process Function Started");

                var scheduleRun = await _assessorServiceApi.GetSchedule(ScheduleType.PrintRun);

                if (scheduleRun == null)
                {
                    _aggregateLogger.LogInfo("Print Function not scheduled to run at this time.");
                    return;
                }

                var batchLogResponse = await _assessorServiceApi.GetCurrentBatchLog();

                var batchNumber  = batchLogResponse.BatchNumber + 1;
                var certificates = (await _assessorServiceApi.GetCertificatesToBePrinted()).ToList()
                                   .Sanitise(_aggregateLogger);

                if (certificates.Count == 0)
                {
                    _aggregateLogger.LogInfo("No certificates to process");
                }
                else
                {
                    var certificateFileName =
                        $"IFA-Certificate-{DateTime.UtcNow.UtcToTimeZoneTime():MMyy}-{batchNumber.ToString().PadLeft(3, '0')}.json";
                    var excelFileName = $"IFA-Certificate-{DateTime.UtcNow.UtcToTimeZoneTime()}-{batchNumber.ToString().PadLeft(3, '0')}.xlsx";

                    var batchLogRequest = new CreateBatchLogRequest
                    {
                        BatchNumber         = batchNumber,
                        FileUploadStartTime = DateTime.UtcNow,
                        Period               = DateTime.UtcNow.UtcToTimeZoneTime().ToString("MMyy"),
                        BatchCreated         = DateTime.UtcNow,
                        CertificatesFileName = certificateFileName
                    };

                    var configuration = _configurationWrapper.GetConfiguration();

                    if (configuration.Sftp.UseJson)
                    {
                        _printingJsonCreator.Create(batchNumber, certificates, certificateFileName);
                        await _notificationService.Send(batchNumber, certificates, certificateFileName);
                    }
                    else
                    {
                        _printingSpreadsheetCreator.Create(batchNumber, certificates);
                        await _notificationService.Send(batchNumber, certificates, excelFileName);
                    }

                    batchLogRequest.FileUploadEndTime    = DateTime.UtcNow;
                    batchLogRequest.NumberOfCertificates = certificates.Count;
                    batchLogRequest.NumberOfCoverLetters = 0;
                    batchLogRequest.ScheduledDate        = batchLogResponse.ScheduledDate;

                    await _fileTransferClient.LogUploadDirectory();

                    await _assessorServiceApi.CreateBatchLog(batchLogRequest);

                    await _assessorServiceApi.ChangeStatusToPrinted(batchNumber, certificates);
                }
                await _assessorServiceApi.CompleteSchedule(scheduleRun.Id);
            }
            catch (Exception e)
            {
                _aggregateLogger.LogError("Function Errored", e);
                throw;
            }
        }