131 lines
3.1 KiB
C#
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);
|
|
}
|
|
}
|
|
|
|
}
|