예제 #1
0
        async Task OnAddPersonToGroup()
        {
            if (!(await IsFormValid()))
            {
                return;
            }
            var wantUserContinue = await Application.Current.MainPage.DisplayAlert(
                string.Empty,
                "Vamos a guardar tu foto y aparecerá en algunos apartados de la aplicación móvil de l@s demás usuari@s que se encuentran en la sala. ¡Sólo es para entretenernos un rato! Tendrás la opción de borrar la foto después si quieres y no quedará ni rastro de ella. Si tú no la borras, se borrará al final del día de hoy. Si aún así no te convence, pulsa Cancelar.",
                "Ok",
                "Cancelar");

            if (!wantUserContinue)
            {
                return;
            }


            await ExecuteAsync(async() =>
            {
                var photoBytes = GetByteArray(_photo);
                //save photo in blob storage
                var photoUrl = await BlobStorageService.SaveBlockBlob(photoBytes, PersonName);

                //add face to largeList
                var persistedFaceIdInLargeList = await FaceApiService.AddLargeListFace(photoUrl);

                //add person to group
                var person = await FaceApiService.AddPersonToGroup(new PersonGroupRequest()
                {
                    Name     = PersonName,
                    UserData = JsonConvert.SerializeObject(new UserDataPerson()
                    {
                        LargeListTWPersistFaceId = persistedFaceIdInLargeList.PersistedFaceId,
                        UrlFaceImage             = photoUrl
                    })
                },
                                                                   _personGroup.PersonGroupId);

                //add face to person
                var res = await FaceApiService.AddFaceToPerson(person.PersonId, _personGroup.PersonGroupId, photoBytes);

                //trainmodel
                await FaceApiService.TrainModel(_personGroup.PersonGroupId);

                await Navigation.PopAsync();
            });
        }