31 lines
1.0 KiB
C#
31 lines
1.0 KiB
C#
using EDPlayerJournal.Entries;
|
|
|
|
namespace EDPlayerJournal.BGS.Parsers;
|
|
|
|
internal class PowerplayMeritsParser : ITransactionParserPart {
|
|
public void Parse(Entry entry, TransactionParserContext context, TransactionParserOptions options, TransactionList transactions) {
|
|
PowerplayMeritsEntry? e = entry as PowerplayMeritsEntry;
|
|
if (e == null) {
|
|
throw new ApplicationException("not a valid PowerplayMerits entry");
|
|
}
|
|
|
|
MeritsGained? transaction = null;
|
|
|
|
transaction = transactions
|
|
.OfType<MeritsGained>()
|
|
.Where(x => x.System == context.CurrentSystem &&
|
|
x.Power == e.Power)
|
|
.FirstOrDefault()
|
|
;
|
|
if (transaction == null) {
|
|
transaction = new MeritsGained(e) {
|
|
System = context.CurrentSystem,
|
|
Power = e.Power,
|
|
Faction = e.Power,
|
|
};
|
|
transactions.Add(transaction);
|
|
} else {
|
|
transaction.Entries.Add(e);
|
|
}
|
|
}
|
|
} |