Пример #1
0
 public static Receipt ToReceipt(this ReceiptRequestViewModel receiptRequestViewModel)
 {
     return(new Receipt()
     {
         Id = receiptRequestViewModel.Id,
         OtherData = receiptRequestViewModel.OtherData,
         Value = receiptRequestViewModel.Value
     });
 }
Пример #2
0
        public async Task <IActionResult> AddReceipt([FromBody] ReceiptRequestViewModel receiptRequestViewModel)
        {
            try
            {
                await _invoiceService.AddReceipt(receiptRequestViewModel);
            }
            catch (Exception)
            {
                return(NotFound(new ErrorResponseViewModel {
                    Id = (int)ErrorResponseIds.InvoiceAlreadyExist, Message = "Receipt already added"
                }));
            }

            return(Ok(true));
        }
Пример #3
0
        public async Task <IActionResult> AnalyzeSimpleReceipt(IFormFile file)
        {
            var analyzeUrl = $"{_configuration["FormRecognizer:Endpoint"]}/formrecognizer/v1.0-preview/prebuilt/receipt/asyncBatchAnalyze";

            //Upload to blob
            using (var stream = file.OpenReadStream())
            {
                var fileUrl = await _blobService.UploadFileAsync(stream, file.FileName, "simple-receipts");

                if (!string.IsNullOrWhiteSpace(fileUrl))
                {
                    ReceiptRequestViewModel receiptRequestViewModel = new ReceiptRequestViewModel()
                    {
                        Url = $"{fileUrl}"
                    };

                    HttpClient client = new HttpClient();
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(
                        new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", $"{_configuration["FormRecognizer:Key"]}");
                    var response = await client.PostAsync(analyzeUrl, new StringContent(JsonConvert.SerializeObject(receiptRequestViewModel), Encoding.UTF8, "application/json"));

                    if (response.StatusCode == System.Net.HttpStatusCode.Accepted)
                    {
                        var a           = response.Headers.GetValues("Operation-Location")?.FirstOrDefault();
                        var operationId = a.Substring(a.Length - 36);

                        var result = await this.GetResultAsync(operationId, fileUrl);

                        return(new OkObjectResult(new { operationId, fileUrl }));
                    }
                }
            }
            return(new BadRequestObjectResult(""));
        }
Пример #4
0
        public async Task AddReceipt(ReceiptRequestViewModel receiptRequestViewModel)
        {
            var receipt = receiptRequestViewModel.ToReceipt();

            await _invoiceRepository.AddReceipt(receiptRequestViewModel.InvoiceId, receipt);
        }