public static async Task VisionAnalyticsAsync(TraceWriter log, string fileURLWithSAS, ImageBatchResult imageBatchResult) { ComputerVisionClient computerVision = new ComputerVisionClient(new ApiKeyServiceClientCredentials(VisionSubscriptionKey), new DelegatingHandler[] { }); computerVision.Endpoint = ComputerVisionEndpoint; string imageURLwithoutSAS = fileURLWithSAS.Substring(0, fileURLWithSAS.IndexOf('?')); CognitiveImageAnalysis cogniiveImageAnalysis = new CognitiveImageAnalysis { imageURL = imageURLwithoutSAS }; CognitiveImageTextAnalysis cognitiveImageTextAnalysis = new CognitiveImageTextAnalysis { imageURL = imageURLwithoutSAS }; var t1 = AnalyzeRemoteAsync(computerVision, fileURLWithSAS, cogniiveImageAnalysis); var t2 = ExtractRemoteTextAsync(computerVision, fileURLWithSAS, log, cognitiveImageTextAnalysis); await Task.WhenAll(t1, t2); imageBatchResult.imageAnalyses.Add(cogniiveImageAnalysis); imageBatchResult.imageTextAnalyses.Add(cognitiveImageTextAnalysis); }
private static async Task AnalyzeRemoteAsync(ComputerVisionClient computerVision, string fileURLWithSAS, CognitiveImageAnalysis cognitiveImageAnalysis) { try { if (ValidateImage(1, fileURLWithSAS)) { cognitiveImageAnalysis.imageAnalysis = await computerVision.AnalyzeImageAsync(fileURLWithSAS, features); } else { cognitiveImageAnalysis.error = "Image Validation Failed for ImageAnalysis API"; } } catch (Exception e) { if (e is ComputerVisionErrorException) { ComputerVisionErrorException ex = (ComputerVisionErrorException)e; cognitiveImageAnalysis.error = ex.Message.ToString() + " due to " + ex.Response.Content; } else { cognitiveImageAnalysis.error = e.Message.ToString(); } } }