//+Добавление актёра private void bAddActor_Click(object sender, EventArgs e) { var addingForm = new ActorEditForm("Добавление актёра", countyNames); if (addingForm.ShowDialog() == DialogResult.OK) { //Создаём нового актёра var addingActor = new actor { name = addingForm.ActorName, birthday = addingForm.ActorBirthDay, country = addingForm.ActorCountry, description = addingForm.ActorDescription }; //Добавляем актёра в БД if (dataManager.AddActorToDB(addingActor) == -1) { MessageBox.Show("Действие не было выполнено.", "Добавление актёра"); return; } //Добавляем в таблицу var lvActor = new ListViewItem(items: new[] { addingForm.ActorName, addingForm.ActorBirthDay.ToShortDateString(), addingForm.ActorCountry, addingForm.ActorDescription }); lvActor.Tag = addingActor.id; interfaceManager.AddItemToTable(lvActors, lvActor); interfaceManager.AutoResizeListViewColumns(lvActors); } }
//Конструктор для инициализации полей public ActorEditForm(string headerText, List <string> countryNames, actor editingActor) { InitializeComponent(); SetUpForm(headerText, countryNames); //Заполнение полей tbActorName.Text = editingActor.name; dtpActorBirthday.Value = editingActor.birthday ?? dtpActorBirthday.MinDate; cbActorCountry.Text = editingActor.country; tbActorDescription.Text = editingActor.description; }
//Принять изменения private void bActorSave_Click(object sender, EventArgs e) { //Фильм if (cbFilm.Text == "") { MessageBox.Show("Не выбран фильм!\nЕсли нет нужного, вы можете ввести название нового фильма"); return; } //Если выбран существующий - его берём. Нет - отмечаем это и создаём новый if (cbFilm.SelectedItem != null) { NewContrFilm = (film)cbFilm.SelectedItem; IsFilmNew = false; } else { NewContrFilm = new film { name = cbFilm.Text }; IsFilmNew = true; } //Актёр if (cbActor.Text == "") { MessageBox.Show("Не выбран актёр!\nЕсли нет нужного, вы можете ввести имя нового актёра"); return; } //Если выбран существующий - его берём. Нет - отмечаем это и создаём новый if (cbActor.SelectedItem != null) { NewContrActor = (actor)cbActor.SelectedItem; IsActorNew = false; } else { NewContrActor = new actor { name = cbActor.Text }; IsActorNew = true; } decimal decimalRez; if (!decimal.TryParse(tbActorHonorarium.Text, out decimalRez)) { MessageBox.Show("Гонорар введён неверно!"); return; } NewContrHonorarium = decimalRez; DialogResult = DialogResult.OK; Close(); }
//+Редактирование актёра private void bEditActor_Click(object sender, EventArgs e) { foreach (ListViewItem selectedItem in lvActors.SelectedItems) { int thisActorId = (int)selectedItem.Tag; var thisActor = dataManager.GetActorFromDB(thisActorId); var updatingForm = new ActorEditForm("Редактирование актёра", countyNames, thisActor); if (updatingForm.ShowDialog() == DialogResult.OK) { var newActorData = new actor { name = updatingForm.ActorName, birthday = updatingForm.ActorBirthDay, country = updatingForm.ActorCountry, description = updatingForm.ActorDescription }; if (dataManager.EditActorInDB(thisActorId, newActorData) == false) { MessageBox.Show("Действие не было выполнено.", "Редактирование актёра"); return; } interfaceManager.UpdateItemInTable(selectedItem, newActorData); interfaceManager.AutoResizeListViewColumns(lvActors); //Обновляем данные в таблице контрактов //Если поменяли имя, дату рождения или страну - меняем запись там if (newActorData.name != thisActor.name || newActorData.birthday != thisActor.birthday || newActorData.country != thisActor.country) { foreach (ListViewItem lvContract in lvContracts.Items) { var curContractPK = (ContractPrimaryKey)lvContract.Tag; var curContract = dataManager.GetContractFromDB(curContractPK); if (curContract.actor_id == thisActorId) { lvContract.SubItems[1].Text = newActorData.ToString(); } } interfaceManager.AutoResizeListViewColumns(lvContracts); } } } }