EliteBGS/BGS/Vouchers.cs

68 lines
1.9 KiB
C#
Raw Permalink Normal View History

2021-08-04 17:39:57 +02:00
using System.Linq;
using System.Globalization;
2021-08-25 16:36:57 +02:00
using EDJournal;
2021-07-09 11:03:30 +02:00
2021-11-10 21:24:39 +01:00
namespace EliteBGS.BGS {
2021-07-09 11:03:30 +02:00
public class Vouchers : LogEntry {
2021-08-04 17:39:57 +02:00
private string type = null;
2021-07-09 11:03:30 +02:00
public Vouchers() {
}
public Vouchers(RedeemVoucherEntry e) {
Entries.Add(e);
}
public long TotalSum {
2021-07-09 11:03:30 +02:00
get {
return Entries
.OfType<RedeemVoucherEntry>()
.Where(x => x.FactionBounties.ContainsKey(Faction))
.Sum(x => x.FactionBounties[Faction])
2021-07-09 11:03:30 +02:00
;
}
}
public string Type {
get {
2021-08-04 17:39:57 +02:00
if (type == null) {
string v = Entries
.Where(x => x.GetType() == typeof(RedeemVoucherEntry))
.GroupBy(x => (x as RedeemVoucherEntry).Type)
.Select(x => x.Key)
.First();
if (v == "CombatBond") {
type = "Combat Bond";
} else if (v == "bounty") {
type = "Bounty";
} else {
type = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(v);
}
2021-08-04 17:39:57 +02:00
}
return type;
2021-07-09 11:03:30 +02:00
}
}
public override int CompareTo(LogEntry 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;
}
2021-07-09 11:03:30 +02:00
public override string ToString() {
2021-08-04 17:39:57 +02:00
return string.Format("{0} Vouchers: {1}", Type, Credits.FormatCredits(TotalSum));
2021-07-09 11:03:30 +02:00
}
}
}