Esempio n. 1
0
        public async Task PickedVisionService(int serviceType)
        {
            bool completed = false;

            switch (serviceType)
            {
            case (int)VisionApiServices.DescribeImage:
                AnalysisResult analyzeDescriptionImage = await UploadAndDescribeImage(tempFileWorking);

                if (analyzeDescriptionImage != null &&
                    analyzeDescriptionImage.Description != null)
                {
                    CaptionCollection.ReplaceRange(analyzeDescriptionImage.Description.Captions);
                    TagCollection.ReplaceRange(analyzeDescriptionImage.Description.Tags);
                    WriteCaptionResult();
                    WriteTagResults();
                    completed = true;
                }

                break;

            case (int)VisionApiServices.RecognizeImage:
                CultureInfo getCultureInfo = CultureInfo.CurrentCulture;
                OcrResults  ocrResults     = await UploadAndRecognizeImage(tempFileWorking, "no");

                if (ocrResults != null && ocrResults.Regions != null &&
                    ocrResults.Regions.Any())
                {
                    FillOCRInformation(ocrResults.Regions);
                    completed = true;
                }
                break;

            case (int)VisionApiServices.GetTags:
                var analysis = await UploadAndGetTagsForImage(tempFileWorking);

                if (analysis != null && analysis.Tags != null && analysis.Tags.Any())
                {
                    var tagNames = analysis.Tags.Select(t => t.Name).ToList();
                    TagCollection.ReplaceRange(tagNames);
                    WriteTagResults();
                    completed = true;
                }

                break;

            case (int)VisionApiServices.GetAnalysis:
                var analyzeImage = await AnalyzeImage(tempFileWorking);

                if (analyzeImage != null)
                {
                    var adult = analyzeImage.Adult != null
                                        ? $"Adult: {analyzeImage.Adult.AdultScore} score, " +
                                $"{analyzeImage.Adult.IsAdultContent} content," +
                                $" {analyzeImage.Adult.IsRacyContent} racy content, " +
                                $"{analyzeImage.Adult.RacyScore} score\n\n"
                                        : "no adult content\n";
                    var description = analyzeImage.Description != null
                                        ? $"Description: TAGS: {WriteTagResultsDescription(analyzeImage.Description.Tags)}\n" +
                                      $"CAPTION: {analyzeImage.Description.Captions}\n" +
                                      $"Color: {analyzeImage.Color}\n":
                                      "no description\n";
                    AnalysisResult = adult + description;
                }
                break;

            default:
                break;
            }

            if (!completed)
            {
                MessagingService.Current.SendMessage <MessagingServiceAlert>(MessagingKeys.CognitiveServiceErrorMessage,
                                                                             new MessagingServiceAlert()
                {
                    Cancel  = "Cancel",
                    Message = "Could not get " +
                              "data, please check your network",
                    Title = "Error"
                });
            }

            IsBusy = false;
        }