예제 #1
0
 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);
     }
 }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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();
        }
예제 #4
0
        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));
        }
예제 #5
0
        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);
            }
        }
예제 #6
0
        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);
        }
예제 #7
0
 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!");
     }
 }
예제 #8
0
        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));
        }