Example #1
0
        private void LoadPeopleList()
        {
            _peopleCollectionVM = new ObservableCollection <Person>();

            XmlSerializer serializer = new XmlSerializer(typeof(ObservableCollection <Person>));

            try
            {
                using (FileStream stream = new FileStream("People.xml", FileMode.Open))
                {
                    IEnumerable <Person> personData = (IEnumerable <Person>)serializer.Deserialize(stream);

                    foreach (Person p in personData)
                    {
                        PeopleCollectionVM.Add(p);
                    }
                }
            }
            catch (FileNotFoundException)
            {
                //file not found -> first launch of the application detected (or possible reset via removal of the 'People.xml')

                for (int i = 0; i < 50; i++)
                {
                    _peopleCollectionVM.Add(new Person("a" + i, "b" + i, "a" + i + "@b.c",
                                                       new DateTime(1960 + i, 03, 01)));
                }
            }
            catch (Exception ex)
            {
                //suppress other ex-s.

                //MessageBox.Show(ex.ToString());
            }
        }
Example #2
0
 private async Task DeleteUser()
 {
     //call ui thread to modify the collection
     await App.Current.Dispatcher.BeginInvoke((Action) delegate
     {
         PeopleCollectionVM.Remove(SelectedPerson);
     });
 }
Example #3
0
 private void MergePeople()
 {
     if (!(PeopleCollectionVMFilteredOut is null))
     {
         PeopleCollectionVM            = new ObservableCollection <Person>(PeopleCollectionVM.Concat(PeopleCollectionVMFilteredOut).OrderBy(x => x.Name));
         PeopleCollectionVMFilteredOut = null;
     }
 }
Example #4
0
        private async Task FilterUsers()
        {
            MergePeople();

            switch (CurrentFilterType)
            {
            case "Name":
                PeopleCollectionVMFilteredOut = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => !x.Name.Contains(CurrentFilterText)));
                PeopleCollectionVM            = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => x.Name.Contains(CurrentFilterText)));
                return;

            case "Surname":
                PeopleCollectionVMFilteredOut = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => !x.Surname.Contains(CurrentFilterText)));
                PeopleCollectionVM            = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => x.Surname.Contains(CurrentFilterText)));
                return;

            case "Email":
                PeopleCollectionVMFilteredOut = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => !x.Email.Contains(CurrentFilterText)));
                PeopleCollectionVM            = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => x.Email.Contains(CurrentFilterText)));
                return;

            case "Birth Date":
                PeopleCollectionVMFilteredOut = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => !x.BirthDate.ToString().Contains(CurrentFilterText)));
                PeopleCollectionVM            = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => x.BirthDate.ToString().Contains(CurrentFilterText)));
                return;

            case "Is Adult":
                PeopleCollectionVMFilteredOut = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => !x.IsAdult.ToString().Contains(CurrentFilterText)));
                PeopleCollectionVM            = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => x.IsAdult.ToString().Contains(CurrentFilterText)));
                return;

            case "Sun Sign":
                PeopleCollectionVMFilteredOut = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => !x.SunSign.Contains(CurrentFilterText)));
                PeopleCollectionVM            = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => x.SunSign.Contains(CurrentFilterText)));
                return;

            case "Chinese Sign":
                PeopleCollectionVMFilteredOut = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => !x.ChineseSign.Contains(CurrentFilterText)));
                PeopleCollectionVM            = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => x.ChineseSign.Contains(CurrentFilterText)));
                return;

            case "Has Birthday Today":
                PeopleCollectionVMFilteredOut = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => !x.IsBirthday.ToString().Contains(CurrentFilterText)));
                PeopleCollectionVM            = new ObservableCollection <Person>(PeopleCollectionVM.Where(x => x.IsBirthday.ToString().Contains(CurrentFilterText)));
                return;

            default:
                return;
            }
        }
Example #5
0
 private void CheckEmail()
 {
     try
     {
         System.Net.Mail.MailAddress mailAddress = new System.Net.Mail.MailAddress(CurrentEmail);
         if (PeopleCollectionVM.Any(p => p.Email.Equals(CurrentEmail)))
         {
             throw new EmailException();
         }
     }
     catch
     {
         //throw new EmailException("Please, enter existing email address.");
         throw new EmailException();
     }
 }
Example #6
0
        private async Task CheckAndProceed()
        {
            //check
            try
            {
                CheckAge();
                CheckEmail();
            }
            catch (BirthDateException)
            {
                MessageBox.Show("This program works only for people born on 19.02.1901 (UKR locale) or later, up to today.");
                return;
            }
            catch (EmailException)
            {
                MessageBox.Show("Please, enter existing email address, which was not already added.");
                return;
            }

            //proceed
            if (DateTime.Now.Month.Equals(CurrentBirthDate.Month) &&
                DateTime.Now.Day.Equals(CurrentBirthDate.Day))
            {
                ResultBdNote = "Happy bd!";
            }
            else
            {
                ResultBdNote = "";
            }

            Person tmp = new Person(CurrentName, CurrentSurname, CurrentEmail, CurrentBirthDate);

            ResultName        = tmp.Name;
            ResultSurname     = tmp.Surname;
            ResultEmail       = tmp.Email;
            ResultBirthDate   = tmp.BirthDate.Value.ToLongDateString();
            ResultIsAdult     = tmp.IsAdult.ToString();
            ResultSunSign     = tmp.SunSign;
            ResultChineseSign = tmp.ChineseSign;
            ResultIsBirthday  = tmp.IsBirthday.ToString();

            //call ui thread to modify the collection
            await App.Current.Dispatcher.BeginInvoke((Action) delegate
            {
                PeopleCollectionVM.Add(tmp);
            });
        }