private async Task ExecuteTakePhotoCommandAsync() { IsBusy = true; if (CrossMedia.Current.IsCameraAvailable && CrossMedia.Current.IsTakePhotoSupported) { // Supply media options for saving our photo after it's taken. var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions { Directory = "CognitiveTest", Name = $"{DateTime.UtcNow}.jpg" }; var file = await CrossMedia.Current.TakePhotoAsync(mediaOptions); if (file != null) { imageFileSource = file.Path; var faces = await UploadAndDetectFaces(file); if (faces != null) { IsBusy = false; var faceList = new List <FaceView>(); var index = 1; foreach (var face in faces) { if (face.FaceAttributes != null) { faceList.Add(new FaceView(index, face.FaceAttributes)); } index++; } Faces.ReplaceRange(faceList); } else { MessagingService.Current.SendMessage <MessagingServiceAlert>(MessagingKeys.CognitiveServiceErrorMessage, new MessagingServiceAlert() { Cancel = "Cancel", Message = "Could not get " + "data, please check your network", Title = "Error" }); } } } }