Exemple #1
0
        public virtual async Task <RecognizeReceiptsOperation> StartRecognizeReceiptsFromUriAsync(Uri receiptUrl, RecognizeOptions recognizeOptions = default, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNull(receiptUrl, nameof(receiptUrl));

            recognizeOptions ??= new RecognizeOptions();

            SourcePath_internal sourcePath = new SourcePath_internal(receiptUrl.AbsoluteUri);
            Response            response   = await ServiceClient.AnalyzeReceiptAsyncAsync(includeTextDetails : recognizeOptions.IncludeTextContent, sourcePath, cancellationToken).ConfigureAwait(false);

            string location = ClientCommon.GetResponseHeader(response.Headers, Constants.OperationLocationHeader);

            return(new RecognizeReceiptsOperation(ServiceClient, Diagnostics, location));
        }
Exemple #2
0
        public virtual async Task <RecognizeContentOperation> StartRecognizeContentFromUriAsync(Uri formFileUri, RecognizeOptions recognizeOptions = default, CancellationToken cancellationToken = default)
        {
            SourcePath_internal sourcePath = new SourcePath_internal(formFileUri.ToString());
            ResponseWithHeaders <ServiceAnalyzeLayoutAsyncHeaders> response = await ServiceClient.RestClient.AnalyzeLayoutAsyncAsync(sourcePath, cancellationToken).ConfigureAwait(false);

            //Response response = await ServiceClient.RestClient.AnalyzeLayoutAsyncAsync(sourcePath, cancellationToken).ConfigureAwait(false);

            // TODO: throw Exception if header is not present.
            //response.Headers.TryGetValue("Operation-Location", out string operationLocation);
            string operationLocation = response.Headers.OperationLocation;

            return(new RecognizeContentOperation(ServiceClient, operationLocation));
        }
        public virtual async Task <RecognizeCustomFormsOperation> StartRecognizeCustomFormsFromUriAsync(string modelId, Uri formFileUri, RecognizeOptions recognizeOptions = default, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNullOrEmpty(modelId, nameof(modelId));
            Argument.AssertNotNull(formFileUri, nameof(formFileUri));

            Guid guid = ClientCommon.ValidateModelId(modelId, nameof(modelId));

            recognizeOptions ??= new RecognizeOptions();

            SourcePath_internal sourcePath = new SourcePath_internal(formFileUri.ToString());
            ResponseWithHeaders <ServiceAnalyzeWithCustomModelHeaders> response = await ServiceClient.RestClient.AnalyzeWithCustomModelAsync(guid, includeTextDetails : recognizeOptions.IncludeTextContent, sourcePath, cancellationToken).ConfigureAwait(false);

            return(new RecognizeCustomFormsOperation(ServiceClient, Diagnostics, response.Headers.OperationLocation));
        }
Exemple #4
0
 public virtual Response AnalyzeLayoutAsync(SourcePath_internal fileStream = null, CancellationToken cancellationToken = default)
 {
     using var scope = _clientDiagnostics.CreateScope("ServiceClient.AnalyzeLayoutAsync");
     scope.Start();
     try
     {
         return(RestClient.AnalyzeLayoutAsync(fileStream, cancellationToken).GetRawResponse());
     }
     catch (Exception e)
     {
         scope.Failed(e);
         throw;
     }
 }
Exemple #5
0
        public virtual RecognizeCustomFormsOperation StartRecognizeCustomFormsFromUri(string modelId, Uri formFileUri, RecognizeOptions recognizeOptions = default, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNullOrEmpty(modelId, nameof(modelId));
            Argument.AssertNotNull(formFileUri, nameof(formFileUri));

            Guid guid = ClientCommon.ValidateModelId(modelId, nameof(modelId));

            recognizeOptions ??= new RecognizeOptions();

            SourcePath_internal sourcePath = new SourcePath_internal(formFileUri.AbsoluteUri);
            Response            response   = ServiceClient.AnalyzeWithCustomModel(guid, includeTextDetails: recognizeOptions.IncludeTextContent, sourcePath, cancellationToken);
            string location = ClientCommon.GetResponseHeader(response.Headers, Constants.OperationLocationHeader);

            return(new RecognizeCustomFormsOperation(ServiceClient, Diagnostics, location));
        }
Exemple #6
0
        public virtual async Task <Response <ExtractedReceipt> > ExtractReceiptAsync(Uri uri, bool includeRawPageExtractions = false, CancellationToken cancellationToken = default)
        {
            SourcePath_internal sourcePath = new SourcePath_internal()
            {
                Source = uri.ToString()
            };
            ResponseWithHeaders <AnalyzeReceiptAsyncHeaders> response = _operations.RestClient.AnalyzeReceiptAsync(includeTextDetails: includeRawPageExtractions, sourcePath, cancellationToken);
            var operation = new ExtractReceiptOperation(_operations, response.Headers.OperationLocation);

            var operationResponse = await operation.WaitForCompletionAsync().ConfigureAwait(false);

            if (!operation.HasValue)
            {
                throw new RequestFailedException("Failed to retrieve response from ExtractReceipt Long-Running Operation");
            }

            // TODO: Is this the best way?
            // https://github.com/Azure/azure-sdk-for-net/issues/10391
            return(Response.FromValue(operation.Value, operationResponse.GetRawResponse()));
        }
Exemple #7
0
        public virtual Response <ExtractedReceipt> ExtractReceipt(Uri uri, bool includeRawPageExtractions = false, CancellationToken cancellationToken = default)
        {
            SourcePath_internal sourcePath = new SourcePath_internal()
            {
                Source = uri.ToString()
            };
            ResponseWithHeaders <AnalyzeReceiptAsyncHeaders> response = _operations.RestClient.AnalyzeReceiptAsync(includeTextDetails: includeRawPageExtractions, sourcePath, cancellationToken);
            var operation = new ExtractReceiptOperation(_operations, response.Headers.OperationLocation);

            ValueTask <Response <ExtractedReceipt> > task = operation.WaitForCompletionAsync();

            // TODO: this feels very bad.  Better way?
            // https://github.com/Azure/azure-sdk-for-net/issues/10391
            task.AsTask().Wait();

            if (!operation.HasValue)
            {
                throw new RequestFailedException("Failed to retrieve response from ExtractReceipt Long-Running Operation");
            }

            // TODO: this is also a mess. Reconcile these together.
            // https://github.com/Azure/azure-sdk-for-net/issues/10391
            return(Response.FromValue(operation.Value, task.AsTask().Result.GetRawResponse()));
        }
 public virtual Response AnalyzeLayoutAsync(SourcePath_internal fileStream = null, CancellationToken cancellationToken = default)
 {
     return(RestClient.AnalyzeLayoutAsync(fileStream, cancellationToken).GetRawResponse());
 }
 public virtual async Task <Response> AnalyzeLayoutAsyncAsync(SourcePath_internal fileStream = null, CancellationToken cancellationToken = default)
 {
     return((await RestClient.AnalyzeLayoutAsyncAsync(fileStream, cancellationToken).ConfigureAwait(false)).GetRawResponse());
 }
 public virtual Response AnalyzeReceiptAsync(bool?includeTextDetails = null, SourcePath_internal fileStream = null, CancellationToken cancellationToken = default)
 {
     return(RestClient.AnalyzeReceiptAsync(includeTextDetails, fileStream, cancellationToken).GetRawResponse());
 }
 public virtual async Task <Response> AnalyzeReceiptAsyncAsync(bool?includeTextDetails = null, SourcePath_internal fileStream = null, CancellationToken cancellationToken = default)
 {
     return((await RestClient.AnalyzeReceiptAsyncAsync(includeTextDetails, fileStream, cancellationToken).ConfigureAwait(false)).GetRawResponse());
 }
 public virtual Response AnalyzeWithCustomModel(Guid modelId, bool?includeTextDetails = null, SourcePath_internal fileStream = null, CancellationToken cancellationToken = default)
 {
     return(RestClient.AnalyzeWithCustomModel(modelId, includeTextDetails, fileStream, cancellationToken).GetRawResponse());
 }
 public virtual async Task <Response> AnalyzeWithCustomModelAsync(Guid modelId, bool?includeTextDetails, SourcePath_internal fileStream, CancellationToken cancellationToken = default)
 {
     return((await RestClient.AnalyzeWithCustomModelAsync(modelId, includeTextDetails, fileStream, cancellationToken).ConfigureAwait(false)).GetRawResponse());
 }
Exemple #14
0
 public virtual async Task <Response> AnalyzeReceiptAsyncAsync(bool?includeTextDetails = null, SourcePath_internal fileStream = null, CancellationToken cancellationToken = default)
 {
     using var scope = _clientDiagnostics.CreateScope("ServiceClient.AnalyzeReceiptAsync");
     scope.Start();
     try
     {
         return((await RestClient.AnalyzeReceiptAsyncAsync(includeTextDetails, fileStream, cancellationToken).ConfigureAwait(false)).GetRawResponse());
     }
     catch (Exception e)
     {
         scope.Failed(e);
         throw;
     }
 }
Exemple #15
0
 public virtual Response AnalyzeWithCustomModel(Guid modelId, bool?includeTextDetails = null, SourcePath_internal fileStream = null, CancellationToken cancellationToken = default)
 {
     using var scope = _clientDiagnostics.CreateScope("ServiceClient.AnalyzeWithCustomModel");
     scope.Start();
     try
     {
         return(RestClient.AnalyzeWithCustomModel(modelId, includeTextDetails, fileStream, cancellationToken).GetRawResponse());
     }
     catch (Exception e)
     {
         scope.Failed(e);
         throw;
     }
 }