public async Task RecognizeReceiptsOperationCreatesDiagnosticScopeOnUpdate() { using var testListener = new ClientDiagnosticListener(DiagnosticNamespace); using var stream = new MemoryStream(Encoding.UTF8.GetBytes("{}")); var mockResponse = new MockResponse(200); mockResponse.ContentStream = stream; var mockTransport = new MockTransport(new[] { mockResponse, mockResponse }); var options = new FormRecognizerClientOptions() { Transport = mockTransport }; var client = CreateFormRecognizerClient(options); var operation = new RecognizeReceiptsOperation("00000000-0000-0000-0000-000000000000", client); if (IsAsync) { await operation.UpdateStatusAsync(); } else { operation.UpdateStatus(); } testListener.AssertScope($"{nameof(RecognizeReceiptsOperation)}.{nameof(RecognizeReceiptsOperation.UpdateStatus)}"); }
public async Task StronglyTypingARecognizedForm() { string endpoint = TestEnvironment.Endpoint; string apiKey = TestEnvironment.ApiKey; FormRecognizerClient client = new FormRecognizerClient(new Uri(endpoint), new AzureKeyCredential(apiKey)); Uri receiptUri = FormRecognizerTestEnvironment.CreateUri("contoso-receipt.jpg"); #region Snippet:FormRecognizerSampleStronglyTypingARecognizedForm //@@ Uri receiptUri = <receiptUri>; RecognizeReceiptsOperation operation = await client.StartRecognizeReceiptsFromUriAsync(receiptUri); Response <RecognizedFormCollection> operationResponse = await operation.WaitForCompletionAsync(); RecognizedFormCollection recognizedForms = operationResponse.Value; foreach (RecognizedForm recognizedForm in recognizedForms) { Receipt receipt = new Receipt(recognizedForm); if (receipt.MerchantName != null) { string merchantName = receipt.MerchantName; Console.WriteLine($"Merchant Name: '{merchantName}', with confidence {receipt.MerchantName.Confidence}"); } if (receipt.TransactionDate != null) { DateTime transactionDate = receipt.TransactionDate; Console.WriteLine($"Transaction Date: '{transactionDate}', with confidence {receipt.TransactionDate.Confidence}"); } foreach (ReceiptItem item in receipt.Items) { Console.WriteLine("Item:"); if (item.Name != null) { string name = item.Name; Console.WriteLine($" Name: '{name}', with confidence {item.Name.Confidence}"); } if (item.TotalPrice != null) { float totalPrice = item.TotalPrice; Console.WriteLine($" Total Price: '{totalPrice}', with confidence {item.TotalPrice.Confidence}"); } } if (receipt.Total != null) { float total = receipt.Total; Console.WriteLine($"Total: '{total}', with confidence {receipt.Total.Confidence}"); } } #endregion }
public async Task <RecognizedForm> Analyze(Stream fileStream) { RecognizeReceiptsOperation operation = await GetClient().StartRecognizeReceiptsAsync(fileStream, OperationOptions); Response <RecognizedFormCollection> operationResponse = await operation.WaitForCompletionAsync(); RecognizedFormCollection Receipts = operationResponse.Value; return(ProcessResults(Receipts)); }
public async Task RecognizeReceiptsOperationCanPollFromNewObject() { var client = CreateFormRecognizerClient(out var nonInstrumentedClient); var uri = FormRecognizerTestEnvironment.CreateUri(TestFile.Blank); var operation = await client.StartRecognizeReceiptsFromUriAsync(uri); var sameOperation = new RecognizeReceiptsOperation(operation.Id, nonInstrumentedClient); await sameOperation.WaitForCompletionAsync(PollingInterval); Assert.IsTrue(sameOperation.HasValue); Assert.AreEqual(1, sameOperation.Value.Count); }
public async Task RecognizeReceiptsOperationCanPollFromNewObject() { // Skip instrumenting here because the internal service client passed to the operation object would be made null otherwise, // making the test fail. var client = CreateFormRecognizerClient(skipInstrumenting: true); var uri = FormRecognizerTestEnvironment.CreateUri(TestFile.Blank); var operation = await client.StartRecognizeReceiptsFromUriAsync(uri); var sameOperation = new RecognizeReceiptsOperation(operation.Id, client); await sameOperation.WaitForCompletionAsync(PollingInterval); Assert.IsTrue(sameOperation.HasValue); Assert.AreEqual(1, sameOperation.Value.Count); }
public async Task RecognizeReceiptsFromUri() { string endpoint = TestEnvironment.Endpoint; string apiKey = TestEnvironment.ApiKey; FormRecognizerClient client = new FormRecognizerClient(new Uri(endpoint), new AzureKeyCredential(apiKey)); #region Snippet:FormRecognizerSampleRecognizeReceiptFileFromUri #if SNIPPET Uri receiptUri = new Uri("<receiptUri>"); #else Uri receiptUri = FormRecognizerTestEnvironment.CreateUri("contoso-receipt.jpg"); #endif RecognizeReceiptsOperation operation = await client.StartRecognizeReceiptsFromUriAsync(receiptUri); Response <RecognizedFormCollection> operationResponse = await operation.WaitForCompletionAsync(); RecognizedFormCollection receipts = operationResponse.Value; // To see the list of the supported fields returned by service and its corresponding types, consult: // https://aka.ms/formrecognizer/receiptfields foreach (RecognizedForm receipt in receipts) { if (receipt.Fields.TryGetValue("MerchantName", out FormField merchantNameField)) { if (merchantNameField.Value.ValueType == FieldValueType.String) { string merchantName = merchantNameField.Value.AsString(); Console.WriteLine($"Merchant Name: '{merchantName}', with confidence {merchantNameField.Confidence}"); } } if (receipt.Fields.TryGetValue("TransactionDate", out FormField transactionDateField)) { if (transactionDateField.Value.ValueType == FieldValueType.Date) { DateTime transactionDate = transactionDateField.Value.AsDate(); Console.WriteLine($"Transaction Date: '{transactionDate}', with confidence {transactionDateField.Confidence}"); } } if (receipt.Fields.TryGetValue("Items", out FormField itemsField)) { if (itemsField.Value.ValueType == FieldValueType.List) { foreach (FormField itemField in itemsField.Value.AsList()) { Console.WriteLine("Item:"); if (itemField.Value.ValueType == FieldValueType.Dictionary) { IReadOnlyDictionary <string, FormField> itemFields = itemField.Value.AsDictionary(); if (itemFields.TryGetValue("Name", out FormField itemNameField)) { if (itemNameField.Value.ValueType == FieldValueType.String) { string itemName = itemNameField.Value.AsString(); Console.WriteLine($" Name: '{itemName}', with confidence {itemNameField.Confidence}"); } } if (itemFields.TryGetValue("TotalPrice", out FormField itemTotalPriceField)) { if (itemTotalPriceField.Value.ValueType == FieldValueType.Float) { float itemTotalPrice = itemTotalPriceField.Value.AsFloat(); Console.WriteLine($" Total Price: '{itemTotalPrice}', with confidence {itemTotalPriceField.Confidence}"); } } } } } } if (receipt.Fields.TryGetValue("Total", out FormField totalField)) { if (totalField.Value.ValueType == FieldValueType.Float) { float total = totalField.Value.AsFloat(); Console.WriteLine($"Total: '{total}', with confidence '{totalField.Confidence}'"); } } } #endregion }