public async Task OnCreate()
        {
            if (IsValid())
            {
                var dr = _mbs.ShowQuestion($"Do you really want to create {View.NumberOfBotsToCreate} Bots now?");
                if (dr == DialogResult.Yes)
                {
                    View.SetCreateInProgress(true);

                    IExchange exchange = null;
                    if (View.IsBinanceSelected)
                    {
                        exchange = new ExchangeLayer.Implementations.Binance(_keys);
                    }
                    else if (View.IsHuobiSelected)
                    {
                        exchange = new ExchangeLayer.Implementations.Huobi(_keys);
                    }

                    var botMgr = new BotManager(_logger, new XCommasClient(_keys, View.UsePaperTrading), exchange);

                    try
                    {
                        _cancellationTokenSource = new CancellationTokenSource();
                        var cancellationToken = _cancellationTokenSource.Token;
                        await botMgr.CreateBots(View.NumberOfBotsToCreate, View.Enable, _settings, cancellationToken);

                        View.SetCreateInProgress(false);
                        _mbs.ShowInformation("Operation finished! See output section for details.");
                    }
                    catch (Exception exception)
                    {
                        _logger.LogError(exception.Message);
                        _mbs.ShowError("Error: " + exception);
                    }
                    finally
                    {
                        View.SetCreateInProgress(false);
                    }
                }
            }
        }
        public async Task OnPreview()
        {
            if (IsValid())
            {
                View.SetCreateInProgress(true);
                _logger.LogInformation("PREVIEW BEGIN");

                IExchange exchange = null;
                if (View.IsBinanceSelected)
                {
                    exchange = new ExchangeLayer.Implementations.Binance(_keys);
                }
                else if (View.IsHuobiSelected)
                {
                    exchange = new ExchangeLayer.Implementations.Huobi(_keys);
                }

                var botMgr = new BotManager(_logger, new XCommasClient(_keys, View.UsePaperTrading), exchange);

                try
                {
                    _cancellationTokenSource = new CancellationTokenSource();
                    var cancellationToken = _cancellationTokenSource.Token;
                    await botMgr.PreviewBotsCreation(View.NumberOfBotsToCreate, _settings, cancellationToken);

                    View.SetCreateInProgress(false);
                    _mbs.ShowInformation("Operation finished! See output section for details.");
                }
                catch (Exception exception)
                {
                    _logger.LogError(exception.Message);
                    _mbs.ShowError("Error: " + exception);
                }
                finally
                {
                    View.SetCreateInProgress(false);
                }

                _logger.LogInformation("PREVIEW END");
            }
        }