public void OnTemplateChange(BotSettings botSettings)
        {
            _settings = botSettings == null ? new BotSettingViewModel() : _mapper.Map <BotSettings, BotSettingViewModel>(botSettings);

            View.BindSetting(_settings);
        }
Esempio n. 2
0
        public void BindSetting(BotSettingViewModel botSetting)
        {
            // Accounts will not be bound due to lack of nullable support
            if (botSetting.ExchangeAccountId.HasValue && cmbExchange.Items.Count > 0)
            {
                cmbExchange.SelectedItem = cmbExchange.Items.Cast <Account>().Single(x => x.Id == botSetting.ExchangeAccountId);
            }
            else
            {
                cmbExchange.SelectedItem = null;
            }

            // Deal Start Conditions will not be bound
            RefreshStartConditions(botSetting.DealStartConditions);

            #region Regular DataBinding by code

            chkCheckForExistingBots.DataBindings.Clear();
            chkCheckForExistingBots.DataBindings.Add(nameof(CheckBox.Checked), botSetting, nameof(BotSettingViewModel.SkipExistingPairs));

            chkSkipBlacklistedPairs.DataBindings.Clear();
            chkSkipBlacklistedPairs.DataBindings.Add(nameof(CheckBox.Checked), botSetting, nameof(BotSettingViewModel.SkipBlacklistedPairs));

            chkCheckForBaseStablecoin.DataBindings.Clear();
            chkCheckForBaseStablecoin.DataBindings.Add(nameof(CheckBox.Checked), botSetting, nameof(BotSettingViewModel.SkipBaseStablecoin));

            txtQuoteCurrency.DataBindings.Clear();
            txtQuoteCurrency.DataBindings.Add(nameof(TextBox.Text), botSetting, nameof(BotSettingViewModel.QuoteCurrency));

            cmbStrategy.SelectedIndexChanged -= cmbStrategy_SelectedIndexChanged;
            cmbStrategy.DataBindings.Clear();
            cmbStrategy.DataBindings.Add(nameof(ComboBox.SelectedItem), botSetting, nameof(BotSettingViewModel.Strategy), false, DataSourceUpdateMode.OnPropertyChanged);
            cmbStrategy.SelectedIndexChanged += cmbStrategy_SelectedIndexChanged;

            txtBotname.DataBindings.Clear();
            txtBotname.DataBindings.Add(nameof(TextBox.Text), botSetting, nameof(BotSettingViewModel.Botname), true, DataSourceUpdateMode.OnPropertyChanged);

            cmbStartOrderType.DataBindings.Clear();
            cmbStartOrderType.DataBindings.Add(nameof(ComboBox.SelectedItem), botSetting, nameof(BotSettingViewModel.StartOrderType));

            numBaseOrderVolume.DataBindings.Clear();
            numBaseOrderVolume.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.BaseOrderSize), false, DataSourceUpdateMode.OnPropertyChanged);

            numSafetyOrderVolume.DataBindings.Clear();
            numSafetyOrderVolume.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.SafetyOrderSize), false, DataSourceUpdateMode.OnPropertyChanged);

            numTargetProfit.DataBindings.Clear();
            numTargetProfit.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.TargetProfit), false, DataSourceUpdateMode.OnPropertyChanged);

            chkTrailing.DataBindings.Clear();
            chkTrailing.DataBindings.Add(nameof(CheckBox.Checked), botSetting, nameof(BotSettingViewModel.TrailingEnabled));

            numTrailingDeviation.DataBindings.Clear();
            numTrailingDeviation.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.TrailingDeviation), false, DataSourceUpdateMode.OnPropertyChanged);

            numMaxSafetyTradesCount.DataBindings.Clear();
            numMaxSafetyTradesCount.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.MaxSafetyTradesCount), false, DataSourceUpdateMode.OnPropertyChanged);

            numMaxActiveSafetyTradesCount.DataBindings.Clear();
            numMaxActiveSafetyTradesCount.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.MaxActiveSafetyTradesCount), false, DataSourceUpdateMode.OnPropertyChanged);

            numPriceDeviationToOpenSafetyOrders.DataBindings.Clear();
            numPriceDeviationToOpenSafetyOrders.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.PriceDeviationToOpenSafetyOrders), false, DataSourceUpdateMode.OnPropertyChanged);

            numSafetyOrderVolumeScale.DataBindings.Clear();
            numSafetyOrderVolumeScale.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.SafetyOrderVolumeScale), false, DataSourceUpdateMode.OnPropertyChanged);

            numSafetyOrderStepScale.DataBindings.Clear();
            numSafetyOrderStepScale.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.SafetyOrderStepScale), false, DataSourceUpdateMode.OnPropertyChanged);

            numCooldownBetweenDeals.DataBindings.Clear();
            numCooldownBetweenDeals.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.CooldownBetweenDeals), false, DataSourceUpdateMode.OnPropertyChanged);

            chkBuyBase.DataBindings.Clear();
            chkBuyBase.DataBindings.Add(nameof(CheckBox.Checked), botSetting, nameof(BotSettingViewModel.BuyBaseCurrency));

            numAmountToBuy.DataBindings.Clear();
            numAmountToBuy.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.BaseCurrencyToBuy), false, DataSourceUpdateMode.OnPropertyChanged);

            chkStopLossEnabled.DataBindings.Clear();
            chkStopLossEnabled.DataBindings.Add(nameof(CheckBox.Checked), botSetting, nameof(BotSettingViewModel.StopLossEnabled));

            numStopLossPercentage.DataBindings.Clear();
            numStopLossPercentage.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.StopLossPercentage), false, DataSourceUpdateMode.OnPropertyChanged);

            cmbStopLossType.DataBindings.Clear();
            cmbStopLossType.DataBindings.Add(nameof(ComboBox.SelectedItem), botSetting, nameof(BotSettingViewModel.StopLossAction));

            chkStopLossTimeoutEnabled.DataBindings.Clear();
            chkStopLossTimeoutEnabled.DataBindings.Add(nameof(CheckBox.Checked), botSetting, nameof(BotSettingViewModel.StopLossTimeoutEnabled));

            numStopLossTimeout.DataBindings.Clear();
            numStopLossTimeout.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.StopLossTimeout), false, DataSourceUpdateMode.OnPropertyChanged);

            cmbLeverageType.DataBindings.Clear();
            cmbLeverageType.DataBindings.Add(nameof(ComboBox.SelectedItem), botSetting, nameof(BotSettingViewModel.LeverageType));

            numCustomLeverageValue.DataBindings.Clear();
            numCustomLeverageValue.DataBindings.Add(nameof(NumericUpDown.Value), botSetting, nameof(BotSettingViewModel.LeverageCustomValue), false, DataSourceUpdateMode.OnPropertyChanged);

            #endregion
        }