예제 #1
0
        public void SavePerson(PersonModelBase person, out int id)
        {
            if (CheckIfPersonExists(person))
            {
                id = GetPerson(person.Name).Id;
            }
            else
            {
                id = SetNewId();

                var fileStream   = new FileStream(RecognizerConfig.PeopleFilePath, FileMode.Append);
                var streamWriter = new StreamWriter(fileStream);

                streamWriter.WriteLine(LocalStorageUtility.PrepareLocalStoragePersonInfo(person, id));

                streamWriter.Close();
                fileStream.Close();
            }
        }
예제 #2
0
        public void SaveFace(PersonModelBase person, ImageModelBase image)
        {
            var possiblePerson = _personRepository.GetPerson(person.Name);
            int personId;

            if (possiblePerson != null)
            {
                personId  = possiblePerson.Id;
                person.Id = personId;
                _personRepository.EditPerson(possiblePerson.Id, new PersonModel(person));
            }
            else
            {
                var newPerson = _personRepository.AddPerson(person);
                personId = newPerson.Id;
            }

            _imageRepository.AddImage(image, personId);
        }
예제 #3
0
        public void SaveDetected()
        {
            var person = new PersonModelBase()
            {
                Name    = _controls.Name,
                Age     = Convert.ToInt32(_controls.Age),
                Address = _controls.Address,
                Details = _controls.Details
            };

            var image = new ImageModelBase()
            {
                Data = BitmapUtility.BitmapToByteArray(_controls.TheNewestFace)
            };

            try
            {
                if (_parameters.UseExplorer)
                {
                    _localStorageService.SaveFace(person, image);
                }
                else
                {
                    _databaseService.SaveFace(new PersonModel(person), new ImageModel(image));
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Wystąpił błąd podczas zapisu do bazy danych\r\n\r\n" + e);
            }

            _controls.KnownPeople = _parameters.UseExplorer
                ? _localStorageService.GetPeopleNames()
                : _databaseService.GetPeopleNames();
            _controls.StatusText  = StatusTypes.SaveCompleted.GetDesciption();
            _controls.IsNewUpdate = true;

            StatusBarUtility.ResestStatus(_controls);
        }
예제 #4
0
 public bool CheckIfPersonExists(PersonModelBase person)
 {
     return(GetPeople().Any(x => x.Name == person.Name));
 }
예제 #5
0
 public void SaveFace(PersonModelBase person, ImageModelBase image)
 {
     _personRepositoryLs.SavePerson(person, out var id);
     _imageRepositoryLs.SaveImage(image, id);
 }
예제 #6
0
        public static string PrepareLocalStoragePersonInfo(PersonModelBase person, int id)
        {
            person.Id = id;

            return($"{person.Id}<_>{person.Name}<_>{person.Age}<_>{person.Address}<_>{person.Details}");
        }