Beispiel #1
0
        /// Восстанавливает коллекцию, записанную в файл

        public void OpenFile(string filename)
        {
            if (!System.IO.File.Exists(filename))
            {
                throw new Exception("Файл не существует");
            }
            if (filmFiles.Count != 0)
            {
                DeleteMusic();
            }
            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   artist    = dataFromFile[1];
                    string   song      = dataFromFile[2];
                    ushort   year      = (ushort)Convert.ToInt32(dataFromFile[3]);
                    string   genre     = dataFromFile[4];
                    FilmFile movieFile = new FilmFile(id, artist, song, year, genre);
                    AddMusicFile(movieFile);
                }
            }
        }
Beispiel #2
0
 private void btnAddRecord_Click(object sender, EventArgs e)
 {
     try
     {
         string artist = textBoxArtist.Text;
         string song   = textBoxSong.Text;
         ushort year   = (ushort)Convert.ToInt32(textBoxYear.Text);
         string genre  = textBoxGenre.Text;
         textBoxArtist.Text = "";
         textBoxSong.Text   = "";
         textBoxYear.Text   = "";
         textBoxGenre.Text  = "";
         FilmFile musicFile = new FilmFile(generateID(), artist, song, year, genre);
         data.AddMusicFile(musicFile);
         int      n     = data.FilmFiles.Count;
         FilmFile music = (FilmFile)data.FilmFiles[n - 1];
         dataGridViewTable.Rows.Add(music.MovieID, artist, song, year, genre);
         BanChangeColumn(n - 1);
         if ((!timer1.Enabled) && (filename != ""))
         {
             timer1.Enabled = true;
             timer1.Start();
         }
     } catch (Exception exception)
     {
         MessageBox.Show($"Ошибка: {exception.Message}");
     }
 }
Beispiel #3
0
        int IComparer.Compare(object x, object y)
        {
            FilmFile film1 = (FilmFile)x;
            FilmFile film0 = (FilmFile)y;

            return((this.m_direction == SortDirection.Ascending) ?
                   film1.YearRelease.CompareTo(film0.YearRelease) :
                   film0.YearRelease.CompareTo(film1.YearRelease));
        }
Beispiel #4
0
        /// Изменить год релиза фильма у заданного элемента

        public void ChangeYearRelease(ushort year, int index)
        {
            FilmFile music = (FilmFile)FilmFiles[index];

            if ((year < 1900) || (year > DateTime.Now.Year))
            {
                throw new Exception("Год выпуска не раньше 1900 и не позднее " + DateTime.Now.Year);
            }
            music.YearRelease = year;
        }
Beispiel #5
0
        /// Поиск по заданному параметру и возвращение индексов найденных элементов
        /// Вернет -1, если элементы не найдены

        public List <int> SearchMusicFile(string query)
        {
            List <int> count = new List <int>();
            ushort     num_query;

            if (ushort.TryParse(query, out num_query))
            {
                for (int i = 0; i < filmFiles.Count; i++)
                {
                    FilmFile music = (FilmFile)filmFiles[i];
                    if (music.MovieID == num_query)
                    {
                        count.Add(i);
                        break;
                    }
                    else
                    {
                        if (music.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 < filmFiles.Count; i++)
            {
                FilmFile movie = (FilmFile)filmFiles[i];
                if (movie.ProducertName.ToLower().Replace(" ", "").Contains(query))
                {
                    count.Add(i);
                }
                else
                if (movie.MovieTitle.ToLower().Replace(" ", "").Contains(query))
                {
                    count.Add(i);
                }
                else
                if (movie.KinoGenre.ToLower().Replace(" ", "").Contains(query))
                {
                    count.Add(i);
                }
            }
            if (count.Count == 0)
            {
                count.Add(-1);
            }
            return(count);
        }
Beispiel #6
0
 private void WriteToDataGrid()
 {
     for (int i = 0; i < data.FilmFiles.Count; i++)
     {
         FilmFile music = (FilmFile)data.FilmFiles[i];
         dataGridViewTable.Rows.Add(music.MovieID, music.ProducertName,
                                    music.MovieTitle, music.YearRelease, music.KinoGenre);
         BanChangeColumn(i);
     }
     // последнюю строку запрещаем редактировать
     dataGridViewTable.Rows[data.FilmFiles.Count].ReadOnly = true;
 }
Beispiel #7
0
        // Генерация не повторяющихся id
        public ushort generateID()
        {
            Random r  = new Random();
            int    id = r.Next(0, 1000);

            for (int i = 0; i < data.FilmFiles.Count; i++)
            {
                FilmFile music = (FilmFile)data.FilmFiles[i];
                if (music.MovieID == id)
                {
                    i  = 0;
                    id = r.Next(0, 1000);
                }
            }
            return((ushort)id);
        }
Beispiel #8
0
        /// Изменить жанр песни у заданного элемента

        public void ChangeGenreSong(string genre, int index)
        {
            FilmFile music = (FilmFile)FilmFiles[index];

            music.KinoGenre = genre;
        }
Beispiel #9
0
        /// Изменить название фильма у заданного элемента

        public void ChangeSongTittle(string movie, int index)
        {
            FilmFile film = (FilmFile)FilmFiles[index];

            film.MovieTitle = movie;
        }
Beispiel #10
0
        /// Изменить рижесера у заданного элемента

        public void ChangeArtistName(string artist, int index)
        {
            FilmFile film = (FilmFile)FilmFiles[index];

            film.ProducertName = artist;
        }
Beispiel #11
0
        /// Добавление фильма в коллекцию

        public void AddMusicFile(FilmFile musicFile)
        {
            filmFiles.Add(musicFile);
        }