Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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");
                    }
                }
            }
        }