private async Task <DialogTurnResult> SaveSelfieStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var userData = await UserStateAccessor.GetAsync(stepContext.Context, () => new Models.UserData(), cancellationToken); if (userData.IsStoreSelectionOk) { var activity = stepContext.Context.Activity; var reply = activity.CreateReply(); var msg = string.Empty; if (activity.Attachments != null && activity.Attachments.Any()) { var file = activity.Attachments[0]; var personId = Guid.Parse(userData.PersonId); var image = await ImageUtils.GetImageStreamAsync(file.ContentUrl); // Add Face to Person await _faceRecognitionService.AddPersonFaceAsync(personId, image); msg = $"Thanks {userData.Name}!"; } else { msg = "I can’t find your photo. Please try again."; } await stepContext.Context.SendActivityAsync(msg, cancellationToken : cancellationToken); } else { await stepContext.Context.SendActivityAsync("I am sorry that's the closest store.", cancellationToken : cancellationToken); } return(await stepContext.EndDialogAsync(cancellationToken : cancellationToken)); }
public async Task <IActionResult> CreatePerson(string personName, IFormFile file) { if (string.IsNullOrEmpty(personName)) { return(BadRequest("[personName] is required")); } if (file == null || file.Length == 0) { return(BadRequest("[file] is required")); } var response = await _faceRecognitionService.CreatePersonAsync(personName); using (var fileStream = file.OpenReadStream()) { await _faceRecognitionService.AddPersonFaceAsync(response, fileStream); } return(Ok(response)); }