Ejemplo n.º 1
0
        // Загрузить массив из файла
        public void OpenFile(string filename)
        {
            if (!File.Exists(filename))
            {
                throw new Exception("Файл не существует");
            }

            if (FilmFile.Count != 0)
            {
                DeleteAllRows();
            }

            using (StreamReader sw = new StreamReader(filename))
            {
                while (!sw.EndOfStream)
                {
                    string   str          = sw.ReadLine();
                    string[] dataFromFile = str.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);

                    ushort id       = (ushort)Convert.ToInt32(dataFromFile[0]);
                    string title    = dataFromFile[1];
                    string genre    = dataFromFile[2];
                    string director = dataFromFile[3];
                    ushort year     = (ushort)Convert.ToInt32(dataFromFile[4]);
                    string country  = dataFromFile[5];
                    string language = dataFromFile[6];

                    FilmRow filmRow = new FilmRow(id, title, genre, director, year, country, language);
                    AddRow(filmRow);
                }
            }
        }
Ejemplo n.º 2
0
        int IComparer.Compare(object x, object y)
        {
            FilmRow filmRow1 = (FilmRow)x;
            FilmRow filmRow2 = (FilmRow)y;

            return((m_direction == SortDirection.Ascending) ?
                   filmRow1.YearRelease.CompareTo(filmRow2.YearRelease) :
                   filmRow2.YearRelease.CompareTo(filmRow1.YearRelease));
        }
Ejemplo n.º 3
0
        // Изменить год фильма
        public void EditYearRelease(ushort year, int index)
        {
            FilmRow film = (FilmRow)FilmFile[index];

            if ((year < 1895) || (year > (DateTime.Now.Year) + 10))
            {
                throw new Exception("Год премьеры должен быть не раньше 1895 и не позднее " + (DateTime.Now.Year) + 10);
            }
            film.YearRelease = year;
        }
Ejemplo n.º 4
0
        //Нажали на ячейку/строку
        private void dataGrid_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int     indRow = dataGrid.Rows[e.RowIndex].Index;
                FilmRow _film  = (FilmRow)data.FilmFile[indRow];

                CellClick_TextBoxInfo(_film);
            }
            catch
            {
            }
        }
Ejemplo n.º 5
0
        //И данные из строки поместились в поля на форме
        private void CellClick_TextBoxInfo(FilmRow film)
        {
            button_AddRow_Click(button_AddRow, null);

            textBox_ID.Text       = film.FilmID.ToString();
            textBox_Title.Text    = film.FilmTitle;
            comboBox_Genre.Text   = film.FilmGenre;
            textBox_Director.Text = film.FilmDirector;
            textBox_Year.Text     = film.YearRelease.ToString();
            textBox_Country.Text  = film.FilmCountry;
            textBox_Language.Text = film.FilmLanguage;

            TextBoxsDisabled();
        }
Ejemplo n.º 6
0
        //Добавить новую запись в базу
        private void button_Add_Click(object sender, EventArgs e)
        {
            try
            {
                FilmID = textBox_ID.Text = generateID().ToString();

                FilmTitle    = textBox_Title.Text;
                FilmGenre    = comboBox_Genre.Text;
                FilmDirector = textBox_Director.Text;
                YearRelease  = textBox_Year.Text;
                FilmCountry  = textBox_Country.Text;
                FilmLanguage = textBox_Language.Text;

                FilmRow film = new FilmRow(
                    (ushort)Convert.ToInt32(textBox_ID.Text),
                    textBox_Title.Text,
                    comboBox_Genre.Text,
                    textBox_Director.Text,
                    (ushort)Convert.ToInt32(textBox_Year.Text),
                    textBox_Country.Text,
                    textBox_Language.Text);

                data.AddRow(film);
                int n = data.FilmFile.Count;

                FilmRow film1 = (FilmRow)data.FilmFile[n - 1];
                dataGrid.Rows.Add
                    (film1.FilmID,
                    textBox_Title.Text,
                    comboBox_Genre.Text,
                    textBox_Director.Text,
                    textBox_Year.Text,
                    textBox_Country.Text,
                    textBox_Language.Text);

                BanChangeColumn(n - 1);

                TextBoxsClear();

                if ((!timer1.Enabled) && (filename != ""))
                {
                    timer1.Enabled = true;
                    timer1.Start();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Ошибка: {ex.Message}");
            }
        }
        private void button_Add_Click(object sender, EventArgs e)
        {
            try
            {
                MainForm MF = new MainForm();
                this.Owner = MF;

                MF.FilmTitle    = textBox_Title.Text;
                MF.FilmGenre    = comboBox_Genre.Text;
                MF.FilmDirector = textBox_Director.Text;
                MF.FilmCountry  = textBox_Country.Text;
                MF.FilmLanguage = textBox_Language.Text;
                MF.YearRelease  = textBox_Year.Text;

                FilmRow film = new FilmRow(
                    (ushort)Convert.ToInt32(textBox_ID.Text),
                    textBox_Title.Text,
                    comboBox_Genre.Text,
                    textBox_Director.Text,
                    (ushort)Convert.ToInt32(textBox_Year.Text),
                    textBox_Country.Text,
                    textBox_Language.Text);

                MF.data.AddRow(film);
                int n = MF.data.FilmFile.Count;

                FilmRow film1 = (FilmRow)MF.data.FilmFile[n - 1];
                MF.dataGrid.Rows.Add(film1.FilmID,
                                     textBox_Title.Text,
                                     comboBox_Genre.Text,
                                     textBox_Director.Text,
                                     textBox_Year.Text,
                                     textBox_Country.Text,
                                     textBox_Language.Text);
                MF.BanChangeColumn(n - 1);
                if ((!MF.timer1.Enabled) && (MF.filename != ""))
                {
                    MF.timer1.Enabled = true;
                    MF.timer1.Start();
                }

                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Ошибка: {ex.Message}");
            }
        }
Ejemplo n.º 8
0
        //Записать базу в таблицу
        private void WriteToDataGrid()
        {
            try
            {
                for (int i = 0; i < data.FilmFile.Count; i++)
                {
                    FilmRow film = (FilmRow)data.FilmFile[i];
                    dataGrid.Rows.Add(
                        film.FilmID,
                        film.FilmTitle,
                        film.FilmGenre,
                        film.FilmDirector,
                        film.YearRelease,
                        film.FilmCountry,
                        film.FilmLanguage);

                    BanChangeColumn(i);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Ошибка: {ex.Message}");
            }
        }
Ejemplo n.º 9
0
        // Изменить язык фильма
        public void EditFilmLanguage(string language, int index)
        {
            FilmRow film = (FilmRow)FilmFile[index];

            film.FilmLanguage = language;
        }
Ejemplo n.º 10
0
        // Изменить страну фильма
        public void EditFilmCountry(string country, int index)
        {
            FilmRow film = (FilmRow)FilmFile[index];

            film.FilmCountry = country;
        }
Ejemplo n.º 11
0
        // Изменить режисёра фильма
        public void EditFilmDirector(string director, int index)
        {
            FilmRow film = (FilmRow)FilmFile[index];

            film.FilmDirector = director;
        }
Ejemplo n.º 12
0
        // Изменить жанр фильма
        public void EditFilmGenre(string genre, int index)
        {
            FilmRow film = (FilmRow)FilmFile[index];

            film.FilmGenre = genre;
        }
Ejemplo n.º 13
0
        // Изменить название фильма
        public void EditFilmTitle(string title, int index)
        {
            FilmRow film = (FilmRow)FilmFile[index];

            film.FilmTitle = title;
        }
Ejemplo n.º 14
0
 // Добавить новую строку в файл
 public void AddRow(FilmRow filmRow)
 {
     FilmFile.Add(filmRow);
 }
Ejemplo n.º 15
0
        // Поиск совпадений по базе, и получение ID всех найденных записей
        // Возвращает -1, если совпадений не найдено
        public List <int> SearchRows(string query)
        {
            List <int> count = new List <int>();

            //Проверяются ID и год премьеры
            if (ushort.TryParse(query, out ushort num_query))
            {
                for (int i = 0; i < FilmFile.Count; i++)
                {
                    FilmRow filmRow = (FilmRow)FilmFile[i];

                    if (filmRow.FilmID == num_query)
                    {
                        count.Add(i);
                        break; // Если нашли запись по уникальному ID, то закончить поиск
                    }
                    else
                    {
                        if (filmRow.YearRelease == num_query)
                        {
                            count.Add(i);
                        }
                    }
                }

                if (count.Count == 0)
                {
                    count.Add(-1);
                }
                return(count);
            }

            // Поиск по текстовым полям записи
            query = query.ToLower(); // перевод в нижний регистр
            query = query.Replace(" ", "");

            for (int i = 0; i < FilmFile.Count; i++)
            {
                FilmRow filmRow = (FilmRow)FilmFile[i];

                if (filmRow.FilmTitle.ToLower().Replace(" ", "").Contains(query))
                {
                    count.Add(i);
                }

                else
                if (filmRow.FilmGenre.ToLower().Replace(" ", "").Contains(query))
                {
                    count.Add(i);
                }

                else
                if (filmRow.FilmDirector.ToLower().Replace(" ", "").Contains(query))
                {
                    count.Add(i);
                }

                else
                if (filmRow.FilmCountry.ToLower().Replace(" ", "").Contains(query))
                {
                    count.Add(i);
                }

                else
                if (filmRow.FilmLanguage.ToLower().Replace(" ", "").Contains(query))
                {
                    count.Add(i);
                }
            }

            if (count.Count == 0)
            {
                count.Add(-1);
            }
            return(count);
        }