示例#1
0
        private void InitializeData(object sender, EventArgs e)
        {
            MusicAlbumsGuideDB context = new MusicAlbumsGuideDB();

            genres = context.Genres.ToList();
            InitializeComboBox(GenreComboBox, new List <object>(genres));
            albums = context.Albums.ToList();
            List <string> years = new List <string>();

            foreach (var album in albums)
            {
                years.Add(album.ReleaseYear.ToString());
            }
            InitializeTextBox(ReleaseYearTextBox, new List <object>(years));
            carriers = context.Carriers.ToList();
            InitializeComboBox(CarrierComboBox, new List <object>(carriers));
            types = context.Types.ToList();
            InitializeComboBox(TypeComboBox, new List <object>(types));
            authors = context.Authors.ToList();
            InitializeTextBox(AuthorTextBox, new List <object>(authors));
            List <string> trackCounts = new List <string>();

            foreach (var album in albums)
            {
                trackCounts.Add(album.TrackCount.ToString());
            }
            InitializeTextBox(TrackCountTextBox, new List <object>(trackCounts));
            releasingLabels = context.ReleasingLabels.ToList();
            InitializeTextBox(ReleaseLabelTextBox, new List <object>(releasingLabels));
        }
示例#2
0
        private void SearchButton_Click(object sender, EventArgs e)
        {
            if (SearchTextBox.Text == "Введите ключевые слова для поиска")
            {
                errorProvider1.SetError(SearchTextBox, "Нужно заполнить поле для поиска!");
                return;
            }
            string[]           words        = SearchTextBox.Text.Split(' ');
            MusicAlbumsGuideDB context      = new MusicAlbumsGuideDB();
            List <Album>       allAlbums    = context.Albums.Include(p => p.Author).Include(p => p.Carrier).Include(p => p.Genre).Include(p => p.ReleasingLabel).Include(p => p.Type).ToList();
            List <Album>       findedAlbums = new List <Album>();
            List <Album>       result       = new List <Album>();

            foreach (string s in words)
            {
                findedAlbums = allAlbums.Where(p => (p.Genre.Name == s) || (p.Genre.Name.Contains(s)) || (p.Name == s) || (p.Name.Contains(s)) || (p.Author.Name == s) || (p.Author.Name.Contains(s)) ||
                                               (p.Carrier.Name == s) || (p.Carrier.Name.Contains(s)) || (p.ReleaseYear.ToString() == s) || (p.ReleaseYear.ToString().Contains(s)) || (p.ReleasingLabel.Name == s) || (p.ReleasingLabel.Name.Contains(s)) ||
                                               (p.TrackCount.ToString() == s) || (p.TrackCount.ToString().Contains(s)) || (p.Type.Name == s) || (p.Type.Name.Contains(s))).ToList();
                foreach (Album a in findedAlbums)
                {
                    if (result.Contains(a))
                    {
                        continue;
                    }
                    result.Add(a);
                }
            }
            InitializeAlbumsPreview(result);
        }
示例#3
0
        private void SaveToDatabase()
        {
            MusicAlbumsGuideDB context = new MusicAlbumsGuideDB();
            Album newAlbum             = new Album();

            newAlbum.Name = NameTextBox.Text;
            Genre currentGenre = context.Genres.Where(p => p.Name == GenreComboBox.Text).Single();

            newAlbum.GenreId     = currentGenre.GenreId;
            newAlbum.ReleaseYear = Convert.ToInt32(ReleaseYearTextBox.Text);
            Carrier currentCarrier = context.Carriers.Where(p => p.Name == CarrierComboBox.Text).Single();

            newAlbum.CarrierId = currentCarrier.CarrierId;
            //
            Database.Models.Type currentType = context.Types.Where(p => p.Name == TypeComboBox.Text).Single();
            newAlbum.TypeId = currentType.TypeId;
            Author author;

            try
            {
                author = context.Authors.Where(p => p.Name == AuthorTextBox.Text).Single();
            }
            catch (Exception)
            {
                context.Authors.Add(new Author()
                {
                    Name = AuthorTextBox.Text
                });
                context.SaveChanges();
                author = context.Authors.Where(p => p.Name == AuthorTextBox.Text).Single();
            }
            newAlbum.AuthorId   = author.AuthorId;
            newAlbum.TrackCount = Convert.ToInt32(TrackCountTextBox.Text);
            //
            ReleasingLabel releasingLabel;

            try
            {
                releasingLabel = context.ReleasingLabels.Where(p => p.Name == ReleaseLabelTextBox.Text).Single();
            }
            catch (Exception)
            {
                context.ReleasingLabels.Add(new ReleasingLabel()
                {
                    Name = ReleaseLabelTextBox.Text
                });
                context.SaveChanges();
                releasingLabel = context.ReleasingLabels.Where(p => p.Name == ReleaseLabelTextBox.Text).Single();
            }
            newAlbum.ReleasingLabelId = releasingLabel.ReleasingLabelId;
            newAlbum.CoverPhoto       = ImageMethods.ConvertImageToByteArray(CoverAlbum.Image);
            context.Albums.Add(newAlbum);
            context.SaveChanges();
        }
示例#4
0
 static public bool isAuthorsTableEmpty(MusicAlbumsGuideDB context)
 {
     if (!context.Database.Exists())
     {
         context.Database.Create(); return(true);
     }
     if (context.Authors.ToList().Count == 0)
     {
         return(true);
     }
     return(false);
 }
示例#5
0
 static public bool isDatabaseEmpty(this MusicAlbumsGuideDB context)
 {
     if (!context.Database.Exists())
     {
         context.Database.Create(); return(true);
     }
     if (isAlbumsTableEmpty(context) && isCarriersTableEmpty(context) && isGenresTableEmpty(context) && isTypesTableEmpty(context) && isAuthorsTableEmpty(context))
     {
         return(true);
     }
     return(false);
 }
示例#6
0
        public void FilterForm_Load(object sender, EventArgs e)
        {
            WindowSizeChanged(sender, e);
            //

            //
            this.Location = new Point((parentForm.Location.X + parentForm.Size.Width / 2) - this.Size.Width / 2, (parentForm.Location.Y + parentForm.Size.Height / 2) - this.Size.Height / 2);
            this.Anchor   = AnchorStyles.None;
            //
            GenresComboBox.Items.Clear();
            ReleaseYearsComboBox.Items.Clear();
            CarriersComboBox.Items.Clear();
            TypesComboBox.Items.Clear();
            AuthorsComboBox.Items.Clear();
            TracksCountComboBox.Items.Clear();
            ReleasingLabelsComboBox.Items.Clear();
            //
            this.StartPosition = FormStartPosition.CenterParent;
            ControlsChangeMethods.RoundBorderForm(this);
            MusicAlbumsGuideDB context = new MusicAlbumsGuideDB();
            List <Genre>       genres  = context.Genres.ToList();

            GenresComboBox.InitializeItems(new List <object>(genres));
            List <Album>  albums = context.Albums.OrderBy(p => p.ReleaseYear).ToList();
            List <string> years  = new List <string>();

            foreach (var album in albums)
            {
                years.Add(album.ReleaseYear.ToString());
            }
            ReleaseYearsComboBox.InitializeItems(new List <object>(years));
            List <Carrier> carriers = context.Carriers.ToList();

            CarriersComboBox.InitializeItems(new List <object>(carriers));
            List <Database.Models.Type> types = context.Types.ToList();

            TypesComboBox.InitializeItems(new List <object>(types));
            List <Author> authors = context.Authors.ToList();

            AuthorsComboBox.InitializeItems(new List <object>(authors));
            albums = albums.OrderBy(p => p.TrackCount).ToList();
            List <string> trackCounts = new List <string>();

            foreach (var album in albums)
            {
                trackCounts.Add(album.TrackCount.ToString());
            }
            TracksCountComboBox.InitializeItems(new List <object>(trackCounts));
            List <ReleasingLabel> labels = context.ReleasingLabels.ToList();

            ReleasingLabelsComboBox.InitializeItems(new List <object>(labels));
            Show();
        }
示例#7
0
        private void EnterDataFromAlbum(int AlbumId)
        {
            MusicAlbumsGuideDB context = new MusicAlbumsGuideDB();
            Album current = context.Albums.Include(p => p.Author).Include(p => p.Carrier).Include(p => p.Genre).Include(p => p.Type).Include(p => p.ReleasingLabel).Where(p => p.AlbumId == AlbumId).Single();

            CoverAlbum.Image         = ImageMethods.ConvertByteArrayToImage(current.CoverPhoto);
            CoverAlbum.SizeMode      = PictureBoxSizeMode.StretchImage;
            NameTextBox.Text         = current.Name;
            GenreComboBox.Text       = current.Genre.Name;
            ReleaseYearTextBox.Text  = current.ReleaseYear.ToString();
            CarrierComboBox.Text     = current.Carrier.Name;
            TypeComboBox.Text        = current.Type.Name;
            AuthorTextBox.Text       = current.Author.Name;
            TrackCountTextBox.Text   = current.TrackCount.ToString();
            ReleaseLabelTextBox.Text = current.ReleasingLabel.Name;
        }
示例#8
0
        private void Delete_Click(object sender, EventArgs e)
        {
            MusicAlbumsGuideDB context = new MusicAlbumsGuideDB();
            Album albumToDelete        = context.Albums.Include(p => p.ReleasingLabel).Include(p => p.Author).Include(p => p.Carrier).Include(p => p.Genre).Include(p => p.Type).Where(p => p.AlbumId == currentAlbum.AlbumId).Single();

            ReleasingLabel currentReleasingLabel = albumToDelete.ReleasingLabel;
            string         labelName             = "";
            string         authName = "";

            if (currentReleasingLabel != null)
            {
                if (context.Albums.Where(p => p.ReleasingLabel.ReleasingLabelId == currentReleasingLabel.ReleasingLabelId).ToList().Count == 1)
                {
                    labelName = albumToDelete.ReleasingLabel.Name;
                }
            }
            //
            Author currentAuth = albumToDelete.Author;

            if (currentAuth != null)
            {
                if (context.Albums.Where(p => p.Author.AuthorId == currentAuth.AuthorId).ToList().Count == 1)
                {
                    authName = currentAuth.Name;
                }
            }
            //
            context.Albums.Remove(albumToDelete);
            context.SaveChanges();
            if (labelName != "")
            {
                context.ReleasingLabels.Remove(context.ReleasingLabels.Where(p => p.Name == labelName).Single());
            }
            context.SaveChanges();
            if (authName != "")
            {
                context.Authors.Remove(context.Authors.Where(p => p.Name == authName).Single());
            }
            context.SaveChanges();
            parentForm.HomeButton.PerformClick();
        }
示例#9
0
        static public Album GetFullAlbum(int AlbumId)
        {
            MusicAlbumsGuideDB context = new MusicAlbumsGuideDB();

            return(context.Albums.Include(p => p.Author).Include(p => p.Carrier).Include(p => p.Genre).Include(p => p.ReleasingLabel).Include(p => p.Type).Where(p => p.AlbumId == AlbumId).Single());
        }
示例#10
0
        protected override void Seed(MusicAlbumsGuideDB context)
        {
            //List<Lot> lots = new List<Lot>() { new Lot { Name = "Мультиварка Bosch", State = "б/у", StartDate = DateTime.Now, FinishDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day + 2) } };
            //for (int i = 0; i < lots.Count; i++)
            //{
            //    context.Lots.Add(lots[i]);
            //}
            //context.SaveChanges();
            List <Carrier> carriers = new List <Carrier>()
            {
                new Carrier()
                {
                    Name = "Винил"
                },
                new Carrier()
                {
                    Name = "Аудиокассеты"
                },
                new Carrier()
                {
                    Name = "Цифровой носитель"
                },
                new Carrier()
                {
                    Name = "CD диск"
                }
            };

            for (int i = 0; i < carriers.Count; i++)
            {
                context.Carriers.Add(carriers[i]);
            }
            context.SaveChanges();

            List <Genre> genres = new List <Genre>()
            {
                new Genre()
                {
                    Name = "oldschool rap"
                },
                new Genre()
                {
                    Name = "newschool rap"
                },
                new Genre()
                {
                    Name = "gangsta rap"
                },
                new Genre()
                {
                    Name = "horrorcore"
                },
                new Genre()
                {
                    Name = "south hip-hop"
                },
                new Genre()
                {
                    Name = "rock"
                },
                new Genre()
                {
                    Name = "punk-rock"
                },
                new Genre()
                {
                    Name = "hardcore"
                },
                new Genre()
                {
                    Name = "post-hardcore"
                },
                new Genre()
                {
                    Name = "metalcore"
                },
                new Genre()
                {
                    Name = "emo"
                },
                new Genre()
                {
                    Name = "screamo"
                },
                new Genre()
                {
                    Name = "punk"
                },
                new Genre()
                {
                    Name = "post-punk"
                },
                new Genre()
                {
                    Name = "metal"
                },
                new Genre()
                {
                    Name = "nu-metal"
                },
                new Genre()
                {
                    Name = "heavy metal"
                },
                new Genre()
                {
                    Name = "trash metal"
                },
                new Genre()
                {
                    Name = "black metal"
                },
                new Genre()
                {
                    Name = "death metal"
                },
                new Genre()
                {
                    Name = "slamming brutal death"
                },
                new Genre()
                {
                    Name = "funeral doom"
                },
                new Genre()
                {
                    Name = "doom metal"
                },
                new Genre()
                {
                    Name = "EDM"
                },
                new Genre()
                {
                    Name = "techno"
                },
                new Genre()
                {
                    Name = "house"
                },
                new Genre()
                {
                    Name = "tranсe"
                },
                new Genre()
                {
                    Name = "synthpop"
                },
                new Genre()
                {
                    Name = "ambient"
                },
                new Genre()
                {
                    Name = "noise"
                },
                new Genre()
                {
                    Name = "noise-rock"
                },
                new Genre()
                {
                    Name = "powernoise"
                },
                new Genre()
                {
                    Name = "harsh noise"
                },
                new Genre()
                {
                    Name = "classic"
                },
                new Genre()
                {
                    Name = "jazz"
                },
                new Genre()
                {
                    Name = "blues"
                },
            };

            for (int i = 0; i < genres.Count; i++)
            {
                context.Genres.Add(genres[i]);
            }
            context.SaveChanges();

            List <Models.Type> types = new List <Models.Type>()
            {
                new Models.Type()
                {
                    Name = "Полноформатный"
                },
                new Models.Type()
                {
                    Name = "EP"
                },
                new Models.Type()
                {
                    Name = "Сингл"
                },
                new Models.Type()
                {
                    Name = "Демо"
                },
                new Models.Type()
                {
                    Name = "Сплит"
                }
            };

            for (int i = 0; i < types.Count; i++)
            {
                context.Types.Add(types[i]);
            }
            context.SaveChanges();

            context.SaveChanges();
        }
示例#11
0
        private bool ValidateForm()
        {
            bool result = true;
            MusicAlbumsGuideDB context = new MusicAlbumsGuideDB();

            if (string.IsNullOrEmpty(NameTextBox.Text) || NameTextBox.Text == "Введите имя альбома" || NameTextBox.Text == " ")
            {
                NameErrorProvider.SetError(NameTextBox, "Поле имени должно быть заполнено");
                if (result == true)
                {
                    result = false;
                }
            }
            else
            {
                if (NameTextBox.Text.Length > 40)
                {
                    NameErrorProvider.SetError(NameTextBox, "Слишком длинное имя альбома");
                    if (result == true)
                    {
                        result = false;
                    }
                }
                else
                {
                    NameErrorProvider.Clear();
                }
            }
            List <Album>  albums = context.Albums.Include(p => p.Author).ToList();
            List <string> names  = new List <string>();

            foreach (var album in albums)
            {
                names.Add(album.Name);
            }

            if (string.IsNullOrEmpty(GenreComboBox.Text) || GenreComboBox.Text == "Выберите жанр альбома" || GenreComboBox.Text == " ")
            {
                GenreErrorProvider.SetError(GenreComboBox, "Поле жанра должно быть заполнено");
                if (result == true)
                {
                    result = false;
                }
            }
            else
            {
                GenreErrorProvider.Clear();
            }

            if (string.IsNullOrEmpty(AuthorTextBox.Text) || AuthorTextBox.Text == "Введите автора альбома" || AuthorTextBox.Text == " ")
            {
                AuthorErrorProvider.SetError(AuthorTextBox, "Поле автора должно быть заполнено");
                if (result == true)
                {
                    result = false;
                }
            }

            if (names.Contains(NameTextBox.Text))
            {
                List <Album> find = albums.Where(p => p.Name == NameTextBox.Text && p.Author.Name == AuthorTextBox.Name).ToList();
                if (find.Count != 0)
                {
                    AuthorErrorProvider.SetError(NameTextBox, "Альбом с таким именем у данного автора уже существует");
                }
                if (result == true)
                {
                    result = false;
                }
            }
            else
            {
                AuthorErrorProvider.Clear();
            }

            if (string.IsNullOrEmpty(ReleaseYearTextBox.Text) || ReleaseYearTextBox.Text == "Введите год выпуска альбома" || ReleaseYearTextBox.Text == " ")
            {
                ReleaseYearErrorProvider.SetError(ReleaseYearTextBox, "Поле года релиза должно быть заполнено");
                if (result == true)
                {
                    result = false;
                }
            }
            else
            {
                int  res;
                bool isInt = Int32.TryParse(ReleaseYearTextBox.Text, out res);
                if (!isInt)
                {
                    ReleaseYearErrorProvider.SetError(ReleaseYearTextBox, "Поле года должно быть целым числом");
                    if (result == true)
                    {
                        result = false;
                    }
                }
                else if (res > DateTime.Now.Year)
                {
                    ReleaseYearErrorProvider.SetError(ReleaseYearTextBox, "Год не должен быть больше текущего");
                    if (result == true)
                    {
                        result = false;
                    }
                }
                else if (res < 1000)
                {
                    ReleaseYearErrorProvider.SetError(ReleaseYearTextBox, "Введите корректный год");
                    if (result == true)
                    {
                        result = false;
                    }
                }
                else
                {
                    ReleaseYearErrorProvider.Clear();
                }
            }
            if (string.IsNullOrEmpty(TypeComboBox.Text) || TypeComboBox.Text == "Выберите тип альбома" || TypeComboBox.Text == " ")
            {
                TypeErrorProvider.SetError(TypeComboBox, "Поле типа альбома должно быть заполнено");
                if (result == true)
                {
                    result = false;
                }
            }
            else
            {
                TypeErrorProvider.Clear();
            }

            if (string.IsNullOrEmpty(CarrierComboBox.Text) || CarrierComboBox.Text == "Выберите тип носителя альбома" || CarrierComboBox.Text == " ")
            {
                CarrierTypeErrorProvider.SetError(CarrierComboBox, "Поле типа носителя альбома должно быть заполнено");
                if (result == true)
                {
                    result = false;
                }
            }
            else
            {
                CarrierTypeErrorProvider.Clear();
            }

            if (string.IsNullOrEmpty(TrackCountTextBox.Text) || TrackCountTextBox.Text == "Введите количество дорожек в альбоме" || TrackCountTextBox.Text == " ")
            {
                TrackCountErrorProvider.SetError(TrackCountTextBox, "Поле количнства дорожек должно быть заполнено");
                if (result == true)
                {
                    result = false;
                }
            }
            else
            {
                int  res;
                bool isInt = Int32.TryParse(TrackCountTextBox.Text, out res);
                if (!isInt)
                {
                    TrackCountErrorProvider.SetError(TrackCountTextBox, "Количество дорожек должно быть целым числом");
                    if (result == true)
                    {
                        result = false;
                    }
                }
                else if (res <= 0)
                {
                    TrackCountErrorProvider.SetError(TrackCountTextBox, "Количетсов дорожек не может быть равно или меньше нуля");
                    if (result == true)
                    {
                        result = false;
                    }
                }
                else
                {
                    TrackCountErrorProvider.Clear();
                }
            }
            if (string.IsNullOrEmpty(ReleaseLabelTextBox.Text) || ReleaseLabelTextBox.Text == "Введите название выпускающего лэйбла" || ReleaseLabelTextBox.Text == " ")
            {
                ReleaseLabelErrorProvider.SetError(ReleaseLabelTextBox, "Поле выпускающего лэйбла должно быть заполнено");
                if (result == true)
                {
                    result = false;
                }
            }
            else
            {
                ReleaseLabelErrorProvider.Clear();
            }

            return(result);
        }
示例#12
0
        private List <Album> GetDataByFilter()
        {
            MusicAlbumsGuideDB context = new MusicAlbumsGuideDB();
            string             Default = "";

            List <Album> allAlbums = context.Albums.Include(p => p.Author).Include(p => p.Carrier).Include(p => p.Genre).Include(p => p.ReleasingLabel).Include(p => p.Type).ToList();

            if (FilterAndSearchConfig.FilterGenre != Default)
            {
                string[]     Genres       = FilterAndSearchConfig.FilterGenre.Split(';');
                List <Album> findedAlbums = new List <Album>();
                foreach (string s in Genres)
                {
                    List <Album> finded = allAlbums.Where(p => p.Genre.Name == s).ToList();
                    foreach (Album a in finded)
                    {
                        findedAlbums.Add(a);
                    }
                    allAlbums = findedAlbums;
                }
            }
            if (FilterAndSearchConfig.FilterAuthor != Default)
            {
                string[]     Authors      = FilterAndSearchConfig.FilterAuthor.Split(';');
                List <Album> findedAlbums = new List <Album>();
                foreach (string s in Authors)
                {
                    List <Album> finded = allAlbums.Where(p => p.Author.Name == s).ToList();
                    foreach (Album a in finded)
                    {
                        findedAlbums.Add(a);
                    }
                    allAlbums = findedAlbums;
                }
            }
            if (FilterAndSearchConfig.FilterCarrier != Default)
            {
                string[]     Carriers     = FilterAndSearchConfig.FilterCarrier.Split(';');
                List <Album> findedAlbums = new List <Album>();
                foreach (string s in Carriers)
                {
                    List <Album> finded = allAlbums.Where(p => p.Carrier.Name == s).ToList();
                    foreach (Album a in finded)
                    {
                        findedAlbums.Add(a);
                    }
                    allAlbums = findedAlbums;
                }
            }
            if (FilterAndSearchConfig.FilterReleaseYear != Default)
            {
                string[]     ReleaseYears = FilterAndSearchConfig.FilterReleaseYear.Split(';');
                List <Album> findedAlbums = new List <Album>();
                foreach (string s in ReleaseYears)
                {
                    List <Album> finded = allAlbums.Where(p => p.ReleaseYear.ToString() == s).ToList();
                    foreach (Album a in finded)
                    {
                        findedAlbums.Add(a);
                    }
                    allAlbums = findedAlbums;
                }
            }
            if (FilterAndSearchConfig.FilterReleasingLabel != Default)
            {
                string[]     ReleasingLabels = FilterAndSearchConfig.FilterReleasingLabel.Split(';');
                List <Album> findedAlbums    = new List <Album>();
                foreach (string s in ReleasingLabels)
                {
                    List <Album> finded = allAlbums.Where(p => p.ReleasingLabel.Name == s).ToList();
                    foreach (Album a in finded)
                    {
                        findedAlbums.Add(a);
                    }
                    allAlbums = findedAlbums;
                }
            }
            if (FilterAndSearchConfig.FilterTrackCount != Default)
            {
                string[]     TrackCounts  = FilterAndSearchConfig.FilterTrackCount.Split(';');
                List <Album> findedAlbums = new List <Album>();
                foreach (string s in TrackCounts)
                {
                    List <Album> finded = allAlbums.Where(p => p.TrackCount.ToString() == s).ToList();
                    foreach (Album a in finded)
                    {
                        findedAlbums.Add(a);
                    }
                    allAlbums = findedAlbums;
                }
            }
            if (FilterAndSearchConfig.FilterType != Default)
            {
                string[]     Types        = FilterAndSearchConfig.FilterType.Split(';');
                List <Album> findedAlbums = new List <Album>();
                foreach (string s in Types)
                {
                    List <Album> finded = allAlbums.Where(p => p.Type.Name == s).ToList();
                    foreach (Album a in finded)
                    {
                        findedAlbums.Add(a);
                    }
                    allAlbums = findedAlbums;
                }
            }
            allAlbums = SortAlbums(allAlbums);
            return(allAlbums);
        }