Пример #1
0
    private void OnAdd(object sender, EventArgs e)
    {
        var refItemForm = new RefItemForm
        {
            Text         = "Новый автор",
            GroupBoxText = "Информация о новом авторе",
            LabelText    = "Автор:"
        };

        if (refItemForm.ShowDialog() == DialogResult.OK)
        {
            try
            {
                var newAuthor = new Author {
                    Id = 0, Name = refItemForm.ItemText
                };
                Model.AuthorRepository.Add(newAuthor);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка при добавлении нового автора.", "Что-то пошло не так",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                Utils.Log.Trace(ex);
            }

            // Пересчитываем список авторов
            UpdateView();

            // Выделяем добавленного (последнего в списке) автора
            View.ListView.Select();
            View.ListView.Items[View.ListView.Items.Count - 1].Selected = true;
            View.ListView.EnsureVisible(View.ListView.Items.Count - 1);
        }
        else
        {
            // Восстанавливаем фокус и выделение авторов
            View.ListView.Select();
        }
    }
Пример #2
0
    private void OnEdit(object sender, EventArgs e)
    {
        // Проверяем, есть ли хотя бы один выделенный элемент в списке книг
        if (View.ListView.SelectedItems.Count == 0)
        {
            return;
        }

        // Если выделенных элементов несколько, то берем первый из них
        int    selectedIndex = View.ListView.SelectedIndices[0];
        Author author        = (Author)View.ListView.Items[selectedIndex].Tag;

        var refItemForm = new RefItemForm
        {
            Text         = "Изменение существующего автора",
            GroupBoxText = "Информация об авторе",
            LabelText    = "Автор:",
            ItemText     = author.Name
        };

        if (refItemForm.ShowDialog() == DialogResult.OK)
        {
            try
            {
                author.Name = refItemForm.ItemText;
                Model.AuthorRepository.Update(author);
                View.ListView.Items[selectedIndex].Text = author.Name;

                // Оповещаем подписчиков о том, что произошли изменения
                ModifiedHandler();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка при изменении информации об авторе.", "Что-то пошло не так",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                Utils.Log.Trace(ex);
            }
        }
    }
Пример #3
0
    private void OnAdd(object sender, EventArgs e)
    {
        var refItemForm = new RefItemForm();

        refItemForm.Text         = "Новое издательство";
        refItemForm.GroupBoxText = "Информация о новом издательстве";
        refItemForm.LabelText    = "Издательство:";

        if (refItemForm.ShowDialog() == DialogResult.OK)
        {
            try
            {
                var newPress = new Press {
                    Id = 0, Name = refItemForm.ItemText
                };
                Model.PressRepository.Add(newPress);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка при добавлении нового издательства.", "Что-то пошло не так",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                Utils.Log.Trace(ex);
            }

            // Пересчитываем список издательств
            UpdateView();

            // Выделяем добавленное (последнее в списке) издательство
            View.ListView.Select();
            View.ListView.Items[View.ListView.Items.Count - 1].Selected = true;
            View.ListView.EnsureVisible(View.ListView.Items.Count - 1);
        }
        else
        {
            // Восстанавливаем фокус и выделение издательств
            View.ListView.Select();
        }
    }