Click here to Skip to main content
15,897,518 members
Articles / Desktop Programming / Windows Forms

BSEtunes

Rate me:
Please Sign up or sign in to vote.
4.67/5 (11 votes)
24 Apr 2010CPOL4 min read 64.8K   4.3K   58  
BSEtunes is a MySQL based, full manageable, networkable single or multiuser jukebox application
using System;
using System.Collections;
using System.Drawing;

using BSE.Platten.BO.Properties;
using System.Globalization;

namespace BSE.Platten.BO
{
	/// <summary>
	/// Zusammenfassung f�r CAlbum.
	/// </summary>
	public class CAlbum : ICloneable
    {
        #region Constants

        private readonly Size m_thumbNailSize = new Size(80, 80);

        #endregion

        #region FieldsPrivate

        private int m_iAlbumId;
		private string m_strToc;
		private string m_strMediaId;
		private int m_iIndex;
		private int m_iInterpretId;
		private string m_strInterpret;
		private string m_strTitle;
		private int m_iYear;
		private int m_iMediumId;
		private string m_strMedium;
		private int m_iGenreId;
		private string m_strGenre;
        private int m_iMp3Tag;
		private System.Drawing.Image m_Cover;
		private System.Drawing.Image m_Thumbnail;
		private string m_strCoverExtension;
		private CTrack[] m_Tracks;
		private string m_strErrorText;

		
		#endregion
		
		#region Properties
		
		public int AlbumId
		{
			get {return m_iAlbumId;}
			set {m_iAlbumId = value;}
		}
		
		public string TOC
		{
			get {return m_strToc;}
			set {m_strToc = value;}
		}

		public string MediaId
		{
			get {return m_strMediaId;}
			set {m_strMediaId = value;}
		}

		public int Index
		{
			get {return m_iIndex;}
			set {m_iIndex = value;}
		}

		public int InterpretId
		{
			get {return m_iInterpretId;}
			set {m_iInterpretId = value;}
		}

		public string Interpret
		{
			get {return m_strInterpret;}
			set {m_strInterpret = value;}
		}

		public string Title
		{
			get {return m_strTitle;}
			set {m_strTitle = value;}
		}

		public int Year
		{
			get {return m_iYear;}
			set {m_iYear = value;}
		}

		public int MediumId
		{
			get {return this.m_iMediumId;}
			set {this.m_iMediumId = value;}
		}

		public string Medium
		{
			get {return this.m_strMedium;}
			set {this.m_strMedium = value;}
		}

		public int GenreId
		{
			get {return m_iGenreId;}
			set {m_iGenreId = value;}
		}

		public string Genre
		{
			get {return m_strGenre;}
			set {m_strGenre = value;}
		}

        public int Mp3Tag
        {
            get { return this.m_iMp3Tag; }
            set { this.m_iMp3Tag = value; }
        }

		public System.Drawing.Image Cover
		{
			get {return this.m_Cover;}
			set {this.m_Cover = value;}
		}

		public System.Drawing.Image Thumbnail
		{
			get {return this.m_Thumbnail;}
			set {this.m_Thumbnail = value;}
		}

		public System.Drawing.Size ThumbnailSize
		{
            get { return m_thumbNailSize; }
		}

		public string CoverExtension
		{
			get {return this.m_strCoverExtension;}
			set {this.m_strCoverExtension = value;}
		}

		public CTrack[] Tracks
		{
			get {return m_Tracks;}
			set {m_Tracks = value;}
		}

		public string ErrorText
		{
			get {return m_strErrorText;}
			set {m_strErrorText = value;}
		}
		#endregion

		#region MethodsPublic

		public CAlbum()
		{
		}

        public static CAlbum GetAlbumDataByDataRow(CDataRowAlbum dataRowAlbum, string strAudioHomeDirectory)
        {
            CAlbum album = null;
            if (dataRowAlbum != null)
            {
                album = new CAlbum();
                object objTitelId = dataRowAlbum.TitelId;
                if (objTitelId is int)
                {
                    album.AlbumId = (int)objTitelId;
                }
                object objInterpretId = dataRowAlbum.InterpretId;
                if (objInterpretId is int)
                {
                    album.InterpretId = (int)objInterpretId;
                }
                string strInterpret = dataRowAlbum.Interpret as string;
                if (String.IsNullOrEmpty(strInterpret) == false)
                {
                    album.Interpret = strInterpret;
                }
                string strTitel = dataRowAlbum.Titel as string;
                if (String.IsNullOrEmpty(strTitel) == false)
                {
                    album.Title = strTitel;
                }
                if (dataRowAlbum.IsErschDatumNull() == false)
                {
                    album.Year = (int)dataRowAlbum.ErschDatum;
                }
                if (dataRowAlbum.IsMediumIdNull() == false)
                {
                    album.MediumId = dataRowAlbum.MediumId;
                }
                if (dataRowAlbum.IsGenreIdNull() == false)
                {
                    album.GenreId = dataRowAlbum.GenreId;
                }
                object objMp3Tag = dataRowAlbum.Mp3Tag;
                if (objMp3Tag is int)
                {
                    album.Mp3Tag = (int)objMp3Tag;
                }
                if (dataRowAlbum.IsCoverNull() == false)
                {
                    Byte[] byteCover = dataRowAlbum.Cover;
                    album.Cover = System.Drawing.Bitmap.FromStream(new System.IO.MemoryStream((byte[])byteCover));
                }
                if (dataRowAlbum.IsThumbNailNull() == false)
                {
                    Byte[] byteThumbNail = dataRowAlbum.ThumbNail;
                    album.Thumbnail = System.Drawing.Bitmap.FromStream(new System.IO.MemoryStream((byte[])byteThumbNail));
                }

                if (dataRowAlbum.IsPictureFormatNull() == false)
                {
                    album.CoverExtension = dataRowAlbum.PictureFormat;
                }

                CDataRowTracks[] dataRowsTrack = (CDataRowTracks[])dataRowAlbum.GetChildRows(CDataSetAlbum.DATARELATIONNAME);
                ArrayList aTracks = new ArrayList();
                foreach (CDataRowTracks dataRow in dataRowsTrack)
                {
                    CTrack track = new CTrack();
                    track.TitelId = dataRow.TitelId;
                    track.LiedId = (int)dataRow.LiedId;
                    if (dataRow.IsTrackNull() == false)
                    {
                        track.TrackNumber = (int)dataRow.Track;
                    }
                    if (dataRow.IsLiedNull() == false)
                    {
                        track.Title = dataRow.Lied;
                    }
                    if (dataRow.IsDauerNull() == false)
                    {
                        track.Duration = (DateTime)dataRow.Dauer;
                    }
                    if (dataRow.IsLiedpfadNull() == false)
                    {
                        track.FileName = dataRow.Liedpfad;
                        if (String.IsNullOrEmpty(track.FileName) == false)
                        {
                            if (String.IsNullOrEmpty(strAudioHomeDirectory) == false)
                            {
                                track.FileFullName = strAudioHomeDirectory + dataRow.Liedpfad;
                            }
                        }
                    }
                    aTracks.Add(track);
                    album.Tracks = new CTrack[dataRowsTrack.Length];
                    aTracks.CopyTo(album.Tracks);
                }
            }

            return album;
        }

		public object Clone()
		{
			CAlbum album = new CAlbum();
			album.AlbumId = this.m_iAlbumId;
			album.TOC = this.m_strToc;
			album.MediaId = this.m_strMediaId;
			album.Index = this.m_iIndex;
			album.InterpretId = this.m_iInterpretId;
			album.Interpret = this.m_strInterpret;
			album.Title = this.m_strTitle;
			album.Year = this.m_iYear;
			album.MediumId = this.m_iMediumId;
			album.Medium = this.Medium;
			album.GenreId = this.m_iGenreId;
			album.Genre = this.m_strGenre;
            album.Mp3Tag = this.m_iMp3Tag;
            album.Cover = this.m_Cover;
			album.Thumbnail = this.m_Thumbnail;
			album.CoverExtension = this.m_strCoverExtension;
            album.ErrorText = this.m_strErrorText;
            if (this.m_Tracks != null)
            {
                album.Tracks = new CTrack[this.m_Tracks.Length];
                this.m_Tracks.CopyTo(album.Tracks, 0);
            }
			return (object)album;
		}

        public static string GetAudioHomeDirectory(CEnvironment environment)
        {
            if (environment == null)
            {
                throw new ArgumentNullException(
                    string.Format(
                    CultureInfo.CurrentUICulture,
                    Resources.IDS_ArgumentException,
                    typeof(CEnvironment).Name));
            }
            
            string strAudioHomeDirectory;
            try
            {
                strAudioHomeDirectory = environment.GetAudioHomeDirectory();
                if (String.IsNullOrEmpty(strAudioHomeDirectory) == false)
                {
                    if (!strAudioHomeDirectory.EndsWith(System.IO.Path.DirectorySeparatorChar.ToString()))
                    {
                        strAudioHomeDirectory += System.IO.Path.DirectorySeparatorChar;
                    }
                }
            }
            catch (BSE.Configuration.CConfigurationValueNotFoundException)
            {
                throw;
            }
            catch (Exception)
            {
                throw;
            }
            return strAudioHomeDirectory;
        }

		#endregion
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Switzerland Switzerland
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions