public void AddCalc() { if (StopLossIncrement < 0 || StopLossLow > StopLossHigh || StopLossHigh < 1 || (string.IsNullOrWhiteSpace(NewCalculationName) || SelectedStrategyParameters.Any(p => p.From == null || p.To == null || p.From == 0 || p.To == 0 || p.To < p.From))) { MessageBox.Show("Некорректные данные для расчета!"); return; } _client.AddRemoteCalculationCompleted += OnAddRemoteCalc; _client.AddRemoteCalculationAsync(NewCalculationName, SelectedStrategy); SelectedContent = new PleaseWait(); }
private void OnAddRemoteCalc(object sender, AddRemoteCalculationCompletedEventArgs e) { _client.AddRemoteCalculationCompleted -= OnAddRemoteCalc; if (UseStopLoss) { for (var i = StopLossLow; i < StopLossHigh; i = i + StopLossIncrement) { _client.AddOrdersToRemoteCalulationAsync(e.Result.Id, SelectedInstrument.Name, DateFrom, DateTo, SelectedPeriod, new ObservableCollection <FromToValue>(SelectedStrategyParameters.Select(o => new FromToValue() { From = (float)o.From, To = (float)o.To })), i, IgnoreNightCandles, UseSpreads ? DaySpread : 0, UseSpreads ? NightSpread : 0); } } else { _client.AddOrdersToRemoteCalulationAsync(e.Result.Id, SelectedInstrument.Name, DateFrom, DateTo, SelectedPeriod, new ObservableCollection <FromToValue>(SelectedStrategyParameters.Select(o => new FromToValue() { From = (float)o.From, To = (float)o.To })), 0, IgnoreNightCandles, UseSpreads ? DaySpread : 0, UseSpreads ? NightSpread : 0); } SelectedContent = new MainPage(); }