screwturn-4/PluginFramework/Message.cs
2009-09-30 13:47:13 +00:00

131 lines
3.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace ScrewTurn.Wiki.PluginFramework {
/// <summary>
/// Represents a Page Discussion Message.
/// </summary>
public class Message {
/// <summary>
/// The Message ID.
/// </summary>
protected int id;
/// <summary>
/// The Username.
/// </summary>
protected string username;
/// <summary>
/// The Subject.
/// </summary>
protected string subject;
/// <summary>
/// The Date/Time.
/// </summary>
protected DateTime dateTime;
/// <summary>
/// The Body.
/// </summary>
protected string body;
/// <summary>
/// The Replies.
/// </summary>
protected Message[] replies = new Message[0];
/// <summary>
/// Initializes a new instance of the <b>Message</b> class.
/// </summary>
/// <param name="id">The ID of the Message.</param>
/// <param name="username">The Username of the User.</param>
/// <param name="subject">The Subject of the Message.</param>
/// <param name="dateTime">The Date/Time of the Message.</param>
/// <param name="body">The body of the Message.</param>
public Message(int id, string username, string subject, DateTime dateTime, string body) {
this.id = id;
this.username = username;
this.subject = subject;
this.dateTime = dateTime;
this.body = body;
}
/// <summary>
/// Gets or sets the Message ID.
/// </summary>
public int ID {
get { return id; }
set { id = value; }
}
/// <summary>
/// Gets or sets the Username.
/// </summary>
public string Username {
get { return username; }
set { username = value; }
}
/// <summary>
/// Gets or sets the Subject.
/// </summary>
public string Subject {
get { return subject; }
set { subject = value; }
}
/// <summary>
/// Gets or sets the Date/Time.
/// </summary>
public DateTime DateTime {
get { return dateTime; }
set { dateTime = value; }
}
/// <summary>
/// Gets or sets the Body.
/// </summary>
public string Body {
get { return body; }
set { body = value; }
}
/// <summary>
/// Gets or sets the Replies.
/// </summary>
public Message[] Replies {
get { return replies; }
set { replies = value; }
}
}
/// <summary>
/// Compares two Message object using their Date/Time as parameter.
/// </summary>
public class MessageDateTimeComparer : IComparer<Message> {
bool reverse = false;
/// <summary>
/// Initializes a new instance of the <b>MessageDateTimeComparer</b> class.
/// </summary>
/// <param name="reverse">True to compare in reverse order (bigger to smaller).</param>
public MessageDateTimeComparer(bool reverse) {
this.reverse = reverse;
}
/// <summary>
/// Compares two Message objects.
/// </summary>
/// <param name="x">The first object.</param>
/// <param name="y">The second object.</param>
/// <returns>The result of the comparison (1, 0 or -1).</returns>
public int Compare(Message x, Message y) {
if(!reverse) return x.DateTime.CompareTo(y.DateTime);
else return y.DateTime.CompareTo(x.DateTime);
}
}
}