ezet / evelib

Eve Online Library.NET is an open source C# wrapper for CCPs Eve Online API and other popular Eve Online APIs.
Apache License 2.0
71 stars 36 forks source link

AccountStatus/MultiCharacterTraining node is not implemented correctly [Solution attached] #44

Closed GyalaFrey closed 9 years ago

GyalaFrey commented 9 years ago

I rewrote the affected code section and include it here for review and incorporation into the source.

public class AccountStatus {
    /// <summary>
    ///     Gets PaidUntil
    /// </summary>
    /// <value>The paid until.</value>
    [XmlIgnore]
    public DateTime PaidUntil { get; private set; }

    /// <summary>
    ///     Gets or sets PaidUntil as a string
    /// </summary>
    /// <value>The paid until as string.</value>
    [XmlElement("paidUntil")]
    public string PaidUntilAsString {
        get { return PaidUntil.ToString(XmlHelper.DateFormat); }
        set { PaidUntil = DateTime.ParseExact(value, XmlHelper.DateFormat, null); }
    }

    /// <summary>
    ///     Gets CreationDate
    /// </summary>
    /// <value>The creation date.</value>
    [XmlIgnore]
    public DateTime CreationDate { get; private set; }

    /// <summary>
    ///     Gets or sets CreationDate as a string
    /// </summary>
    /// <value>The creation date as string.</value>
    [XmlElement("createDate")]
    public string CreationDateAsString {
        get { return CreationDate.ToString(XmlHelper.DateFormat); }
        set { CreationDate = DateTime.ParseExact(value, XmlHelper.DateFormat, null); }
    }

    /// <summary>
    ///     Gets or sets LogonCount
    /// </summary>
    /// <value>The logon count.</value>
    [XmlElement("logonCount")]
    public int LogonCount { get; set; }

    /// <summary>
    ///     Gets or sets LogonMinutes
    /// </summary>
    /// <value>The logon minutes.</value>
    [XmlElement("logonMinutes")]
    public int LogonMinutes { get; set; }

    /// <summary>
    ///     Gets or sets the MultiCharacterTraining row set
    /// </summary>
    /// <value>The multi character training.</value>
    [XmlElement("rowset")]
    public EveXmlRowCollection<MultiCharacterTraining> MultiCharacterTraining { get; set; }
}

/// <summary>
///     Multi Character Training
/// </summary>
[Serializable]
[XmlRoot("row", IsNullable = false)]
public class MultiCharacterTraining {
    /// <summary>
    ///     Gets or sets TrainingEnd
    /// </summary>
    /// <value>The training end.</value>
    [XmlIgnore]
    public DateTime TrainingEnd { get; set; }

    /// <summary>
    ///     Gets or sets TrainingEnd as a string
    /// </summary>
    /// <value>The training end date as string.</value>
    [XmlAttribute("trainingEnd")]
    public string TrainingEndAsString {
        get { return TrainingEnd.ToString(XmlHelper.DateFormat); }
        set { TrainingEnd = DateTime.ParseExact(value, XmlHelper.DateFormat, null); }
    }
}