private async Task ProcessCameraCapture(ImageAnalyzer e)
        {
            if (e == null)
            {
                this.ViewModel.Update(ShoppingScreenState.Choice);
                this.isProcessingPhoto = false;
                return;
            }

            await e.DetectFacesAsync();

            EyeDirection gaze = EyeDirection.None;

            if (e.DetectedFaces.Any() && eyeTracker != null)
            {
                // Send to gaze service for detection
                gaze = await eyeTracker.RequestEyesDirection(e.Data);

                if (gaze == EyeDirection.Left)
                {
                    this.ViewModel.Update(ShoppingScreenState.Selected, ShoppingChoice.TopLeft);
                    this.isProcessingPhoto = false;
                    return;
                }
                else if (gaze == EyeDirection.Right)
                {
                    this.ViewModel.Update(ShoppingScreenState.Selected, ShoppingChoice.TopRight);
                    this.isProcessingPhoto = false;
                    return;
                }
            }
            else
            {
                // don't bother if no face
            }

            this.ViewModel.Update(ShoppingScreenState.Choice);
            this.isProcessingPhoto = false;
        }