Click here to Skip to main content
15,860,859 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.2K   4.3K   58  
BSEtunes is a MySQL based, full manageable, networkable single or multiuser jukebox application
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using BSE.Platten.BO.Properties;

namespace BSE.Platten.BO
{
    public class CTunesBusinessObject
    {
        #region FieldsPrivate

        private string m_strConnection;

        #endregion

        #region MethodsPublic

        public CTunesBusinessObject(string strConnection)
        {
            this.m_strConnection = strConnection;
        }

        #region Albums

        public CAlbum GetAlbumById(int iTitelId)
        {
            return CTunesModel.GetAlbumById(this.m_strConnection, iTitelId);
        }

        public CTrack GetTrackWithThumbNailById(CTrack track)
        {
            return CTunesModel.GetTrackWithThumbNailById(this.m_strConnection, track);
        }

        #endregion

        #region Covers

        public CAlbum[] GetNewestAlbumsWithCovers(int iLimit)
        {
            CCoversBusinessObject coversBusinessObject
                = new CCoversBusinessObject(this.m_strConnection);
            return coversBusinessObject.GetNewestAlbumsWithCovers(iLimit);
        }

        #endregion

        #region Trees

        public CInterpretData[] GetInterpretsAndAlbums()
        {
            return CTunesModel.GetInterpretsAndAlbums(this.m_strConnection);
        }

        public CGenreData[] GetGenresWithAlbums()
        {
            return CTunesModel.GetGenresWithAlbums(this.m_strConnection);
        }

        public CYearData[] GetYearsWithAlbums()
        {
            return CTunesModel.GetYearsWithAlbums(this.m_strConnection);
        }

        #endregion

        #region Favorites

        public CFavorite[] GetFavoritesByFavoritId(int iLimit, int iFavoriteId, string strBenutzer)
        {
            return CTunesModel.GetFavoritesByFavoritId(iLimit, iFavoriteId, strBenutzer, this.m_strConnection);
        }

        #endregion

        #region FullTextSearch

        public SortableCollection<CTrack> GetFullTextSearchCollection(string strSearchstring)
        {
            return CTunesModel.GetFullTextSearchCollection(strSearchstring, this.m_strConnection);
        }

        #endregion

        #region Playlist

        public CTrack[] GetAlbumTracksForPlayListByTitelId(int iTitelId)
        {
            return CTunesModel.GetAlbumTracksForPlayListByTitelId(this.m_strConnection, iTitelId);
        }

        public BSE.Platten.BO.CTrack GetTrackForPlayListByLiedId(int iLiedId)
        {
            return CTunesModel.GetTrackForPlayListByLiedId(this.m_strConnection, iLiedId);
        }

        public CPlaylist[] GetPlaylistsByUserName(string userName)
        {
            return CTunesModel.GetPlaylistsByUserName(this.m_strConnection, userName);
        }

        public CPlaylist GetPlayListByPlayListId(int iPlayListId)
        {
            return CTunesModel.GetPlayListByPlayListId(this.m_strConnection, iPlayListId);
        }

        public CPlaylist InsertPlaylist(CPlaylist playList)
        {
            if (playList == null)
            {
                throw new ArgumentNullException(
                    string.Format(
                    CultureInfo.CurrentUICulture,
                    Resources.IDS_ArgumentException,
                    "playList"));
            }
            
            CPlaylist newPlayList = null;
            try
            {
                newPlayList = CTunesModel.InsertPlaylist(this.m_strConnection, playList);
            }
            catch (Exception exception)
            {
                MySql.Data.MySqlClient.MySqlException mySqlException = exception as MySql.Data.MySqlClient.MySqlException;
                if (mySqlException != null)
                {
                    if (mySqlException.Number == 1062)
                    {
                        throw new PlaylistAlreadyExistsException(Resources.IDS_PlaylistAlreadyExistsExceptionMessage, playList.Name);
                    }
                    else
                    {
                        throw;
                    }
                }
                else
                {
                    throw;
                }
            }
            return newPlayList;
        }

        public void SavePlayList(CPlaylist playList)
        {
            CTunesModel.SavePlayList(this.m_strConnection, playList);
        }

        public void DeletePlayList(int iPlayListId)
        {
            CTunesModel.DeletePlayList(this.m_strConnection, iPlayListId);
        }

        #endregion

        #region Filters

        public CFilter[] GetFilterByFilterMode(FilterSettings.FilterMode filterMode)
        {
            return CTunesModel.GetFilterByFilterMode(this.m_strConnection, filterMode);
        }

        public CTrackCollection GetTracksByFilterSettings(FilterSettings filterSettings)
        {
            return CTunesModel.GetTracksByFilterSettings(this.m_strConnection, filterSettings);
        }

        public FilterSettings GetFilterSettings(FilterSettings.FilterMode filterMode, string strBenutzer)
        {
            return CTunesModel.GetFilterSettings(this.m_strConnection, filterMode, strBenutzer);
        }

        public void SaveFilterSettings(FilterSettings filterSettings)
        {
            if (filterSettings == null)
            {
                throw new ArgumentNullException(
                    string.Format(
                    CultureInfo.CurrentUICulture,
                    Resources.IDS_ArgumentException,
                    "filterSettings"));
            }
            
            if (String.IsNullOrEmpty(filterSettings.Value) == true)
            {
                filterSettings.Value = null;
            }
            CTunesModel.SaveFilterSettings(this.m_strConnection, filterSettings);
        }

        #endregion

        #region History

        public void DeleteTracksFromHistory(string strUser)
        {
            CTunesModel.DeleteTracksFromHistory(this.m_strConnection, strUser);
        }

        public SortableCollection<CHistoryTrack> GetHistoryTrackCollection(string strUser)
        {
            return CTunesModel.GetHistoryTrackCollection(this.m_strConnection, strUser);
        }

        public SortableCollection<CHistoryTrack> GetHistoryTrackCollection(HistoryData historyData)
        {
            return CTunesModel.GetHistoryTrackCollection(this.m_strConnection, historyData);
        }

        #endregion

        #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