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); }
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); }