using EDPlayerJournal.Entries; namespace EDPlayerJournal.BGS; internal class SellOrganicDataParser : ITransactionParserPart { public void Parse(Entry e, TransactionParserContext context, TransactionParserOptions options, TransactionList transactions) { // If exo biology is ignored, simply do nothing if (options.IgnoreExoBiology) { return; } SellOrganicDataEntry? entry = e as SellOrganicDataEntry; if (entry == null) { throw new NotImplementedException(); } if (context.StationOwner == null) { transactions.AddIncomplete( new OrganicData(), "Could not discern the station owner for organic data sell.", e); return; } // Ignore if its a fleet carrier faction. if (string.Compare(context.StationOwner, Factions.FleetCarrier, StringComparison.OrdinalIgnoreCase) == 0 && options.IgnoreFleetCarrierFaction) { return; } transactions.Add(new OrganicData(entry) { System = context.CurrentSystem, Station = context.CurrentStation, Faction = context.StationOwner, IsLegacy = context.IsLegacy, }); } }