public static BusBuilder ConfigureCore(this BusBuilder busBuilder, bool coinigyEnabled, bool bittrexEnabled, bool poloniexEnabled, bool binanceEnabled, bool bagEnabled, bool dustEnabled) { busBuilder.RegisterCommandHandler <SendMessageCommand, SendMessageHandler>(); busBuilder.RegisterCommandHandler <SendFileCommand, SendFileHandler>(); busBuilder.RegisterCommandHandler <SendHelpMessageCommand, HelpMessageHandler>(); busBuilder.RegisterCommandHandler <PairProfitCommand, PairProfitHandler>(); busBuilder.RegisterCommandHandler <ExcelExportCommand, ExcelExportHandler>(); busBuilder.RegisterCommandHandler <TradeNotificationCommand, TradeNotificationHandler>(); busBuilder.RegisterQueryHandler <LastCheckedQuery, LastCheckedResponse, LastCheckedHandler>(); busBuilder.RegisterQueryHandler <FindNewTradeQuery, FindNewTradesResponse, SaveAndFindNewTradesHandler>(); busBuilder.RegisterQueryHandler <TradeProfitQuery, TradesProfitResponse, TradeProfitHandler>(); busBuilder.RegisterCommandHandler <AddLastCheckedCommand, AddLastCheckedHandler>(); busBuilder.RegisterCommandHandler <SendBalanceInfoCommand, SendBalanceInfoCommandHandler>(); if (coinigyEnabled) { busBuilder.RegisterEventHandler <BalanceCheckEvent, CoinigyBalanceHandler>(); busBuilder.RegisterCommandHandler <SendCoinigyAccountInfoCommand, CoinigyAccountInfoHandler>(); busBuilder.RegisterCommandHandler <GetCoinigyAccountCommand, GetCoinigyAccountHandler>(); } if (poloniexEnabled) { busBuilder.RegisterEventHandler <NewTradesCheckEvent, PoloniexNewOrderCheckHandler>(); busBuilder.RegisterEventHandler <BalanceCheckEvent, PoloniexBalanceCheckHandler>(); busBuilder.RegisterCommandHandler <ResetPoloniexTrades, PoloniexResetAllTradesHandler>(); } if (bittrexEnabled) { busBuilder.RegisterCommandHandler <BittrexTradeExportCommand, BittrexTradeExportHandler>(); busBuilder.RegisterEventHandler <NewTradesCheckEvent, BittrexNewOrderCheckHandler>(); busBuilder.RegisterEventHandler <BalanceCheckEvent, BittrexBalanceCheckHandler>(); } if ((bagEnabled || dustEnabled) && bittrexEnabled) { busBuilder.RegisterEventHandler <BagAndDustEvent, BittrexBagAndDustHandler>(); busBuilder.RegisterEventHandler <DepositAndWithdrawalEvent, BittrexDepositWithdrawalHandler>(); } if ((bagEnabled || dustEnabled) && poloniexEnabled) { busBuilder.RegisterEventHandler <BagAndDustEvent, PoloniexBagAndDustHandler>(); busBuilder.RegisterEventHandler <DepositAndWithdrawalEvent, PoloniexDepositWithdrawalHandler>(); } return(busBuilder); }