public DetailWindow(MusicGroupsFolder.MusicGroup musicGroup, Database database) { try { InitializeComponent(); _musicGroup = musicGroup; ObservableCollection <MusicGroupsFolder.Song> songs = database.SongsOfMusicGroup(musicGroup); ObservableCollection <MusicGroupsFolder.Musician> musicians = database.MusiciansOfMusicGroup(musicGroup); detailMusicGroupName.Text = _musicGroup.Name; detailMusicGroupNationality.Text = _musicGroup.Nationality; detailMusicGroupType.Text = _musicGroup.Type.ToString(); detailMusicGroupCreatedDate.Text = _musicGroup.CreatedDate.ToString(); detailMusicGroupEndedDate.Text = _musicGroup.EndDate.ToString(); MusicianGrid.ItemsSource = musicians; { if (_musicGroup.Image != null) { profileImage.Source = LoadImage(_musicGroup.Image.ToArray()); } } SongGrid.ItemsSource = songs; } catch (System.Exception e) { MessageBox.Show("Detail je prázdný!\n\n" + e.Message); } }
public void AddForm(MusicGroupsFolder.MusicGroup currentGroup) // Funkce pridani do tabulky hudebni skupiny { List <System.Guid> SongsIDs = new List <System.Guid>(); List <System.Guid> MusicianIDs = new List <System.Guid>(); System.Guid tmpIDMusicGroup = AddMusicGroup(currentGroup); // Pridani do databazi vygenerovane skupiny foreach (var song in currentGroup.Songs) // Pridani do databazi novych pisnicek { SongsIDs.Add(AddSong(song)); // Ulozeni jejich IDs do listu } foreach (var idSong in SongsIDs) // Nastavovani vazeb Skupina - Pisnicka { AddMusicGroup_Song(tmpIDMusicGroup, idSong); } foreach (var musician in currentGroup.Musicians) // Pridani do databazi novych hudebniku { MusicianIDs.Add(AddMusician(musician)); // Ulozeni jejich IDs do listu } foreach (var idMusicians in MusicianIDs) // Nastavovani vazeb Skupina - Hudebnik { AddMusicGroup_Musician(tmpIDMusicGroup, idMusicians); } }
public void createDemoDatabase() { MusicGroupsFolder.MusicGroup OceanElsy = new MusicGroupsFolder.MusicGroup("Okean Elzy", "UKR", TypeOfMusic.Metal, new DateTime(1995, 10, 12), new DateTime(1995, 10, 12)); MusicGroupsFolder.MusicGroup LinkinPark = new MusicGroupsFolder.MusicGroup("Linkin Park", "USA", TypeOfMusic.Metal, new DateTime(1996, 4, 13)); MusicGroupsFolder.MusicGroup Metallica = new MusicGroupsFolder.MusicGroup("Metallica", "USA", TypeOfMusic.Rock, new DateTime(1981, 5, 5)); OceanElsy.AddSong(new MusicGroupsFolder.Song("Tam de nas nema", new DateTime(2007, 10, 12), TypeOfMusic.Metal, "3:25")); OceanElsy.AddSong(new MusicGroupsFolder.Song("Obiymy", new DateTime(2013, 2, 11), TypeOfMusic.Metal, "3:55")); OceanElsy.AddSong(new MusicGroupsFolder.Song("Not Your War", new DateTime(2017, 6, 25), TypeOfMusic.Metal, "3:45")); OceanElsy.AddMusician(new MusicGroupsFolder.Musician("Svyatoslav", "Vakarchuk", new DateTime(1975, 5, 14), nationality: "UKR", sex: "Male")); LinkinPark.AddSong(new MusicGroupsFolder.Song("Numb", new DateTime(2002, 10, 12), TypeOfMusic.Metal, "3:25")); LinkinPark.AddSong(new MusicGroupsFolder.Song("New Divide", new DateTime(2010, 2, 11), TypeOfMusic.Metal, "3:55")); LinkinPark.AddSong(new MusicGroupsFolder.Song("Burn It Down", new DateTime(2012, 6, 25), TypeOfMusic.Metal, "3:45")); LinkinPark.AddMusician(new MusicGroupsFolder.Musician("Chester", "Bennington", new DateTime(1976, 3, 20), nationality: "USA", sex: "Male")); Metallica.AddSong(new MusicGroupsFolder.Song("Fight Fire With Fire", new DateTime(2008, 10, 21), TypeOfMusic.Metal, "5:25")); Metallica.AddSong(new MusicGroupsFolder.Song("To Live Is to Die", new DateTime(2005, 2, 19), TypeOfMusic.Metal, "3:00")); Metallica.AddSong(new MusicGroupsFolder.Song("Disposable Heroes", new DateTime(2009, 6, 12), TypeOfMusic.Metal, "4:45")); Metallica.AddMusician(new MusicGroupsFolder.Musician("James", "Hetfield", new DateTime(1976, 8, 3), nationality: "USA", sex: "Male")); _database.AddForm(OceanElsy); _database.AddForm(LinkinPark); _database.AddForm(Metallica); _database.SaveDatabase(); _database.LoadDatabase(); }
public ObservableCollection <MusicGroupsFolder.Song> SongsOfMusicGroup(MusicGroupsFolder.MusicGroup group) //zobrazeni pisnicek konkretni hudebni skupiny (hledani podle ID) { if (group == null) { return(new ObservableCollection <MusicGroupsFolder.Song>()); } var id = group.ID; var songs = from song in _database.Songs join gr in _database.MusicGroup_Songs on song.SongID equals gr.SongID where gr.MusicGroupID == id select new MusicGroupsFolder.Song(song.SongName, (System.DateTime)song.SongReleased, (TypeOfMusic)Enum.Parse(typeof(TypeOfMusic), song.SongGenre), song.SongLength, song.SongWriter, song.SongID); return(new ObservableCollection <MusicGroupsFolder.Song>(songs)); }
public System.Guid AddMusicGroup(MusicGroupsFolder.MusicGroup group) // Pridani hudebni skupiny bez referenci { var alreadyInDatabase = _database.MusicGroups.FirstOrDefault(stored => stored.MusicGroupID == group.ID); if (alreadyInDatabase == null) { MusicGroup tmpMusicGroup = new MusicGroup() { MusicGroupName = group.Name, MusicGroupCreatedDate = group.CreatedDate, MusicGroupEndDate = group.EndDate, MusicGroupNationality = group.Nationality, MusicGroupType = group.Type.ToString(), MusicGroupPhoto = group.Image }; try { _database.MusicGroups.InsertOnSubmit(tmpMusicGroup); _database.SubmitChanges(); } catch (Exception e) { ErrorString = e.Message; MessageBox.Show("Nepodařilo se přidat hudební skupinu do databáze!\n\n" + ErrorString); } return(tmpMusicGroup.MusicGroupID); } else { alreadyInDatabase.MusicGroupEndDate = group.EndDate; alreadyInDatabase.MusicGroupCreatedDate = group.CreatedDate; alreadyInDatabase.MusicGroupName = group.Name; alreadyInDatabase.MusicGroupNationality = group.Nationality; alreadyInDatabase.MusicGroupPhoto = group.Image; alreadyInDatabase.MusicGroupType = group.Type.ToString(); _database.MusicGroups.Context.SubmitChanges(); return(alreadyInDatabase.MusicGroupID); } }
private Dictionary <string, MusicGroupsFolder.MusicGroup> LoadMusicGroupTable() // Nahrani tabulky Skupin do Dictionary { Dictionary <string, MusicGroupsFolder.MusicGroup> dictionary = new Dictionary <string, MusicGroupsFolder.MusicGroup>(); try { using (StreamReader reader = File.OpenText(_savingPath + "MusicGroupTable.csv")) { string line = null; while ((line = reader.ReadLine()) != null) { var data = line.Split(';'); if (data.Length == 7) { string name = data[1]; string type = data[2]; DateTime start = ConvertStringDateToDateTime(data[3]); DateTime end = ConvertStringDateToDateTime(data[4]); string nationality = data[5]; System.Data.Linq.Binary image = null; if (data[6].Length > 0) { image = File.ReadAllBytes(data[6]); } MusicGroupsFolder.MusicGroup tmpGroup = new MusicGroupsFolder.MusicGroup(name, nationality, (TypeOfMusic)Enum.Parse(typeof(TypeOfMusic), type), start, end, image); dictionary.Add(data[0], tmpGroup); } } } } catch (Exception e) { ErrorString = e.Message; MessageBox.Show("Nepodařilo se nahrat tabulku hudebních skupin!\n\n" + ErrorString); } return(dictionary); }
private void AddMusicGroup(object sender, RoutedEventArgs e) { if (musicGroupName.Text != "" && musicGroupNationality.Text != "" && musicGroupTypeOfMusic.SelectedValue != null) { MusicGroupsFolder.MusicGroup group = new MusicGroupsFolder.MusicGroup( musicGroupName.Text, musicGroupNationality.Text, (TypeOfMusic)musicGroupTypeOfMusic.SelectedValue, musicGroupStartedDate.SelectedDate ?? new DateTime(), musicGroupEndedDate.SelectedDate ?? new DateTime(), _image); group.Musicians = _musicians.ToList(); group.Songs = _songs.ToList(); // _musicGroup.Add(group); _database.AddForm(group); MakeEmptyMusicGroup(); MyEvent(this, EventArgs.Empty); Close(); } else { MessageBox.Show("Zadejte prosím povinné údaje!"); } }
public ObservableCollection <MusicGroupsFolder.Musician> MusiciansOfMusicGroup(MusicGroupsFolder.MusicGroup group) //zobrazeni hudebniku konkretni hudebni skupiny (hledani podle ID) { if (group == null) { return(new ObservableCollection <MusicGroupsFolder.Musician>()); } var id = group.ID; var musicians = from mus in _database.Musicians join gr in _database.MusicGroup_Musicians on mus.MusicianID equals gr.MusicianID where gr.MusicGroupID == id select new MusicGroupsFolder.Musician(mus.MusicianName, mus.MusicianSurname, (System.DateTime)mus.MusicianDateBirth, mus.MusicianInstrument, mus.MusicianNationality, mus.MusicianSex, mus.MusicianID); return(new ObservableCollection <MusicGroupsFolder.Musician>(musicians)); }