/// <summary> /// Функция добавления контакта /// </summary> private void AddContact() { var newForm = new AddEditContactForm(); //Создаем переменную, в которую помещаем результат взаимодействия пользователя с формой var resultOfDialog = newForm.ShowDialog(); //Если пользователь нажал ОК, то вносим исправленные данные if (resultOfDialog == DialogResult.OK) { //Создает переменную, в которую выполняет запись новых данных var contact = newForm.Contact; //Добавляет новый контакт в список _project.contactsList.Add(contact); for (int i = 0; i != _project.contactsList.Count - 1; i++) { ContactsListBox.Items.RemoveAt(0); } _project = Project.Sort(_project); for (int j = 0; j != _project.contactsList.Count; j++) { //Добавляет новый контакт в пользовательский интерфейс ContactsListBox.Items.Add(_project.contactsList[j].Surname); } //Выполняет сериализацию данных ProjectManager.SaveToFile(_project, ProjectManager.stringMyDocumentsPath); } }
/// <summary> /// Функция, выполняющая редактирование данных /// </summary> private void EditContact() { var index = ContactsListBox.SelectedIndex; if (index == -1) { MessageBox.Show("Выберите контакт для редактирования", "Edit"); } //Если список не пуст if (_project.contactsList.Count > 0) { if (index >= 0) { var contactOfIndex = _project.contactsList[index]; int sortIndex = 0; //Если сортированный список не пуст, то выбираем элемент из него if (_sortProject != null && _sortProject.contactsList.Count > 0 && FindTextBox.Text != "") { contactOfIndex = _sortProject.contactsList[index]; sortIndex = index; for (int i = 0; i < _project.contactsList.Count; i++) { if (contactOfIndex == _project.contactsList[i]) { index = i; break; } } } //Создает клон редактируемого контакта Contact newCloneContact = (Contact)contactOfIndex.Clone(); //Создает форму редактирования контакта var newForm = new AddEditContactForm(); //Заполняет форму данными объекта - клона контакта newForm.Contact = newCloneContact; //Создаем переменную, в которую помещаем результат взаимодействия пользователя с формой var resultOfDialog = newForm.ShowDialog(); //Если пользователь нажал ОК, то вносим исправленные данные if (resultOfDialog == DialogResult.OK) { contactOfIndex = newForm.Contact; //Если введена подстрока if (_sortProject != null && _sortProject.contactsList.Count > 0 && FindTextBox.Text != "") { _project.contactsList.RemoveAt(index); _sortProject.contactsList.RemoveAt(sortIndex); _project.contactsList.Insert(index, contactOfIndex); while (ContactsListBox.Items.Count != 0) { ContactsListBox.Items.RemoveAt(0); } _sortProject = Project.Sort(_project, FindTextBox.Text); if (_sortProject != null && _sortProject.contactsList.Count != 0) { for (int i = 0; i < _sortProject.contactsList.Count; i++) { ContactsListBox.Items.Add(_sortProject.contactsList[i].Surname); } } _project = Project.Sort(_project); } //Если подстрока не введена else { _project.contactsList.RemoveAt(index); _project.contactsList.Insert(index, contactOfIndex); while (ContactsListBox.Items.Count != 0) { ContactsListBox.Items.RemoveAt(0); } _project = Project.Sort(_project); for (int j = 0; j != _project.contactsList.Count; j++) { ContactsListBox.Items.Add(_project.contactsList[j].Surname); } } //Выполняем сериализацию данных ProjectManager.SaveToFile(_project, ProjectManager.stringMyDocumentsPath); } } else { if (index >= 0) { MessageBox.Show("Нет контактов для изменения", "Edit"); } } } }