45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
|
using EDPlayerJournal.Entries;
|
|||
|
|
|||
|
namespace EDPlayerJournal.BGS;
|
|||
|
|
|||
|
public class Transaction : IComparable<Transaction> {
|
|||
|
public List<Entry> Entries { get; } = new List<Entry>();
|
|||
|
|
|||
|
public virtual string CompletedAt {
|
|||
|
get {
|
|||
|
var items = Entries
|
|||
|
.OrderBy(x => x.Timestamp)
|
|||
|
.ToArray()
|
|||
|
;
|
|||
|
if (items == null || items.Length == 0) {
|
|||
|
return "Unknown";
|
|||
|
}
|
|||
|
|
|||
|
Entry last = items.Last();
|
|||
|
return last.Timestamp.ToString("dd.MM.yyyy HH:mm UTC");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Controlling faction of the station this entry was made/turned into.
|
|||
|
/// </summary>
|
|||
|
public string? ControllingFaction { get; set; }
|
|||
|
public string? Station { get; set; }
|
|||
|
public string? System { get; set; }
|
|||
|
public ulong SystemAddress { get; set; }
|
|||
|
public string? Faction { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Whether this transaction type only benefits the controlling faction or not, default: no
|
|||
|
/// </summary>
|
|||
|
public virtual bool OnlyControllingFaction {
|
|||
|
get { return false; }
|
|||
|
}
|
|||
|
|
|||
|
public virtual int CompareTo(Transaction? other) {
|
|||
|
throw new NotImplementedException("not implemented");
|
|||
|
}
|
|||
|
|
|||
|
public string? Name => ToString();
|
|||
|
}
|