using System;
using System.Xml;
namespace Server.Accounting
{
public class AccountComment
{
private string m_Content;
///
/// Constructs a new AccountComment instance.
///
/// Initial AddedBy value.
/// Initial Content value.
public AccountComment(string addedBy, string content)
{
AddedBy = addedBy;
m_Content = content;
LastModified = DateTime.UtcNow;
}
///
/// Deserializes an AccountComment instance from an xml element.
///
/// The XmlElement instance from which to deserialize.
public AccountComment(XmlElement node)
{
AddedBy = Utility.GetAttribute(node, "addedBy", "empty");
LastModified = Utility.GetXMLDateTime(Utility.GetAttribute(node, "lastModified"), DateTime.UtcNow);
m_Content = Utility.GetText(node, "");
}
///
/// A string representing who added this comment.
///
public string AddedBy { get; }
///
/// Gets or sets the body of this comment. Setting this value will reset LastModified.
///
public string Content
{
get => m_Content;
set
{
m_Content = value;
LastModified = DateTime.UtcNow;
}
}
///
/// The date and time when this account was last modified -or- the comment creation time, if never modified.
///
public DateTime LastModified { get; private set; }
///
/// Serializes this AccountComment instance to an XmlTextWriter.
///
/// The XmlTextWriter instance from which to serialize.
public void Save(XmlTextWriter xml)
{
xml.WriteStartElement("comment");
xml.WriteAttributeString("addedBy", AddedBy);
xml.WriteAttributeString("lastModified", XmlConvert.ToString(LastModified, XmlDateTimeSerializationMode.Utc));
xml.WriteString(m_Content);
xml.WriteEndElement();
}
}
}