EDBGS/EDPlayerJournal/BGS/Vouchers.cs

75 lines
1.9 KiB
C#

using System.Globalization;
using EDPlayerJournal.Entries;
namespace EDPlayerJournal.BGS;
public class Vouchers : Transaction {
private string? type = null;
public Vouchers() {
}
public Vouchers(RedeemVoucherEntry e) {
Entries.Add(e);
}
public long TotalSum {
get {
if (Faction == null) {
return 0;
}
return Entries
.OfType<RedeemVoucherEntry>()
.ToList()
.Sum(x => (long)x.GetBountyForFaction(Faction))
;
}
}
public string? Type {
get {
if (Entries == null) {
return null;
}
if (type == null) {
string? v = Entries
.OfType<RedeemVoucherEntry>()
.GroupBy(x => x.Type)
.Select(x => x.Key)
.First();
if (v == null) {
return null;
} else if (v == Bonds.CombatBond) {
type = "Combat Bond";
} else if (v == Bonds.Bounty) {
type = "Bounty";
} else {
type = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(v);
}
}
return type;
}
}
public override int CompareTo(Transaction? other) {
if (other == null || other.GetType() != typeof(Vouchers)) {
return -1;
}
Vouchers? b = other as Vouchers;
if (b?.Type == Type &&
b?.Faction == Faction &&
b?.System == System &&
b?.Station == Station) {
return 0;
}
return -1;
}
public override string ToString() {
return string.Format("{0} Vouchers: {1}", Type, Credits.FormatCredits(TotalSum));
}
}