/// <summary>
        /// Determines whether a root folder already exists with specified type and path
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemType">Type associated with the desired root folders</param>
        /// <param name="path">Path to the desired root folder</param>
        /// <returns>True if a root folder already exists with specified type and path, false if not</returns>
        public static Boolean RootFolderPathExists(SqlConnection conn, Business.MediaItemTypeEnum mediaItemType, String path)
        {
            List <sp.Parameter> parameters = new List <sp.Parameter>();

            parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));
            parameters.Add(new sp.Parameter("Path", DbType.String, path));

            return((Boolean)SqlDbObject.ExecuteScalar("RootFolderPathExists", CommandType.StoredProcedure, parameters.ToArray(), conn));
        }
        /// <summary>
        /// Deletes a root folder from the database
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemType">Type associated with the root folder being deleted</param>
        /// <param name="priority">Priority of the root folder being deleted</param>
        public static void DeleteRootFolder(SqlConnection conn, Business.MediaItemTypeEnum mediaItemType, Int16 priority)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));
                parameters.Add(new sp.Parameter("Priority", DbType.Int16, priority));

                SqlDbObject.ExecuteNonQuery("DeleteRootFolder", CommandType.StoredProcedure, parameters.ToArray(), conn);
            }
            catch (System.Exception e)
            {
                throw new DeleteSqlDbObjectException("Could not delete root folder", e);
            }
        }
示例#3
0
        /// <summary>
        /// Deletes the media item with the specified Id from the database
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemId">Unique identifier of the media item being deleted</param>
        /// <param name="type">Type of media item being deleted</param>
        public static void DeleteMediaItem(SqlConnection conn, Int64 mediaItemId, Business.MediaItemTypeEnum type)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("MediaItemId", DbType.Int64, mediaItemId));
                parameters.Add(new sp.Parameter("Type", DbType.Int16, Convert.ToInt16(type)));

                SqlDbObject.ExecuteNonQuery("DeleteMediaItem", CommandType.StoredProcedure, parameters.ToArray(), conn);
            }
            catch (System.Exception e)
            {
                throw new DeleteSqlDbObjectException("Could not delete media item from database", e);
            }
        }
        /// <summary>
        /// Deletes a tag from the specfied root folder
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemType">Type associated with the root folder the tag is being deleted from</param>
        /// <param name="rootFolderPriority">Priority of the root folder the tags are being loaded for</param>
        /// <param name="tag">Tag being added to the root folder</param>
        public static void DeleteRootFolderTag(SqlConnection conn, Business.MediaItemTypeEnum mediaItemType, Int16 rootFolderPriority, String tag)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("RootFolderPriority", DbType.Int16, rootFolderPriority));
                parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));
                parameters.Add(new sp.Parameter("Tag", DbType.String, tag));

                SqlDbObject.ExecuteNonQuery("DeleteRootFolderTag", CommandType.StoredProcedure, parameters.ToArray(), conn);
            }
            catch (System.Exception e)
            {
                throw new SpecifiedSqlDbObjectNotFoundException("Could not delete tag from root folder", e);
            }
        }
示例#5
0
        /// <summary>
        /// Adds a tag to the specfied media item
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemId">Unique identifier of the media item the tag is being added to</param>
        /// <param name="mediaItemType">Type of media item the tag is being added to</param>
        /// <param name="tag">Tag being added to the media item</param>
        public static void AddMediaItemTag(SqlConnection conn, Int64 mediaItemId, Business.MediaItemTypeEnum mediaItemType, String tag)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("MediaItemId", DbType.Int64, mediaItemId));
                parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));
                parameters.Add(new sp.Parameter("Tag", DbType.String, tag));

                SqlDbObject.ExecuteNonQuery("AddMediaItemTag", CommandType.StoredProcedure, parameters.ToArray(), conn);
            }
            catch (System.Exception e)
            {
                throw new SpecifiedSqlDbObjectNotFoundException("Could not add tag to media item", e);
            }
        }
        /// <summary>
        /// Adds a part to the specified media item
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemId">Unique identifier of the media item the part is being added to</param>
        /// <param name="type">Type of media item being the part is being added to</param>
        /// <param name="part">The media item part being added to the media item</param>
        public static void AddMediaItemPart(SqlConnection conn, Int64 mediaItemId, Business.MediaItemTypeEnum mediaItemType, Business.MediaItemPart part)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("Location", DbType.String, part.Location.Value));
                parameters.Add(new sp.Parameter("MediaItemId", DbType.Int64, mediaItemId));
                parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));
                parameters.Add(new sp.Parameter("Size", DbType.Int64, part.Size));
                parameters.Add(new sp.Parameter("Duration", DbType.Int32, part.Duration.TotalMilliseconds));
                parameters.Add(new sp.Parameter("Index", DbType.Int16, part.Index));

                SqlDbObject.ExecuteNonQuery("AddMediaItemPart", CommandType.StoredProcedure, parameters.ToArray(), conn);
            }
            catch (System.Exception e)
            {
                throw new AddChildSqlDbObjectToParentException("Could not add part to media item", e);
            }
        }
        /// <summary>
        /// Gets all root folders in the system that are associated with the specified type
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemType">Type associated with the desired root folders</param>
        /// <returns>All root folders in the system that are associated with the specified type</returns>
        public static Business.RootFolder[] GetRootFoldersByType(SqlConnection conn, Business.MediaItemTypeEnum mediaItemType)
        {
            try
            {
                sp.DataTable dt = SqlDbObject.ExecuteReader("GetRootFoldersByType", CommandType.StoredProcedure, new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)), conn);
                List <Business.RootFolder> rootFolders = new List <Business.RootFolder>();

                foreach (sp.DataRow row in dt)
                {
                    rootFolders.Add(Business.RootFolder.FromDataRow(conn, row));
                }

                rootFolders.Sort();
                return(rootFolders.ToArray());
            }
            catch (System.Exception e)
            {
                throw new SpecifiedSqlDbObjectNotFoundException("Could not load root folders", e);
            }
        }
        /// <summary>
        /// Loads the parts for the specfied media item
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemId">Unique identifier of the media item</param>
        /// <param name="mediaItemType">Type of the media item</param>
        /// <returns>Collection of parts belonging to the specified media item, sorted ascendingly</returns>
        public static Business.MediaItemPartCollection GetMediaItemPartsById(SqlConnection conn, Int64 mediaItemId, Business.MediaItemTypeEnum mediaItemType)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("MediaItemId", DbType.Int64, mediaItemId));
                parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));

                sp.DataTable table = SqlDbObject.ExecuteReader("GetMediaItemPartsById", CommandType.StoredProcedure, parameters.ToArray(), conn);
                Business.MediaItemPartCollection parts = new Business.MediaItemPartCollection();

                foreach (sp.DataRow row in table)
                {
                    IntelligentString location     = (String)row["Location"];
                    Int64             size         = (Int64)row["Size"];
                    Int32             milliseconds = (Int32)row["Duration"];
                    Int16             index        = (Int16)row["Index"];

                    parts.Add(location, size, milliseconds, index);
                }

                parts.Sort();
                return(parts);
            }
            catch (System.Exception e)
            {
                throw new SpecifiedSqlDbObjectNotFoundException("Could not load play history for media item", e);
            }
        }
示例#9
0
 /// <summary>
 /// Loads the parts for the specfied media item
 /// </summary>MediaItemPartLocationExists
 /// <param name="mediaItemId">Unique identifier of the media item</param>
 /// <param name="mediaItemType">Type of the media item</param>
 /// <returns>Collection of parts belonging to the specified media item, sorted ascendingly</returns>
 internal static Business.MediaItemPartCollection GetMediaItemPartsById(SqlConnection conn, Int64 mediaItemId, Business.MediaItemTypeEnum mediaItemType)
 {
     return(Data.MediaItemPart.GetMediaItemPartsById(conn, mediaItemId, mediaItemType));
 }
示例#10
0
        /// <summary>
        /// Loads the tags for the specfied root folder
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemType">Type associated with the root folder the tags are being loaded for</param>
        /// <param name="rootFolderPriority">Priority of the root folder the tags are being loaded for</param>
        /// <returns>Collection of tags assigned to the specified root folder, sorted ascendingly</returns>
        public static IntelligentString[] GetRootFolderTagsByPriority(SqlConnection conn, Business.MediaItemTypeEnum mediaItemType, Int16 rootFolderPriority)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("RootFolderPriority", DbType.Int16, rootFolderPriority));
                parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));

                sp.DataTable             table = SqlDbObject.ExecuteReader("GetRootFolderTagsByPriority", CommandType.StoredProcedure, parameters.ToArray(), conn);
                List <IntelligentString> tags  = new List <IntelligentString>();

                foreach (sp.DataRow row in table)
                {
                    tags.Add((String)row["Tag"]);
                }

                tags.Sort();
                return(tags.ToArray());
            }
            catch (System.Exception e)
            {
                throw new SpecifiedSqlDbObjectNotFoundException("Could not load tags for root folder", e);
            }
        }
示例#11
0
        /// <summary>
        /// Gets the root folder from the database with the specified priority
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemType">Type of media item the desired root folder is associated with</param>
        /// <param name="priority">Priority of the desired root folder</param>
        /// <returns>Root folder in the database with the specified priority</returns>
        public static Business.RootFolder GetRootFolderByPriority(SqlConnection conn, Business.MediaItemTypeEnum mediaItemType, Int16 priority)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));
                parameters.Add(new sp.Parameter("Priority", DbType.Int16, priority));

                sp.DataTable dt = SqlDbObject.ExecuteReader("GetRootFolderByPriority", CommandType.StoredProcedure, parameters.ToArray(), conn);

                if (dt.RowCount == 1)
                {
                    return(Business.RootFolder.FromDataRow(conn, dt[0]));
                }
                else
                {
                    throw new SpecifiedSqlDbObjectNotFoundException("GetRootFolderByPriority returned " + dt.RowCount.ToString() + " rows");
                }
            }
            catch (System.Exception e)
            {
                throw new SpecifiedSqlDbObjectNotFoundException("Could not load specified root folder", e);
            }
        }
示例#12
0
        /// <summary>
        /// Loads the play history for the specfied media item
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemId">Unique identifier of the media item having it's play history loaded</param>
        /// <param name="mediaItemType">Type of media item having it's play history loaded</param>
        /// <returns>Collection of dates and times the specified media item has been played, sorted ascendingly</returns>
        public static DateTime[] GetMediaItemPlayHistoryById(SqlConnection conn, Int64 mediaItemId, Business.MediaItemTypeEnum mediaItemType)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("MediaItemId", DbType.Int64, mediaItemId));
                parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));

                sp.DataTable    table       = SqlDbObject.ExecuteReader("GetMediaItemPlayHistoryById", CommandType.StoredProcedure, parameters.ToArray(), conn);
                List <DateTime> playHistory = new List <DateTime>();

                foreach (sp.DataRow row in table)
                {
                    playHistory.Add((DateTime)row["DatePlayed"]);
                }

                playHistory.Sort();
                return(playHistory.ToArray());
            }
            catch (System.Exception e)
            {
                throw new SpecifiedSqlDbObjectNotFoundException("Could not load play history for media item", e);
            }
        }
示例#13
0
        /// <summary>
        /// Adds a date and time to the specified media item
        /// </summary>
        /// <param name="conn">Open connection to the database</param>
        /// <param name="mediaItemId">Unique identifier of the media item having it's play history updated</param>
        /// <param name="mediaItemType">Type of media item having it's play history updated</param>
        /// <param name="datePlayed">Date and time the media item was played to the end</param>
        public static void AddMediaItemPlayHistory(SqlConnection conn, Int64 mediaItemId, Business.MediaItemTypeEnum mediaItemType, DateTime datePlayed)
        {
            try
            {
                List <sp.Parameter> parameters = new List <sp.Parameter>();
                parameters.Add(new sp.Parameter("MediaItemId", DbType.Int64, mediaItemId));
                parameters.Add(new sp.Parameter("MediaItemType", DbType.Int16, Convert.ToInt16(mediaItemType)));
                parameters.Add(new sp.Parameter("DatePlayed", DbType.DateTime, datePlayed));

                SqlDbObject.ExecuteNonQuery("AddMediaItemPlayHistory", CommandType.StoredProcedure, parameters.ToArray(), conn);
            }
            catch (System.Exception e)
            {
                throw new AddChildSqlDbObjectToParentException("Could not add play history item", e);
            }
        }