private async Task <ImageAnalyzeResult> GetAnalyzeResult(IFormFile file)
        {
            var analyzeImageResult = await _computerVisionClient.AnalyzeImageInStreamAsync(file.OpenReadStream(), VisualFeatures);

            var caption = GetCaption(analyzeImageResult);

            var faces = analyzeImageResult.Faces.ToList();
            var face  = faces.FirstOrDefault();
            var year  = GetYearFromFace(face);

            var tracks = await GetTopRatedTracks(year);

            var randomTracks = tracks.Take(5).OrderBy(a => Guid.NewGuid()).ToList();

            var viewModel = new ImageAnalyzeResult
            {
                ImageDescription = MakeSentence(caption),
                Faces            = faces,

                MusicYear   = year,
                MusicTracks = randomTracks.Select(FullTrackToMusicTrack).Take(5).ToList()
            };

            return(viewModel);
        }
示例#2
0
        public static IEnumerable <ImageAnalyzeResult> ParseImageAnalyzeResults(string json)
        {
            IList <ImageAnalyzeResult> parsedResults = new List <ImageAnalyzeResult>();

            var jsonObject = Json.Decode(json);

            foreach (var result in jsonObject.results)
            {
                ImageAnalyzeResult imageAnalyzeResult = new ImageAnalyzeResult()
                {
                    TaggingId = result.tagging_id,
                    ImageName = result.image,
                    ImageTags = ParseTagsArrayToAnalyzeResultTags((DynamicJsonArray)result.tags)
                };

                parsedResults.Add(imageAnalyzeResult);
            }

            return(parsedResults);
        }