Beispiel #1
0
        private async System.Threading.Tasks.Task SearchInPhotos(IMediaHelper mediaHelper)
        {
            IsRegreshing  = true;
            IsNotComparig = false;

            var images = await mediaHelper.PickMultipleImages();

            if (images != null)
            {
                List <ImagePhoto> imageFindend = new List <ImagePhoto>();

                await _recognitionAppService.SearchPersonInPictures(images.Select(d => d.StreamImage), (stringPath, people) =>
                {
                    imageFindend.Add(new ImagePhoto()
                    {
                        Path = stringPath,
                        Text = string.Join(", ", people.Select(d => d.Name))
                    });
                });

                ObservableCollection <PersonFace> imagesObserbleCollection = imageFindend.Select(e => new PersonFace()
                {
                    Path = e.Path,
                }).ToObservableCollection();

                string allName = string.Join(", ", TrainingListImages.Select(d => d.Name));

                var allPath = TrainingListImages.SelectMany(e => e.TrainingTempImages).Select(d => d.Path).ToList();

                var searchedPeople = imageFindend.Select(e => e.Path).ToList();

                _parameters.Add(Constants.GALLERY_IMAGES, imagesObserbleCollection);
                _parameters.Add(Constants.GALLERY_NAME, Constants.MAIN_TITLE);
                _parameters.Add(Constants.GROUPED_FINDED, new GroupFinded()
                {
                    PeopleName     = allName,
                    PeoplePhotos   = allPath,
                    SearchedPeople = searchedPeople
                });

                await _navigationService.NavigateAsync(NavigationConstants.GallerySave, _parameters);

                IsRegreshing  = false;
                IsNotComparig = true;
            }
            else
            {
                await _pageDialogService.DisplayAlertAsync("Alert", Constants.IMAGE_NOT_LOADED, "Ok");

                IsRegreshing  = false;
                IsNotComparig = true;
                return;
            }
        }
Beispiel #2
0
        private void DeleteFace(FaceToDelete face)
        {
            var indexPerson = TrainingListImages.IndexOf(face.Person);

            if (indexPerson >= 0)
            {
                var personFace = TrainingListImages[indexPerson].TrainingTempImages.IndexOf(face.Face);

                TrainingListImages[indexPerson].TrainingTempImages.RemoveAt(personFace);

                OnPropertyChanged(nameof(TrainingListImages));
            }
        }
Beispiel #3
0
        private async System.Threading.Tasks.Task AddPerson(IMediaHelper mediaHelper)
        {
            try
            {
                var current = Connectivity.NetworkAccess;

                if (current != NetworkAccess.Internet)
                {
                    await _pageDialogService.DisplayAlertAsync("Alert", Constants.NOT_INTERNET, "Ok");

                    IsRegreshing = false;
                    return;
                }

                IsRegreshing           = true;
                _recognitionAppService = new RecognitionAppService();

                List <PersonFace> tempImages = new List <PersonFace>();

                var images = await mediaHelper.PickMultipleImages();

                if (images != null)
                {
                    foreach (var image in images)
                    {
                        tempImages.Add(new PersonFace()
                        {
                            Path = image.Path
                        });
                    }
                }
                else
                {
                    await _pageDialogService.DisplayAlertAsync("Alert", Constants.IMAGE_NOT_LOADED, "Ok");

                    IsRegreshing = false;
                    return;
                }

                if (!GroupCreated)
                {
                    GroupCreated = true;
                    var created = await _recognitionAppService.CreateGroupAsync();

                    if (!created)
                    {
                        await _pageDialogService.DisplayAlertAsync("Internal Error", Constants.GROUP_NOT_CREATED, "Ok");

                        IsRegreshing = false;
                        return;
                    }
                }

                if (string.IsNullOrEmpty(PersonName))
                {
                    await _pageDialogService.DisplayAlertAsync("Alert", Constants.PERSON_NAME_NOT_VALID, "Ok");

                    IsRegreshing = false;
                    return;
                }


                var streamImages = tempImages.Select(d => d.ImageStream).ToList();

                var personId = await _recognitionAppService.CreatePerson(streamImages, PersonName);

                TrainingListImages.Add(new Person()
                {
                    Name = PersonName,
                    TrainingTempImages = tempImages,
                    PersonId           = personId
                });

                PersonName = string.Empty;

                IsRegreshing = false;
            }
            catch (Exception ex)
            {
                IsRegreshing = false;
                await _pageDialogService.DisplayAlertAsync("Alert", Constants.INTERNAL_ERROR, "Ok");
            }
        }
Beispiel #4
0
 private void DeletePerson(Person person)
 {
     TrainingListImages.Remove(person);
     _recognitionAppService.DeletePerson(person.PersonId);
 }