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 override bool SystemContribution { get { if (Faction == Factions.PilotsFederation && Type == "Combat Bond") { return true; } return false; } } public long TotalSum { get { if (Faction == null) { return 0; } return Entries .OfType() .ToList() .Sum(x => (long)x.GetBountyForFaction(Faction)) ; } } public string? Type { get { if (Entries == null) { return null; } if (type == null) { string? v = Entries .OfType() .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)); } }