예제 #1
0
 public async Task <dynamic> AnalyzeImage()
 {
     using (var image = Request.Form.Files.First().OpenReadStream())
     {
         return(await _computerVision.AnalyzeImage(image));
     }
 }
        public static async Task <IActionResult> Run(
            //HTTP Trigger (Functions allow only a single trigger)
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] NewRequest <SmartDoc> newRequest,

            // Inputs
            [Blob("smartdocs/{RequestItem.DocName}", FileAccess.Read, Connection = "SmartDocsStorageConnection")] byte[] smartDocImage,

            // Logger
            ILogger log)
        {
            string stepName = InstructionFlag.AnalyzeImage.ToString();

            log.LogInformation($"***New {stepName} Direct-HTTP Request triggered: {{InstructionFlag.FaceAuthentication.ToString()}}");

            if (httpClient == null)
            {
                httpClient = new HttpClient();
            }

            try
            {
                var result = await ComputerVisionService.AnalyzeImage(httpClient, smartDocImage);

                var resultJson = JsonConvert.SerializeObject(result);

                //Update the request information with the newly processed data
                newRequest.RequestItem.CognitivePipelineActions.Add(new ProcessingStep
                {
                    StepName      = stepName,
                    LastUpdatedAt = DateTime.UtcNow,
                    Output        = resultJson,
                    Status        = SmartDocStatus.ProccessedSuccessfully.ToString()
                });

                return((ActionResult) new OkObjectResult(newRequest));
            }
            catch (Exception ex)
            {
                newRequest.RequestItem.CognitivePipelineActions.Add(new ProcessingStep
                {
                    StepName      = InstructionFlag.AnalyzeText.ToString(),
                    LastUpdatedAt = DateTime.UtcNow,
                    Output        = ex.Message,
                    Status        = SmartDocStatus.ProccessedSuccessfully.ToString()
                });
                return((ActionResult) new BadRequestObjectResult(newRequest));
            }
        }