/// <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); } }
/// <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); } }
/// <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); } }
/// <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)); }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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); } }