private async Task SavePhotoAndTrain() { if (string.IsNullOrEmpty(GroupIdTextBox.Text) || string.IsNullOrEmpty(GroupNameTextBox.Text) || string.IsNullOrEmpty(PersonNameTextBox.Text)) { await ShowDialog("Group name, group ID and person name cannot be empty"); return; } try { Stream stream = await GetImageStream(); var groupID = GroupIdTextBox.Text; var groupName = GroupNameTextBox.Text; var personName = PersonNameTextBox.Text; await _faceRecognitionService.CreatePersonGroup(groupID, groupName); await _faceRecognitionService.AddNewPersonToGroup(groupID, personName); Tuple <string, CreatePersonResult> definePersonGroupResult = await _faceRecognitionService.AddNewPersonToGroup(groupID, personName); var registerPersonResult = await _faceRecognitionService.RegisterPerson(definePersonGroupResult.Item1, definePersonGroupResult.Item2, stream); await _faceRecognitionService.TrainPersonGroup(definePersonGroupResult.Item1); var trainingStatus = await _faceRecognitionService.VerifyTrainingStatus(definePersonGroupResult.Item1); stream = await GetImageStream(); InfoTextBlock.Text = await _faceRecognitionService.VerifyFaceAgainstTraindedGroup(definePersonGroupResult.Item1, stream); } catch (FaceAPIException ex) { await ShowDialog("Unfortunately error occured: " + ex.Message); } }