IW4M-Admin/Plugins/MessageBoard/Thread.cs

153 lines
4.8 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
namespace MessageBoard
{
public class Post : ForumThread
{
/// <summary>
/// Initial creation
/// </summary>
/// <param name="title"></param>
/// <param name="content"></param>
/// <param name="author"></param>
/// <param name="parentThread"></param>
///
public int threadid;
public Post(string title, int threadid, string content, User author) : base (title, content, author, null)
{
this.threadid = threadid;
}
public Post(int id, int threadid, bool visible, string title, string content, User author, DateTime creationDate, DateTime updatedDate) : base(id, title, visible, content, 0, author, null, creationDate, updatedDate)
{
this.lastModificationString = SharedLibrary.Utilities.timePassed(creationDate);
this.threadid = threadid;
}
}
public class Category : Identifiable
{
public int id { get; private set; }
public string title { get; private set; }
public string description { get; private set; }
public List<Permission> permissions { get; private set; }
public Category(string title, string description)
{
this.title = title;
this.description = description;
this.permissions = new List<Permission>();
id = 0;
}
public Category(int id, string title, string description, List<Permission> permissions)
{
this.title = title;
this.description = description;
this.id = id;
this.permissions = permissions;
}
public int getID()
{
return id;
}
}
public class ForumThread : Identifiable
{
public string title { get; private set; }
public string content { get; private set; }
public string formattedContent { get; private set; }
public User author { get; private set; }
public Category threadCategory { get; private set; }
public DateTime creationDate { get; private set; }
public DateTime updatedDate;
public string lastModificationString { get; protected set; }
public int id { get; private set; }
public int replies;
public bool visible = true;
/// <summary>
/// Initial creation
/// </summary>
/// <param name="title"></param>
/// <param name="content"></param>
/// <param name="author"></param>
public ForumThread(string title, string content, User author, Category threadCategory)
{
if (content.Length == 0)
throw new Exceptions.ThreadException("Post is empty");
if (author == null)
throw new Exceptions.ThreadException("No author of post");
if (title.Length == 0)
throw new Exceptions.ThreadException("Title is empty");
this.title = title;
this.content = content;
this.author = author;
this.threadCategory = threadCategory;
creationDate = DateTime.Now;
updatedDate = DateTime.Now;
replies = 0;
id = 0;
}
/// <summary>
/// Loading from database
/// </summary>
/// <param name="id"></param>
/// <param name="title"></param>
/// <param name="content"></param>
/// <param name="author"></param>
/// <param name="creationDate"></param>
public ForumThread(int id, string title, bool visible, string content, int replies, User author, Category threadCategory, DateTime creationDate, DateTime updatedDate)
{
this.id = id;
this.replies = replies;
this.title = title;
this.content = content;
this.formattedContent = CodeKicker.BBCode.BBCode.ToHtml(this.content);
this.author = author;
this.threadCategory = threadCategory;
this.creationDate = creationDate;
this.updatedDate = updatedDate;
this.lastModificationString = SharedLibrary.Utilities.timePassed(updatedDate);
this.visible = visible;
}
public int getID()
{
return id;
}
public bool updateContent(string content)
{
if (content != null && content.Length > 0)
{
this.content = content;
return true;
}
return false;
}
public bool updateTitle(string title)
{
if (title != null && title.Length > 0)
{
this.title = title;
return true;
}
return false;
}
}
}