public static Receipt ToReceipt(this ReceiptRequestViewModel receiptRequestViewModel) { return(new Receipt() { Id = receiptRequestViewModel.Id, OtherData = receiptRequestViewModel.OtherData, Value = receiptRequestViewModel.Value }); }
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)); }
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("")); }
public async Task AddReceipt(ReceiptRequestViewModel receiptRequestViewModel) { var receipt = receiptRequestViewModel.ToReceipt(); await _invoiceRepository.AddReceipt(receiptRequestViewModel.InvoiceId, receipt); }