コード例 #1
0
        //+Редактирование фильма !!! контекстное добавление компании
        private void bEditFilm_Click(object sender, EventArgs e)
        {
            //Вытаскиваем список компаний
            List <company> companies;

            using (var ctx = new DataContext()) {
                companies = ctx.companies.ToList();
            }
            companies.Sort((company a, company b) => a.name.CompareTo(b.name));

            foreach (ListViewItem selectedItem in lvFilms.SelectedItems)
            {
                int thisFilmId   = (int)selectedItem.Tag;
                var thisFilm     = dataManager.GetFilmFromDB(thisFilmId);
                var updatingForm = new FilmEditForm("Редактирование фильма", countyNames, companies, thisFilm, selectedItem.SubItems[8].Text);
                if (updatingForm.ShowDialog() == DialogResult.OK)
                {
                    //Добавляем новую компанию, если была указана новая
                    if (updatingForm.IsCompanyNew)
                    {
                        if (dataManager.AddCompanyToDB(updatingForm.FilmCompany) == -1)
                        {
                            MessageBox.Show("Действие не было выполнено. Не удалось добавить компанию.", "Редактирование фильма");
                            return;
                        }
                        //И в таблицу
                        var lvCom = new ListViewItem(items: new[] {
                            updatingForm.FilmCompany.name,
                            "",
                            ""
                        });
                        lvCom.Tag = updatingForm.FilmCompany.id;
                        interfaceManager.AddItemToTable(lvCompanies, lvCom);
                        interfaceManager.AutoResizeListViewColumns(lvCompanies);
                    }
                    //Создаём фильм с новыми данными
                    var newFilmData = new film {
                        name       = updatingForm.FilmName,
                        year       = updatingForm.FilmYear,
                        country    = updatingForm.FilmCountryName,
                        budget     = updatingForm.FilmBudget,
                        age_limit  = updatingForm.FilmAgeLimit,
                        duration   = updatingForm.FilmDuration,
                        rating     = updatingForm.FilmRating,
                        genre      = updatingForm.FilmGenre,
                        company_id = updatingForm.FilmCompany.id, //id обновилось при вставке компании, если компания новая
                        director   = updatingForm.FilmDirector,
                        composer   = updatingForm.FilmComposer
                    };
                    //Обновляем фильм в БД
                    dataManager.EditFilmInDB(thisFilmId, newFilmData);
                    //Обновляем фильм в таблице
                    interfaceManager.UpdateItemInTable(selectedItem, newFilmData, updatingForm.FilmCompany.name);
                    interfaceManager.AutoResizeListViewColumns(lvFilms);
                    //Обновляем данные в таблице контрактов
                    //Если поменяли название и год - меняем запись там
                    if (newFilmData.name != thisFilm.name || newFilmData.year != thisFilm.year)
                    {
                        foreach (ListViewItem lvContract in lvContracts.Items)
                        {
                            var curContractPK = (ContractPrimaryKey)lvContract.Tag;
                            var curContract   = dataManager.GetContractFromDB(curContractPK);
                            if (curContract.film_id == thisFilm.id)
                            {
                                lvContract.SubItems[0].Text = newFilmData.ToString();
                            }
                        }
                        interfaceManager.AutoResizeListViewColumns(lvContracts);
                    }
                }
            }
        }
コード例 #2
0
        //+Добавление фильма !!! контекстное добавление компании
        private void bAddFilm_Click(object sender, EventArgs e)
        {
            //Вытаскиваем список компаний
            var companies = new List <company>();

            using (var ctx = new DataContext()) {
                foreach (var com in ctx.companies)
                {
                    companies.Add(com);
                }
            }
            companies.Sort((company a, company b) => a.name.CompareTo(b.name));

            var addingForm = new FilmEditForm("Добавление фильма", countyNames, companies);

            if (addingForm.ShowDialog() == DialogResult.OK)
            {
                //Добавляем компанию, если была введена новая
                if (addingForm.IsCompanyNew)
                {
                    if (dataManager.AddCompanyToDB(addingForm.FilmCompany) == -1)
                    {
                        MessageBox.Show("Действие не было выполнено. Не удалось добавить компанию.", "Добавление фильма");
                        return;
                    }
                    //Добавляем в таблицу
                    var lvCom = new ListViewItem(items: new[] {
                        addingForm.FilmCompany.name,
                        "",
                        ""
                    });
                    lvCom.Tag = addingForm.FilmCompany.id;
                    interfaceManager.AddItemToTable(lvCompanies, lvCom);
                    interfaceManager.AutoResizeListViewColumns(lvCompanies);
                }
                //Создаём новый фильм
                var addingFilm = new film {
                    name       = addingForm.FilmName,
                    year       = addingForm.FilmYear,
                    country    = addingForm.FilmCountryName,
                    budget     = addingForm.FilmBudget,
                    age_limit  = addingForm.FilmAgeLimit,
                    duration   = addingForm.FilmDuration,
                    rating     = addingForm.FilmRating,
                    genre      = addingForm.FilmGenre,
                    company_id = addingForm.FilmCompany.id, //id обновилось при вставке компании, если компания новая
                    director   = addingForm.FilmDirector,
                    composer   = addingForm.FilmComposer
                };
                if (dataManager.AddFilmToDB(addingFilm) == -1)
                {
                    MessageBox.Show("Действие не было выполнено. Не удалось добавить фильм.", "Добавление фильма");
                    return;
                }
                //Добавляем фильм в таблицу
                var lvFilm = new ListViewItem(items: new[] {
                    addingForm.FilmName,
                    addingForm.FilmYear.ToString(),
                    addingForm.FilmCountryName,
                    addingForm.FilmBudget.ToString(),
                    addingForm.FilmAgeLimit.ToString(),
                    addingForm.FilmDuration.ToString(),
                    addingForm.FilmRating.ToString(),
                    addingForm.FilmGenre,
                    addingForm.FilmCompany.name,
                    addingForm.FilmDirector,
                    addingForm.FilmComposer
                });
                lvFilm.Tag = addingFilm.id;
                interfaceManager.AddItemToTable(lvFilms, lvFilm);
                interfaceManager.AutoResizeListViewColumns(lvFilms);
            }
        }