private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            timer1.Stop();

            CompletedMessage = new List <string>();
            Errors           = new List <string>();

            if (!Op.Success)
            {
                Errors = this.Op.GetAllErrorsAndExceptions();
            }



            TimeSpan ts = DateTime.Now.Subtract(StartTime);

            string msg =
                "DB Load complete!\n" +
                "Number of mp3 files:   " + ddlbMp3s.LbList.Count + "\n" +
                "Total execution time (s):  " + ts.Seconds.ToString();

            CompletedMessage.Add("DB Load complete");
            CompletedMessage.Add("Number of mp3 files:   " + ddlbMp3s.LbList.Count);
            CompletedMessage.Add("Total execution time (s):  " + ts.Seconds.ToString());
            rtbMessages.Text   = BCHUtilities.ListToString(CompletedMessage, "\n");
            progressBar1.Value = ddlbMp3s.LbList.Count;

            rtbMessages.Text += Op.GetAllMessages("\n");
        }
Example #2
0
        private string GetSongs(iTunesSongs songs, string plName = "", string delim = "\t")
        {
            StringBuilder sb = new StringBuilder();
            int           i  = 0;

            if (plName.Trim().Length > 0)
            {
                sb.Append(plName + "\n");
            }

            foreach (var song in songs.iTunesSongList)
            {
                Dictionary <string, string> dict = BCHUtilities.GetObjectPropertyValueList(song);
                if (i == 0)
                {
                    foreach (var pair in dict)
                    {
                        sb.Append(pair.Key + delim);
                    }
                    sb.Append("\n");
                }
                i++;

                foreach (var pair in dict)
                {
                    sb.Append(pair.Value + delim);
                }

                sb.Append("\n");
            }

            return(sb.ToString());
        }
Example #3
0
        private void SaveMp3IdInfo()
        {
            ID3Info id3 = new ID3Info(ddtbMp3File.ItemText, true);


            try
            {
                id3.ID3v1Info.TrackNumber = BCHUtilities.IsNumeric(tbTrack3v1.Text) ? byte.Parse(tbTrack3v1.Text) : byte.Parse("1");
                id3.ID3v1Info.Title       = tbTitle3v1.Text;
                id3.ID3v1Info.Artist      = tbArtist3v1.Text;
                id3.ID3v1Info.Album       = tbAlbum3v1.Text;
                id3.ID3v1Info.Year        = tbYear3v1.Text;
                id3.ID3v1Info.Comment     = tbComment3v1.Text;
                id3.ID3v1Info.Genre       = Convert.ToByte(cbGenre3v1.GenreIndex);


                id3.ID3v2Info.SetTextFrame("TRCK", tbTrack3v2.Text);
                id3.ID3v2Info.SetTextFrame("TIT2", tbTitle3v2.Text);
                id3.ID3v2Info.SetTextFrame("TPE1", tbArtist3v2.Text);
                id3.ID3v2Info.SetTextFrame("TALB", tbAlbum3v2.Text);
                id3.ID3v2Info.SetTextFrame("TYER", tbYear3v2.Text);
                id3.ID3v2Info.SetTextFrame("WCOM", tbComment3v2.Text);
                id3.ID3v2Info.SetTextFrame("TCON", cbGenre3v2.Genre);

                id3.ID3v2Info.HaveTag = true;
                id3.ID3v1Info.HaveTag = true;

                id3.Save();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #4
0
        private string ValidateAndInsertParamList(string sql, ref Dictionary <string, SqlScriptParameter> paramList, ref Dictionary <string, string> sqlPrmNameValueList, ref OperationResult op)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(sql);

            if (paramList.Count != sqlPrmNameValueList.Count)
            {
                op.AddError("Number of given parameters do not match what is needed!");
                return(string.Empty);
            }

            foreach (KeyValuePair <string, SqlScriptParameter> item in paramList)
            {
                if (!sqlPrmNameValueList.ContainsKey(item.Key))
                {
                    op.AddError("One or more parameters are missing");
                    return(string.Empty);
                }

                string val = sqlPrmNameValueList[item.Key];

                if ((item.Value.Type == SqlScriptParameterTypeEnum.Decimal && !BCHUtilities.IsNumeric(val)) ||
                    (item.Value.Type == SqlScriptParameterTypeEnum.Integer && !BCHUtilities.IsInteger(val)))
                {
                    op.AddError("One or more parameters are not the correct type");
                    return(string.Empty);
                }

                sb.Replace(item.Value.Marker, val);
            }

            return(sb.ToString());
        }
Example #5
0
        public void SetControl()
        {
            string dbFile = BCHUtilities.GetConfigValue("MP3DBFile", 0, ".MDB", 1, true, false);

            this.MP3DBExists = File.Exists(dbFile);

            this.MP3DBFileName = MP3DBExists ? dbFile : string.Empty;
        }
Example #6
0
        private void TestMP3Parcing()
        {
            OperationResult op           = new OperationResult();
            string          fileNamePath = @"H:\Barry Hill\My Music\Music\R&B\Anita Baker\Giving You the Best That I Got\Anita Baker-01--Priceless.mp3";
            string          mscRtDir     = @"H:\Barry Hill\My Music\Music";

            textBox1.Text = fileNamePath;
            MP3FileDataType mp3 = BCHMP3Utilities.ConvertFileNameToMP3InfoBCHFrmtWithDirInfo(fileNamePath, mscRtDir, ref op);

            Dictionary <string, string> dict = BCHUtilities.GetObjectNamePropDict <MP3FileDataType>(mp3, ref op);

            textBox2.Text       = BCHUtilities.DictionaryToString(dict, ";");
            listBox1.DataSource = dict.Values.ToList <string>();
        }
Example #7
0
        public static string AddColumnRow(DataTable dt, ref OperationResult op)
        {
            StringBuilder sb = new StringBuilder();

            foreach (DataColumn column in dt.Columns)
            {
                Type t = column.DataType;
                sb.Append(column.ColumnName + "||" + BCHUtilities.GetPdbType(column.DataType) + "\t");
            }

            if (sb.ToString().EndsWith("\t"))
            {
                sb = new StringBuilder(sb.ToString().TrimEnd('\t'));
            }

            return(sb.ToString());
        }
Example #8
0
        public void InsertMP3Artists(MP3FileDataType mp3, ref OperationResult op)
        {
            if (this.DataStore == null)
            {
                op.AddError("DataStore not set!");
                return;
            }

            DataStore ds = this.DataStore;

            Dictionary <string, string> parms = new Dictionary <string, string>();

            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetFileInfo_File), mp3.FileName);
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetFileInfo_Path), mp3.FilePath);

            DataTable dt = ds.ExecuteSql(ds.Conn, SqlScriptEnum.GetFileInfo, parms, ref op);

            if (!op.Success)
            {
                return;
            }

            if (dt.Rows.Count < 1)
            {
                op.AddError(mp3.FileNamePath + " mp3 file info does not exists!");
                return;
            }

            parms = new Dictionary <string, string>();
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetMP3byFilePath_File), mp3.FileName);
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetMP3byFilePath_Path), mp3.FilePath);

            dt = ds.ExecuteSql(ds.Conn, SqlScriptEnum.GetMP3byFilePath, parms, ref op);
            if (!op.Success)
            {
                return;
            }

            if (dt.Rows.Count < 1)
            {
                op.AddError(mp3.FileNamePath + " mp3 info not exists!");
                return;
            }

            int?mid = BCHUtilities.GetInteger(dt.Rows[0]["Mp3Info_Id"].ToString());

            foreach (string artist in mp3.Artists)
            {
                parms = new Dictionary <string, string>();
                parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetArtist_File), mp3.FileName);
                parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetArtist_Path), mp3.FilePath);
                parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetArtist_Artist), artist.Trim());

                dt = ds.ExecuteSql(ds.Conn, SqlScriptEnum.GetArtist, parms, ref op);
                if (!op.Success)
                {
                    return;
                }

                if (dt.Rows.Count > 0)
                {
                    op.AddError(mp3.FileNamePath + ", Artist: " + artist + " mp3 already exists!");
                    break;
                }

                parms = new Dictionary <string, string>();
                parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.InsertArtist_Mp3Info_Id), mid.ToString());
                parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.InsertArtist_Artist), string.IsNullOrEmpty(artist.Trim()) ? null : artist.Trim());

                ds.ExecuteSql(ds.Conn, SqlScriptEnum.InsertArtist, parms, ref op);
                if (!op.Success)
                {
                    return;
                }
            }
        }
Example #9
0
        public void InsertMP3Info(MP3FileDataType mp3, ref OperationResult op)
        {
            if (this.DataStore == null)
            {
                op.AddError("DataStore not set!");
                return;
            }

            SetConnection(ref op);

            if (!op.Success)
            {
                return;
            }

            DataStore ds = this.DataStore;

            Dictionary <string, string> parms = new Dictionary <string, string>();

            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetFileInfo_File), mp3.FileName);
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetFileInfo_Path), mp3.FilePath);

            DataTable dt = ds.ExecuteSql(ds.Conn, SqlScriptEnum.GetFileInfo, parms, ref op);

            if (!op.Success)
            {
                return;
            }

            if (dt.Rows.Count < 1)
            {
                op.AddError(mp3.FileNamePath + " mp3 file info does not exists!");
                return;
            }

            int?fid = BCHUtilities.GetInteger(dt.Rows[0]["FileInfo_Id"].ToString());

            parms = new Dictionary <string, string>();
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetMP3byFilePath_File), mp3.FileName);
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.GetMP3byFilePath_Path), mp3.FilePath);

            dt = ds.ExecuteSql(ds.Conn, SqlScriptEnum.GetMP3byFilePath, parms, ref op);
            if (!op.Success)
            {
                return;
            }

            if (dt.Rows.Count > 0)
            {
                op.AddError(mp3.FileNamePath + " mp3 already exists!");
                return;
            }


            parms = new Dictionary <string, string>();
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.InsertMP3_Album), string.IsNullOrEmpty(mp3.Album) ? null : mp3.Album.Trim());
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.InsertMP3_Comments), string.IsNullOrEmpty(mp3.Comments) ? null : mp3.Comments.Trim());
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.InsertMP3_FileInfo_Id), fid.ToString());
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.InsertMP3_Genre), string.IsNullOrEmpty(mp3.Genre) ? null : mp3.Genre.Trim());
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.InsertMP3_Song_Numeraton), string.IsNullOrEmpty(mp3.SongNumeration) ? null : mp3.SongNumeration.Trim());
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.InsertMP3_Song_Tile), string.IsNullOrEmpty(mp3.SongTitle) ? null : mp3.SongTitle.Trim());
            parms.Add(ds.GetSqlScriptParam(SqlParamScriptEnum.InsertMP3_Track), mp3.Track == null ? null : mp3.Track.ToString());

            ds.ExecuteSql(ds.Conn, SqlScriptEnum.InsertMP3, parms, ref op);
            if (!op.Success)
            {
                return;
            }
        }