//+Редактирование компании private void bEditCompany_Click(object sender, EventArgs e) { foreach (ListViewItem selectedItem in lvCompanies.SelectedItems) { int thisCompanyId = (int)selectedItem.Tag; var thisCompany = dataManager.GetCompanyFromDB(thisCompanyId); var updatingForm = new CompanyEditForm("Редактирование компании", thisCompany); if (updatingForm.ShowDialog() == DialogResult.OK) { bool isNewName = thisCompany.name != updatingForm.ComName; var newCompanyData = new company { name = updatingForm.ComName, foundation_year = updatingForm.ComFoundationYear, address = updatingForm.ComAdress }; if (dataManager.EditCompanyInDB(thisCompanyId, newCompanyData) == false) { MessageBox.Show("Действие не было выполнено.", "Редактирование компании"); return; } interfaceManager.UpdateItemInTable(selectedItem, newCompanyData); interfaceManager.AutoResizeListViewColumns(lvCompanies); //Если поменяли имя, меняем имя этой компании в таблице фильмов if (isNewName) { foreach (ListViewItem lvFilm in lvFilms.Items) { using (var ctx = new DataContext()) { var curFilm = ctx.films.Find((int)lvFilm.Tag); if (curFilm.company != null) { if (curFilm.company.id == thisCompany.id) { lvFilm.SubItems[8].Text = newCompanyData.name; } } } } interfaceManager.AutoResizeListViewColumns(lvFilms); } } } }
//Сохранение изменений private void bFilmSave_Click(object sender, EventArgs e) { decimal decimalRez; //Для парсинга int integerRez; if (string.IsNullOrWhiteSpace(tbFilmName.Text)) { MessageBox.Show("Введите название фильма!"); return; } FilmName = tbFilmName.Text; if (!int.TryParse(tbFilmYear.Text, out integerRez)) { MessageBox.Show("Год производства введён неверно!"); return; } FilmYear = integerRez; if (string.IsNullOrWhiteSpace(cbFilmCountry.Text)) { MessageBox.Show("Не выбрана страна производства фильма!"); return; } FilmCountryName = cbFilmCountry.Text; if (!decimal.TryParse(tbFilmBudget.Text, out decimalRez)) { MessageBox.Show("Бюджет введён неверно!"); return; } FilmBudget = decimalRez; FilmAgeLimit = int.Parse(cbFilmAgeLimit.Text); if (!int.TryParse(tbFilmDuration.Text, out integerRez)) { MessageBox.Show("Продолжительность введена неверно!"); return; } FilmDuration = integerRez; FilmRating = int.Parse(cbFilmRating.Text); if (string.IsNullOrWhiteSpace(tbFilmGenre.Text)) { MessageBox.Show("Введите жанр фильма!"); return; } FilmGenre = tbFilmGenre.Text; if (cbFilmCompany.Text == "") { MessageBox.Show("Не выбрана кинокомпания!\nЕсли нет нужной, вы можете ввести название новой кинокомпании"); return; } //Если выбрана существующая компания - её берём. Нет - отмечаем это и создаём новую if (cbFilmCompany.SelectedItem != null) { FilmCompany = (company)cbFilmCompany.SelectedItem; IsCompanyNew = false; } else { FilmCompany = new company { name = cbFilmCompany.Text }; IsCompanyNew = true; } if (string.IsNullOrWhiteSpace(tbFilmDirector.Text)) { MessageBox.Show("Введите режиссёра фильма!"); return; } FilmDirector = tbFilmDirector.Text; if (string.IsNullOrWhiteSpace(tbFilmComposer.Text)) { MessageBox.Show("Введите композитора фильма"); return; } FilmComposer = tbFilmComposer.Text; this.DialogResult = DialogResult.OK; this.Close(); }