Beispiel #1
0
        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));
        }