Exemple #1
0
        //+Редактирование контрактов !!! Контекстное добавление фильмов и актёров
        private void bEditContract_Click(object sender, EventArgs e)
        {
            //Вытаскиваем списки фильмов и актёров
            List <film>  films;
            List <actor> actors;

            using (var ctx = new DataContext()) {
                films  = ctx.films.ToList();
                actors = ctx.actors.ToList();
            }
            films.Sort((film a, film b) => a.name.CompareTo(b.name));
            actors.Sort((actor a, actor b) => a.name.CompareTo(b.name));

            foreach (ListViewItem selectedItem in lvContracts.SelectedItems)
            {
                ContractPrimaryKey thisContractPK = (ContractPrimaryKey)selectedItem.Tag;
                var thisContract = dataManager.GetContractFromDB(thisContractPK);
                var updatingForm = new ContractEditForm("Редактирование контракта", films, actors, thisContract, selectedItem.SubItems[0].Text,
                                                        selectedItem.SubItems[1].Text);
                if (updatingForm.ShowDialog() == DialogResult.OK)
                {
                    //Добавляем фильм, если был указан новый
                    if (updatingForm.IsFilmNew)
                    {
                        if (dataManager.AddFilmToDB(updatingForm.NewContrFilm) == -1)
                        {
                            MessageBox.Show("Действие не было выполнено. Не удалось добавить фильм.", "Добавление контракта");
                            return;
                        }
                        //И в таблицу
                        var lvFilm = new ListViewItem(items: new[] {
                            updatingForm.NewContrFilm.name,
                            "",
                            "",
                            "",
                            "",
                            "",
                            "",
                            "",
                            "",
                            "",
                            ""
                        });
                        lvFilm.Tag = updatingForm.NewContrFilm.id; //обновилось при добавлении
                        interfaceManager.AddItemToTable(lvFilms, lvFilm);
                        interfaceManager.AutoResizeListViewColumns(lvFilms);
                    }
                    //Добавляем актёра, если был указан новый
                    if (updatingForm.IsActorNew)
                    {
                        if (dataManager.AddActorToDB(updatingForm.NewContrActor) == -1)
                        {
                            MessageBox.Show("Действие не было выполнено. Не удалось добавить актёра.", "Добавление контракта");
                            return;
                        }
                        //И в таблицу
                        var lvActor = new ListViewItem(items: new[] {
                            updatingForm.NewContrActor.name,
                            "",
                            "",
                            ""
                        });
                        lvActor.Tag = updatingForm.NewContrActor.id; //обновилось при добавлении
                        interfaceManager.AddItemToTable(lvActors, lvActor);
                        interfaceManager.AutoResizeListViewColumns(lvActors);
                    }
                    //Обновляем контракт в БД
                    var newContractData = new films_and_actors {
                        film_id          = updatingForm.NewContrFilm.id,
                        actor_id         = updatingForm.NewContrActor.id,
                        actor_honorarium = updatingForm.NewContrHonorarium
                    };
                    if (dataManager.EditContractInDB(thisContractPK, newContractData) == false)
                    {
                        MessageBox.Show("Действие не было выполнено.", "Редактирование контракта");
                        return;
                    }
                    //Обновляем контракт в таблице
                    interfaceManager.UpdateItemInTable(selectedItem, newContractData, updatingForm.NewContrFilm, updatingForm.NewContrActor);
                    interfaceManager.AutoResizeListViewColumns(lvContracts);
                }
            }
        }
Exemple #2
0
        //+Добавление контракта !!! контекстное добавление фильмов и актёров
        private void bAddContract_Click(object sender, EventArgs e)
        {
            //Вытаскиваем списки фильмов и актёров
            List <film>  films;
            List <actor> actors;

            using (var ctx = new DataContext()) {
                films  = ctx.films.ToList();
                actors = ctx.actors.ToList();
            }
            films.Sort((film a, film b) => a.name.CompareTo(b.name));
            actors.Sort((actor a, actor b) => a.name.CompareTo(b.name));

            var addingForm = new ContractEditForm("Добавление контракта", films, actors);

            if (addingForm.ShowDialog() == DialogResult.OK)
            {
                //Добавляем фильм, если был указан новый
                if (addingForm.IsFilmNew)
                {
                    if (dataManager.AddFilmToDB(addingForm.NewContrFilm) == -1)
                    {
                        MessageBox.Show("Действие не было выполнено. Не удалось добавить фильм.", "Добавление контракта");
                        return;
                    }
                    //И в таблицу
                    var lvFilm = new ListViewItem(items: new[] {
                        addingForm.NewContrFilm.name,
                        "",
                        "",
                        "",
                        "",
                        "",
                        "",
                        "",
                        "",
                        "",
                        ""
                    });
                    lvFilm.Tag = addingForm.NewContrFilm.id; //обновилось при добавлении
                    interfaceManager.AddItemToTable(lvFilms, lvFilm);
                    interfaceManager.AutoResizeListViewColumns(lvFilms);
                }
                //Добавляем актёра, если был указан новый
                if (addingForm.IsActorNew)
                {
                    if (dataManager.AddActorToDB(addingForm.NewContrActor) == -1)
                    {
                        MessageBox.Show("Действие не было выполнено. Не удалось добавить актёра.", "Добавление контракта");
                        return;
                    }
                    //И в таблицу
                    var lvActor = new ListViewItem(items: new[] {
                        addingForm.NewContrActor.name,
                        "",
                        "",
                        ""
                    });
                    lvActor.Tag = addingForm.NewContrActor.id; //обновилось при добавлении
                    interfaceManager.AddItemToTable(lvActors, lvActor);
                    interfaceManager.AutoResizeListViewColumns(lvActors);
                }
                //Создаём новый контракт
                var addingContract = new films_and_actors {
                    film_id          = addingForm.NewContrFilm.id,
                    actor_id         = addingForm.NewContrActor.id,
                    actor_honorarium = addingForm.NewContrHonorarium
                };
                //Добавляем контракт в БД
                if (dataManager.AddContractToDB(addingContract) == null)
                {
                    MessageBox.Show("Действие не было выполнено.", "Добавление контракта");
                    return;
                }
                //Добавляем в таблицу
                var lvContract = new ListViewItem(items: new[] {
                    addingForm.NewContrFilm.ToString(),
                    addingForm.NewContrActor.ToString(),
                    addingForm.NewContrHonorarium.ToString()
                });
                lvContract.Tag = new ContractPrimaryKey {
                    FilmId = addingContract.film_id, ActorId = addingContract.actor_id
                };
                interfaceManager.AddItemToTable(lvContracts, lvContract);
                interfaceManager.AutoResizeListViewColumns(lvContracts);
            }
        }