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() .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); } } }