public void OnTemplateChange(BotSettings botSettings) { _settings = botSettings == null ? new BotSettingViewModel() : _mapper.Map <BotSettings, BotSettingViewModel>(botSettings); View.BindSetting(_settings); }
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 }