private void btnOpen_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openDlg = new OpenFileDialog();

            openDlg.DefaultExt = "txt";
            openDlg.Filter     = "Txt файли| *.txt";

            if (openDlg.ShowDialog() == true)
            {
                PeopleRepositoryFileHandler reader = new PeopleRepositoryFileHandler();
                try
                {
                    repo = reader.ReadFromTextFile(openDlg.FileName);
                    this.dataGridPeople.ItemsSource = repo;

                    this.fileName.Text = openDlg.FileName;
                    (this.tabSystem.Items[1] as TabItem).Visibility = Visibility.Collapsed;

                    if (reader.Report.Count != 0)
                    {
                        StringBuilder errors = new StringBuilder();
                        foreach (var error in reader.Report)
                        {
                            errors.AppendLine(String.Format("№{0} - {1}", error.Key, error.Value));
                        }

                        MessageBox.Show(errors.ToString(), "Некоректні записи");
                    }
                }
                catch (ArgumentException)
                {
                    MessageBox.Show("Оберіть правильний .txt файл", this.Title);
                }
            }
        }
        public void InvalidStringDenied()
        {
            string str = "-8|Ostapyuk|Zoe|+38050912137d|ukr|lv|lviv|syxiv|2|2";

            PeopleRepositoryFileHandler handler = new PeopleRepositoryFileHandler();
            Person result;

            Assert.IsFalse(handler.TryParseFromString(str, out result));
            Assert.IsNull(result);
        }
        public void ReporsWorkCorrectly()
        {
            string[] lines = new string[]
            {
                "-8|Ostapyuk|Zoe|+38050912137d|ukr|lv|lviv|syxiv|2|2",
                "1|Koval|Roman|+380509121374|ukr|lv|lviv|syxiv|2|2",
                "1|Koval|Roman|+380509121374|ukr|lv|lviv|syxiv|2|2",
                "6|Koval|Vova|+380669121374|ukr|Odesska|Odessa|deribas|2|2"
            };

            PeopleRepositoryFileHandler handler = new PeopleRepositoryFileHandler();

            handler.PeopleRepoFromStrings(lines);

            Assert.IsTrue(handler.Report.Count == 2);
        }
        private void btnSaveAs_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog saveDlg = new SaveFileDialog();

            saveDlg.DefaultExt = "txt";
            saveDlg.Filter     = "Txt файли| *.txt";

            if (saveDlg.ShowDialog() == true)
            {
                PeopleRepositoryFileHandler writer = new PeopleRepositoryFileHandler();
                try
                {
                    writer.WriteToFile(saveDlg.FileName, repo);
                    this.fileName.Text = saveDlg.FileName;
                }
                catch
                {
                    MessageBox.Show("Оберіть правильний .txt файл", this.Title);
                }
            }
        }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (!this.fileName.Text.EndsWith(".txt"))
            {
                btnSaveAs_Click(sender, e);
                return;
            }

            try
            {
                if (!File.Exists(this.fileName.Text))
                {
                    MessageBox.Show("Сталася помилка. Перевірте, чи редагований файл створений", this.Title);
                }

                PeopleRepositoryFileHandler writer = new PeopleRepositoryFileHandler();
                writer.WriteToFile(this.fileName.Text, repo);
            }
            catch
            {
                MessageBox.Show("Сталася помилка. Перевірте, чи редагований файл створений", this.Title);
            }
        }