예제 #1
0
        private static int SetRecord(MP3Record mp3Record)
        {
            int lastSongID = -1;

            if (MD5Exist(mp3Record.MD5, false) == false)
            {
                try
                {
                    var context = new MyJukeboxEntities();
                    // tsongs data
                    var songs = new tSong();
                    songs.Album      = mp3Record.Album;
                    songs.Artist     = mp3Record.Artist;
                    songs.Titel      = mp3Record.Titel;
                    songs.Pfad       = mp3Record.Path;
                    songs.FileName   = mp3Record.FileName;
                    songs.ID_Genre   = mp3Record.Genre;
                    songs.ID_Catalog = mp3Record.Catalog;
                    songs.ID_Media   = mp3Record.Media;
                    context.tSongs.Add(songs);
                    context.SaveChanges();
                    lastSongID = GetLastID("tSongs");

                    // tmd5 data
                    var md5 = new tMD5();
                    md5.MD5     = mp3Record.MD5;
                    md5.ID_Song = lastSongID;
                    context.tMD5.Add(md5);
                    context.SaveChanges();

                    // tfileinfo data
                    var file = new tFileInfo();
                    file.FileDate   = mp3Record.FileDate;
                    file.FileSize   = mp3Record.FileSize;
                    file.ImportDate = DateTime.Now;
                    file.ID_Song    = lastSongID;
                    context.tFileInfos.Add(file);
                    context.SaveChanges();

                    // tinfos data
                    var info = new tInfo();
                    info.Sampler = mp3Record.IsSample;
                    info.ID_Song = lastSongID;
                    context.tInfos.Add(info);
                    context.SaveChanges();

                    return(1);
                }
                catch (Exception ex)
                {
                    Debug.Print($"SetNewRecord_Error: {ex.Message}");
                    return(0);
                }
            }
            else
            {
                return(0);
            }
        }
예제 #2
0
        public static int CreateCatalog(string catalog)
        {
            int idDbo = -1;
            int idTst = -1;

            var context = new MyJukeboxEntities();

            #region create new catalog on [dbo]
            var catalogDboExist = context.tCatalogs
                                  .Where(c => c.Name == catalog)
                                  .FirstOrDefault();

            if (catalogDboExist == null)
            {
                context.tCatalogs
                .Add(new tCatalog {
                    Name = catalog
                });
                context.SaveChanges();

                idDbo = GetLastID("tCatalogs");
            }
            #endregion

            #region create new catalog on [tst]
            var catalogTstExist = context.tCatalogs
                                  .Where(c => c.Name == catalog)
                                  .FirstOrDefault();

            if (catalogTstExist == null)
            {
                context.tCatalogs
                .Add(new tCatalog {
                    Name = catalog
                });
                context.SaveChanges();

                idTst = GetLastID("tCatalogs");
            }
            #endregion

            if (idDbo == idTst)
            {
                return(idDbo);
            }
            else
            {
                return(-1);
            }
        }
예제 #3
0
        public static async Task RefillMD5Table()
        {
            List <tMD5> rec = new List <tMD5>();

            using (var context = new MyJukeboxEntities())
            {
                await Task.Run(() =>
                {
                    var result = context.tSongs
                                 .OrderBy(s => s.ID)
                                 .Select(s => new { s.ID, s.Pfad, s.FileName });

                    foreach (var s in result)
                    {
                        string hash = Common.MD5($"{s.Pfad}{s.FileName}");
                        Debug.Print($"ID_Song={s.ID}, md5={hash}");


                        rec.Add(new tMD5 {
                            ID_Song = s.ID, MD5 = hash
                        });
                    }

                    context.tMD5.AddRange(rec);
                    context.SaveChanges();
                });
            }
        }
예제 #4
0
        public static Exception RemoveSongFromPlaylist(int idSong, int idPlaylist)
        {
            try
            {
                var context  = new MyJukeboxEntities();
                var playlist = context.tPlaylists
                               .Where(p => p.ID == idPlaylist)
                               .FirstOrDefault();

                if (playlist == null)
                {
                    throw new Exception($"Playlist {idPlaylist} not found!");
                }

                var entry = context.tPLentries
                            .Where(p => p.PLID == idPlaylist && p.SongID == idSong)
                            .FirstOrDefault();

                if (entry == null)
                {
                    throw new Exception($"Song not exist in the Playlist '{playlist.Name}'");
                }

                context.tPLentries.Remove(entry);
                context.SaveChanges();

                return(new Exception(null));
            }
            catch (Exception ex)
            {
                return(ex);
            }
        }
        public async Task RefillMD5Table()
        {
            List <tMD5> rec = new List <tMD5>();

            using (var context = new MyJukeboxEntities())
            {
                await Task.Run(() =>
                {
                    var result = context.tSongs
                                 .OrderBy(s => s.ID)
                                 .Select(s => new { s.ID, s.Pfad, s.FileName });

                    foreach (var s in result)
                    {
                        string hash = Helpers.MD5($"{s.Pfad}\\{s.FileName}");
                        Console.WriteLine($"ID_Song={s.ID}, md5={hash}");

                        rec.Add(new tMD5
                        {
                            ID_Song = s.ID,
                            MD5     = hash
                        }
                                );
                    }

                    context.tMD5.AddRange(rec);
                    context.SaveChanges();

                    Console.WriteLine($"{rec} records added.");
                });
            }
        }
예제 #6
0
        public static bool EditSaveFileinfoChanges(int id, MP3Record record)
        {
            try
            {
                var context = new MyJukeboxEntities();
                var file    = context.tFileInfoes.Find(id);

                if (file.FileSize != record.FileSize)
                {
                    file.FileSize = record.FileSize;
                }
                if (file.FileDate != record.FileDate)
                {
                    file.FileDate = record.FileDate;
                }
                if (file.Duration != record.Duration)
                {
                    file.Duration = record.Duration;
                }

                context.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
예제 #7
0
        public static void DeleteSong(int id)
        {
            var context = new MyJukeboxEntities();
            var songs   = context.tSongs.First(s => s.ID == id);

            context.tSongs.Remove(songs);
            context.SaveChanges();
        }
예제 #8
0
        internal static int AddNewPlaylist(string playlistname)
        {
            var       context  = new MyJukeboxEntities();
            tPlaylist playlist = new tPlaylist {
                Name = playlistname, Last = false
            };

            context.tPlaylists.Add(playlist);
            context.SaveChanges();
            return(playlist.ID);
        }
예제 #9
0
        public static void SetRating(int id, int rating)
        {
            var context = new MyJukeboxEntities();
            var result  = context.tInfos.SingleOrDefault(s => s.ID_Song == id);

            if (result != null)
            {
                result.Rating = rating;
                context.SaveChanges();
            }
            ;
        }
예제 #10
0
        public static void SaveParameters(List <Setting> settings)
        {
            var context = new MyJukeboxEntities();

            foreach (Setting setting in settings)
            {
                var result = context.tSettings.SingleOrDefault(p => p.Name == setting.Name);
                result.Value = setting.Value;
            }

            context.SaveChanges();
        }
예제 #11
0
        public static void Save()
        {
            var context = new MyJukeboxEntities();

            foreach (KeyValuePair <string, object> item in Settings)
            {
                var update = context.tSettings.SingleOrDefault(n => n.Name == item.Key);
                update.Value = item.Value.ToString();
            }

            context.SaveChanges();

            var result = DataGetSet.TruncateTableQueries();

            foreach (string query in QueryList)
            {
                context.tQueries.Add(new tQuery {
                    Query = query
                });
            }

            context.SaveChanges();
        }
예제 #12
0
        public static void AddSongToPlaylist(int id, int playlistID)
        {
            var context = new MyJukeboxEntities();

            var entry = new tPLentries()
            {
                PLID   = playlistID,
                SongID = id,
                Pos    = 1
            };

            context.tPLentries.Add(entry);
            context.SaveChanges();
        }
예제 #13
0
        internal static bool RenamePlaylist(int id, string newPlaylistName)
        {
            try
            {
                var context  = new MyJukeboxEntities();
                var playlist = context.tPlaylists.SingleOrDefault(i => i.ID == id);

                playlist.Name = newPlaylistName;
                context.SaveChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
예제 #14
0
        public static bool EditSaveSongChanges(int id, MP3Record record)
        {
            try
            {
                var context = new MyJukeboxEntities();
                var songs   = context.tSongs.Find(id);

                if (songs.ID_Genre != GetGenreFromString(record.Genre))
                {
                    songs.ID_Genre = GetGenreFromString(record.Genre);
                }

                if (songs.ID_Catalog != GetCatalogFromString(record.Catalog))
                {
                    songs.ID_Catalog = GetCatalogFromString(record.Catalog);
                }

                if (songs.Album != record.Album)
                {
                    songs.Album = record.Album;
                }
                if (songs.Artist != record.Artist)
                {
                    songs.Artist = record.Artist;
                }
                if (songs.Titel != record.Titel)
                {
                    songs.Titel = record.Titel;
                }
                if (songs.Pfad != record.Path)
                {
                    songs.Pfad = record.Path;
                }
                if (songs.FileName != record.FileName)
                {
                    songs.FileName = record.FileName;
                }

                context.SaveChanges();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
예제 #15
0
        public static void SetColumnWidth(string name, int width)
        {
            var context = new MyJukeboxEntities();
            var result  = context.tColumns.SingleOrDefault(n => n.Name == name);

            if (result != null)
            {
                result.Width = width;
            }
            else
            {
                context.tColumns.Add(new tColumn {
                    Name = name, Width = width
                });
            }

            context.SaveChanges();
        }
예제 #16
0
        internal static void SetPlaylistLastSelected(int id)
        {
            var context = new MyJukeboxEntities();

            int last   = GetLastselectedPlaylist();
            var result = context.tPlaylists.SingleOrDefault(n => n.ID == last);

            if (result != null)
            {
                result.Last = false;
            }

            result = context.tPlaylists.SingleOrDefault(n => n.ID == id);
            if (result != null)
            {
                result.Last = true;
            }

            context.SaveChanges();
        }
예제 #17
0
        //public static List<string> GetQueryList()
        //{
        //    List<string> queries = null;

        //    var context = new MyJukeboxEntities();

        //    queries = context.tQueries
        //                    .Select(q => q.Query)
        //                    .OrderBy(q => q).ToList();

        //    return queries;
        //}

        public static void AddSongToPlaylist(int id, string playlistName)
        {
            var context  = new MyJukeboxEntities();
            var playlist = context.tPlaylists
                           .Where(p => p.Name == playlistName)
                           .Select(p => p.ID).ToList();

            if (playlist == null)
            {
                throw new Exception("Wrong playlist!");
            }

            var entry = new tPLentries()
            {
                PLID   = playlist[0],
                SongID = id,
                Pos    = 1
            };

            context.tPLentries.Add(entry);
            context.SaveChanges();
        }
예제 #18
0
        internal static bool RemovePlaylist(int id)
        {
            try
            {
                var context = new MyJukeboxEntities();

                var playlistEntries = context.tPLentries
                                      .Where(i => i.PLID == id)
                                      .Select(i => i);

                context.tPLentries.RemoveRange(playlistEntries);

                var playlist = context.tPlaylists.SingleOrDefault(i => i.ID == id);
                context.tPlaylists.Remove(playlist);
                context.SaveChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
예제 #19
0
        internal static void SetPlaylistInfos(PlaylistInfo playlist)
        {
            var context = new MyJukeboxEntities();
            var result  = context.tPlaylists.SingleOrDefault(n => n.ID == playlist.ID);

            if (result != null)
            {
                if (playlist.Name != null)
                {
                    result.Name = playlist.Name;
                }
                if (playlist.Row != null)
                {
                    result.Row = playlist.Row;
                }
                if (playlist.Last != null)
                {
                    result.Last = playlist.Last;
                }

                context.SaveChanges();
            }
        }
예제 #20
0
        public static int CreateGenre(string genre)
        {
            int id = -1;

            var context = new MyJukeboxEntities();

            var result = context.tGenres
                         .Where(g => g.Name == genre)
                         .FirstOrDefault();

            if (result == null)
            {
                context.tGenres
                .Add(new tGenre {
                    Name = genre
                });
                context.SaveChanges();

                id = GetLastID("tGenres");
            }

            return(id);
        }