public void ShowEmotionData(FaceEmotionData emotion)
        {
            this.EmotionData = EmotionServiceHelper.ScoresToEmotionData(emotion.Scores).OrderByDescending(e => e.EmotionScore).ToArray();

            this.DataContext = this;

            this.genderAgeGrid.Visibility = Visibility.Collapsed;
            this.emotionGrid.Visibility   = Visibility.Visible;
            this.captionCanvas.Visibility = Visibility.Visible;
        }
        public static async Task <FaceEmotionData[]> RecognizeAsync(Func <Task <Stream> > imageStreamCallback)
        {
            // Implement: PBI 2, Task 3, Step 5
            // You should make a call to the EmotionServiceClient object that support a Stream as parameter to identify emotions
            //return await RunTaskWithAutoRetryOnQuotaLimitExceededError<EmotionData[]>(async () => await emotionClient.RecognizeAsync(await imageStreamCallback()));
            Stream imgData = await imageStreamCallback();

            IList <DetectedFace> result = await RunTaskWithAutoRetryOnQuotaLimitExceededError <IList <DetectedFace> >(async() => await emotionClient.Face.DetectWithStreamAsync(imgData, true, false, faceAttributes)); //.RecognizeAsync(await imageStreamCallback()));

            //int i = GetDefaultResultIndex(result);

            FaceEmotionData[] fed = new FaceEmotionData[result.Count];

            for (int i = 0; i < result.Count; i++)
            {
                FaceEmotionData emData = new FaceEmotionData
                {
                    Scores        = new EmotionScores(),
                    FaceRectangle = new Rectangle()
                };

                emData.Scores.Anger     = result[i].FaceAttributes.Emotion.Anger;
                emData.Scores.Contempt  = result[i].FaceAttributes.Emotion.Contempt;
                emData.Scores.Disgust   = result[i].FaceAttributes.Emotion.Disgust;
                emData.Scores.Fear      = result[i].FaceAttributes.Emotion.Fear;
                emData.Scores.Happiness = result[i].FaceAttributes.Emotion.Happiness;
                emData.Scores.Neutral   = result[i].FaceAttributes.Emotion.Neutral;
                emData.Scores.Sadness   = result[i].FaceAttributes.Emotion.Sadness;
                emData.Scores.Surprise  = result[i].FaceAttributes.Emotion.Surprise;

                emData.FaceRectangle.Height = result[i].FaceRectangle.Height;
                emData.FaceRectangle.Left   = result[i].FaceRectangle.Left;
                emData.FaceRectangle.Top    = result[i].FaceRectangle.Top;
                emData.FaceRectangle.Width  = result[i].FaceRectangle.Width;

                fed[i] = emData;
            }

            return(fed);
        }