public SerializableWalletJournalListItem ToXMLItem() { // This is never actually used in EveMon! string argName1 = string.Empty; long argId1 = 0L; // Populate arguments from the extra data based on the ref type // See http://eveonline-third-party-documentation.readthedocs.io/en/latest/xmlapi/constants.html#reference-type switch (refType) { case EsiRefTypeString.player_trading: argId1 = ContextID; break; case EsiRefTypeString.market_transaction: argName1 = ContextID.ToString(CultureInfo.InvariantCulture); break; case EsiRefTypeString.office_rental_fee: case EsiRefTypeString.brokers_fee: case EsiRefTypeString.jump_clone_installation_fee: case EsiRefTypeString.jump_clone_activation_fee: case EsiRefTypeString.reprocessing_tax: argName1 = "EVE System"; argId1 = 1L; break; case EsiRefTypeString.bounty_prize: argId1 = ContextID; break; case EsiRefTypeString.insurance: argName1 = ContextID.ToString(CultureInfo.InvariantCulture); break; case EsiRefTypeString.agent_mission_reward: case EsiRefTypeString.agent_mission_time_bonus_reward: case EsiRefTypeString.cspa: case EsiRefTypeString.corporation_account_withdrawal: case EsiRefTypeString.medal_creation: case EsiRefTypeString.medal_issued: argId1 = ContextID; break; case EsiRefTypeString.corporation_logo_change_cost: argId1 = ContextID; break; case EsiRefTypeString.alliance_maintainance_fee: argId1 = ContextID; break; case EsiRefTypeString.manufacturing: argName1 = ContextID.ToString(CultureInfo.InvariantCulture); break; case EsiRefTypeString.contract_auction_bid: case EsiRefTypeString.contract_auction_bid_refund: case EsiRefTypeString.contract_price: case EsiRefTypeString.contract_brokers_fee: case EsiRefTypeString.contract_sales_tax: case EsiRefTypeString.contract_deposit: case EsiRefTypeString.contract_price_payment_corp: case EsiRefTypeString.contract_brokers_fee_corp: case EsiRefTypeString.contract_deposit_corp: case EsiRefTypeString.contract_deposit_refund: argName1 = ContextID.ToString(CultureInfo.InvariantCulture); break; case EsiRefTypeString.bounty_prizes: argId1 = ContextID; break; case EsiRefTypeString.planetary_import_tax: case EsiRefTypeString.planetary_export_tax: argId1 = ContextID; // Planet name available from geography argName1 = StaticGeography.GetPlanetByID((int)ContextID)?.Name ?? EveMonConstants.UnknownText; break; case EsiRefTypeString.industry_job_tax: argId1 = ContextID; break; default: // Empty break; } return(new SerializableWalletJournalListItem() { Amount = Amount, ArgID1 = argId1, ArgName1 = argName1, Balance = Balance, Date = Date, ID = ID, Reason = Reason, OwnerID1 = OwnerID1, OwnerID2 = OwnerID2, RefTypeID = RefTypeID, TaxAmount = TaxAmount, TaxReceiverID = TaxReceiverID }); }