public static async Task RunAsync([BlobTrigger("resumeuploadcontainer/{name}", Connection = "AzureWebJobsStorage")] Stream myBlob, string name, Uri uri, TraceWriter log) { log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes"); string[] spiltfilenamewithext = name.Split('.'); string filenamewithoutextension = spiltfilenamewithext[0]; if (IsValidExtension(spiltfilenamewithext[spiltfilenamewithext.Length - 1])) { PdfReader pdfReader = new PdfReader(myBlob); ResumeDocModel resumeDocModel = new ResumeDocModel { DocumentName = filenamewithoutextension, DocumentUri = uri.AbsoluteUri }; CognitiveTextAnalytics.TextAnalytics(pdfReader, log, resumeDocModel); string[] resumeKeysArray = ResumeKeyWords.Split(new string[] { "," }, StringSplitOptions.None); bool isResumeDoc = false; foreach (string keys in resumeKeysArray) { isResumeDoc = resumeDocModel.keyPhraseBatchResult.KeyPhrases.Any(s => s.IndexOf(keys, StringComparison.OrdinalIgnoreCase) >= 0); if (isResumeDoc) { resumeDocModel.docType = DocType.Resume; break; } } if (!isResumeDoc) { resumeDocModel.docType = DocType.Others; } List <CloudBlockBlob> cloudBlocks = DocumentExtraction.ExtractImageUploadToAzure(pdfReader, myBlob, log, filenamewithoutextension, resumeDocModel); if (cloudBlocks.Count > 0) { log.Info("===== Computer Vision Analysis Started ======"); ImageBatchResult imageBatchResult = new ImageBatchResult(); foreach (CloudBlockBlob cloudBlockBlob in cloudBlocks) { string blobUrlWithSAS = AzStorage.GetBlobSasUri(cloudBlockBlob); await CognitiveComputerVision.VisionAnalyticsAsync(log, blobUrlWithSAS, imageBatchResult); } resumeDocModel.imageBatchResult = imageBatchResult; log.Info("===== Computer Vision Analysis Completed ======"); } else { log.Info("The Document doesn't not have any Images to analyze"); } CosmosDB cosmosDB = new CosmosDB(); cosmosDB.CreateDocumentDB().Wait(); await cosmosDB.UpdInsResumeDocumentAsync(resumeDocModel); } else { log.Info("Please upload the valid Document in " + string.Join(",", _validExtensions) + " Extension"); } }
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); }