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
|
|
|
|
|
|
|
|
|
namespace NonaBGS.BGS {
|
|
|
|
|
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 int TotalSum {
|
|
|
|
|
get {
|
|
|
|
|
return Entries
|
|
|
|
|
.Where(x => x.GetType() == typeof(RedeemVoucherEntry))
|
|
|
|
|
.Sum(x => (x as RedeemVoucherEntry).Amount)
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
type = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(v);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return type;
|
2021-07-09 11:03:30 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-08-04 17:50:46 +02:00
|
|
|
|
public override int CompareTo(LogEntry other) {
|
|
|
|
|
if (other.GetType() != typeof(Vouchers)) {
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var b = other as Vouchers;
|
|
|
|
|
if (b.Type == Type) {
|
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Vouchers only help the controlling faction
|
|
|
|
|
/// </summary>
|
|
|
|
|
public override bool OnlyControllingFaction => true;
|
|
|
|
|
}
|
|
|
|
|
}
|