protected async override void OnPublished(object data) { IsBusy = true; try { Strategy = await strategyService.GetStrategy(Title).ConfigureAwait(true); strategyAssemblyManager.Activate(Strategy, ViewModelContext.UiDispatcher, Logger); StrategyDisplayViewModel = (StrategyDisplayViewModelBase)strategyAssemblyManager.StrategyDisplayViewModel; ObserveStrategy(); RaiseStrategyDisplayEvent(); AccountViewModel.Dispatcher = ViewModelContext.UiDispatcher; SymbolsViewModel.Dispatcher = ViewModelContext.UiDispatcher; StrategyParametersViewModel.Dispatcher = ViewModelContext.UiDispatcher; StrategyParametersViewModel.Strategy = Strategy; var account = new Account(new CoreModel.AccountInfo { User = new CoreModel.User() }); if (Strategy.StrategySubscriptions.Any()) { var strategySubscription = Strategy.StrategySubscriptions.First(); account.AccountName = strategySubscription.AccountName; account.ApiKey = strategySubscription.ApiKey; account.ApiSecret = strategySubscription.SecretKey; account.ApiPassPhrase = strategySubscription.ApiPassPhrase; account.Exchange = strategySubscription.Exchange; } GetServerMonitors(); await Task.WhenAll(SymbolsViewModel.GetStrategySymbols(Strategy), AccountViewModel.Login(account)).ConfigureAwait(false); } catch (Exception ex) { Logger.Log($"OnPublished {ex.Message}", Prism.Logging.Category.Exception, Prism.Logging.Priority.High); ShowMessage(new Message { MessageType = MessageType.Error, Text = $"Strategy load error. Check configuration. {ex.Message}" }); } finally { IsBusy = false; } }