public async Task <IActionResult> GetReceiptPhoto(int id) { var photo = await _receiptPhotoService.GetReceiptPhotoAsync(id); if (photo == null) { return(NotFound()); } return(Ok(photo)); }
public async Task <IActionResult> StartReceiptProcessing([FromBody] int id) { try { var receiptPhoto = await _receiptPhotoSvc.GetReceiptPhotoAsync(id); if (receiptPhoto == null) { return(BadRequest()); } var imagePrediction = await GetPredictionAsync(receiptPhoto.FileBytes); var receiptSections = _receiptHelper.ExtractSections(imagePrediction.Predictions); var receiptTemplate = _receiptHelper.CreateReceiptTemplate(receiptSections); var image = _fileHelper.ByteArrayToImage(receiptPhoto.FileBytes); var scanText = _scanTextDirector.ConstructScanText(image, receiptTemplate); var receipt = _receiptDirector.ConstructReceipt(scanText); var user = await _userManager.GetUserAsync(HttpContext.User); receipt.UserId = user.Id; receipt.ReceiptPhotoId = id; await _receiptService.AddReceiptAsync(receipt); var receiptModel = await _receiptService.GetReceiptAsync(receipt.Id); return(Ok(receiptModel)); } catch (Exception e) { return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message)); } }