/// <summary>
        /// Inserts Comment into the Comments Table
        /// </summary>
        /// <param name="comment">A new populated comment.</param>
        /// <returns>Insert Count</returns>
        public int Insert(Comment comment)
        {
            DbParameter outParameter = database.MakeParameter("@Identity", 0, ParameterDirection.Output);

            List<DbParameter> parameters = new List<DbParameter>
            {
                    database.MakeParameter("@Name",comment.Name),
                    database.MakeParameter("@Email",comment.Email),
                    database.MakeParameter("@SiteUrl",comment.SiteUrl),
                    database.MakeParameter("@Ip",comment.Ip),
                    database.MakeParameter("@UserAgent",comment.UserAgent),
                    database.MakeParameter("@CommentStatus",comment.CommentStatus.ToString()),
                    database.MakeParameter("@Text",comment.Text),
                    database.MakeParameter("@CommentDate",comment.CommentDate),
                    database.MakeParameter("@UserId",comment.UserId),
                    database.MakeParameter("@ParentId",comment.ParentId),
                    database.MakeParameter("@MediaId",comment.MediaId),
                    outParameter
            };

            database.NonQuery("Comment_Insert", parameters);
            return Convert.ToInt32(outParameter.Value);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="MediaComments"/> class.
 /// </summary>
 /// <param name="media">The media.</param>
 /// <param name="comment">The comment.</param>
 public MediaComments(Media media, Comment comment)
 {
     Media = media;
     Comment = comment;
 }
        /// <summary>
        /// Renders the comment status.
        /// </summary>
        /// <param name="comment">The comment.</param>
        /// <returns></returns>
        public string RenderCommentStatus(Comment comment)
        {
            const string statusFormat = "<span class=\"{0}\">{1}</span>";

            string status = string.Format(statusFormat, "green", comment.CommentStatus);
            status = (comment.CommentStatus == CommentStatus.Pending ? string.Format(statusFormat, "orange", comment.CommentStatus) : status);
            status = (comment.CommentStatus == CommentStatus.Spam ? string.Format(statusFormat, "red", comment.CommentStatus) : status);

            return status;
        }
 /// <summary>
 /// Renders the author details.
 /// </summary>
 /// <param name="comment">The comment.</param>
 /// <returns></returns>
 public string RenderAuthorDetails(Comment comment)
 {
     return string.Format(" {0}{1}{2}{3}", RenderCommentStatus(comment),
                          (string.IsNullOrEmpty(comment.Name) ? string.Empty : (string.IsNullOrEmpty(comment.SiteUrl) ? "<br />" +comment.Name : string.Format("<br /><a href=\"{0}\" title=\"Visit {1}\" >{1}</a>", comment.SiteUrl, comment.Name))),
                          (string.IsNullOrEmpty(comment.Email) ? string.Empty : string.Format("<br /><a href=\"mailto:{0}\" title=\"Email {1}\" >{2}</a>", comment.Email, comment.Name, comment.Email)),
                          (string.IsNullOrEmpty(comment.Ip) ? string.Empty : "<br />" + comment.Ip));
 }
 //
 /// <summary>
 /// Delete a Comment by the primary key
 /// </summary>
 /// <param name="comment"></param>
 public int Delete(Comment comment)
 {
     return database.NonQuery("Comment_Delete", new{comment.CommentId});
 }
 /// <summary>
 /// Updates the Comment table by the primary key, if the Comment is dirty then an update will occur
 /// </summary>
 /// <param name="comment">a populated comment</param>
 /// <returns>update count</returns>
 public int Update(Comment comment)
 {
     int updateCount = database.NonQuery("Comment_Update", comment);
     return updateCount;
 }
 /// <summary>
 /// Saves the specified comment.
 /// </summary>
 /// <param name="comment">The comment.</param>
 public void Save(Comment comment)
 {
     if (comment.CommentId > 0)
     {
         Update(comment);
     }
     else
     {
         Insert(comment);
     }
 }