Example #1
0
        public static void AddSong(string path)
        {
            try
            {
                if (!File.Exists(path))
                {
                    return;
                }
                AnalyticalFileAdder.tg     = new TagInfo();
                AnalyticalFileAdder.dbcon  = new DBConnection(Path.Combine(AppDomain.CurrentDomain.BaseDirectory.ToString(), "media_Database.accdb"));
                AnalyticalFileAdder.sngInf = new SongInfo();
                AnalyticalFileAdder.dbcon.Open();
                AnalyticalFileAdder.tg.File        = path;
                AnalyticalFileAdder.sngInf.sngName = AnalyticalFileAdder.tg.Title == null?Path.GetFileNameWithoutExtension(path) : AnalyticalFileAdder.tg.Title;

                AnalyticalFileAdder.sngInf.artist   = AnalyticalFileAdder.tg.Artist == null ? "Unknown Artist" : AnalyticalFileAdder.tg.Artist;
                AnalyticalFileAdder.sngInf.album    = AnalyticalFileAdder.tg.Album == null ? "Unknown Album" : AnalyticalFileAdder.tg.Album;
                AnalyticalFileAdder.sngInf.genre    = AnalyticalFileAdder.tg.Geners == null ? "Unknown Genre" : AnalyticalFileAdder.tg.Geners;
                AnalyticalFileAdder.sngInf.MIME     = AnalyticalFileAdder.tg.MIMEType;
                AnalyticalFileAdder.sngInf.location = path;
                AnalyticalFileAdder.sngInf.bitrate  = AnalyticalFileAdder.tg.BitRate;
                AnalyticalFileAdder.sngInf.disk     = (int)AnalyticalFileAdder.tg.Disk;
                AnalyticalFileAdder.sngInf.length   = AnalyticalFileAdder.tg.Duration.TotalSeconds;
                AnalyticalFileAdder.sngInf.year     = (int)AnalyticalFileAdder.tg.Year;
                AnalyticalFileAdder.InsertSong(AnalyticalFileAdder.sngInf);
                AnalyticalFileAdder.InsertArtist(AnalyticalFileAdder.sngInf.artist);
                AnalyticalFileAdder.InsertAlbum(AnalyticalFileAdder.sngInf.album, AnalyticalFileAdder.sngInf.artist);
            }
            catch (DBConnectionException ex)
            {
                throw new FileAdderException("Cannot connect to database.");
            }
            catch (TagReadException ex)
            {
                throw new FileAdderException("Cannot open this type of file.");
            }
            catch (Exception ex)
            {
                throw new FileAdderException("Error Occured.");
            }
            finally
            {
                if (AnalyticalFileAdder.dbcon != null)
                {
                    if (AnalyticalFileAdder.dbcon.IsOpened)
                    {
                        AnalyticalFileAdder.dbcon.Close();
                    }
                    AnalyticalFileAdder.dbcon.Dispose();
                }
                AnalyticalFileAdder.tg = (TagInfo)null;
            }
        }