private void CreatePortfolioButtonClick(object sender, EventArgs e) { var portfolioName = "TOP " + AccountModel.Instance.GetUserLogin(); if (portfolioName.Length > 50) portfolioName = portfolioName.Substring(0, 50); var portfolio = new TopPortfolio { Name = portfolioName, Criteria = SelectedFunction.Function, DescendingOrder = SelectedFunction.PreferredSortOrder == SortOrder.Descending, MarginValue = SelectedFunction.MarginValue, ParticipantCount = ParticipantCount }; var complete = new CompleteSubscribeOnPortfolioDlg(portfolio).ShowDialog() == DialogResult.OK; if (!complete) return; // открыть диалог настройки авто-торговли var dlg = new AutoTradeSettingsForm(); if (dlg.ShowDialog(this) != DialogResult.OK) return; var tradeSettings = dlg.sets; RequestStatus status; try { status = AccountModel.Instance.ServerProxy.SubscribeOnPortfolio( CurrentProtectedContext.Instance.MakeProtectedContext(), AccountModel.Instance.GetUserLogin(), portfolio, null, tradeSettings); } catch (Exception ex) { //4 debug MessageBox.Show(this, "Операция выполнена с ошибкой:" + Environment.NewLine + ex.Message, "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); Logger.Info("TopPortfolioControl.Subscribe: error calling SubscribeOnPortfolio/UnsubscribePortfolio", ex); return; } if (status == RequestStatus.OK) MessageBox.Show(this, "Операция выполнена успешно", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show(this, "Операция выполнена с ошибкой:" + Environment.NewLine + EnumFriendlyName<RequestStatus>.GetString(status), "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }
// copied from TopPortfolioControl private void SetupButtonClick(object sender, EventArgs e) { try { var subscribedPortfolio = TradeSharpAccountStatistics.Instance.proxy.GetSubscribedTopPortfolio( AccountModel.Instance.GetUserLogin()); var form = new AutoTradeSettingsForm(subscribedPortfolio.TradeSettings); if (form.ShowDialog(this) == DialogResult.Cancel) return; var status = AccountModel.Instance.ServerProxy.ApplyPortfolioTradeSettings( CurrentProtectedContext.Instance.MakeProtectedContext(), AccountModel.Instance.GetUserLogin(), form.sets); if (status == RequestStatus.OK) MessageBox.Show(this, "Операция выполнена успешно", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show(this, "Операция выполнена с ошибкой:" + Environment.NewLine + EnumFriendlyName<RequestStatus>.GetString(status), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (Exception ex) { //4 debug MessageBox.Show(this, "Операция выполнена с ошибкой:" + Environment.NewLine + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); Logger.Info("TopSubscriptionControl.SetupButtonClick: error calling ApplyPortfolioTradeSettings", ex); return; } }
private void EditTradeSettings() { if (selectedCategory == null) return; var dlg = new AutoTradeSettingsForm(selectedCategory.AutoTradeSettings); if (dlg.ShowDialog() == DialogResult.Cancel) return; selectedCategory.AutoTradeSettings = dlg.sets; SubscriptionModel.Instance.ModifySubscription(selectedCategory); }
/// <summary> /// подписаться или отписаться от получения торговых сигналов /// </summary> /// <param name="performer">сигнальщик</param> /// <param name="tradeAuto">оказать диалог автоторговли</param> public static bool SubscribeOrUnsubscribe(PerformerStat performer, bool? tradeAuto) { var isSubscribed = SubscriptionModel.Instance.SubscribedCategories.Any(s => s.Service == performer.Service); var isOk = isSubscribed ? Unsubscribe(performer) : Subscribe(performer, tradeAuto ?? false); if (!isOk) return false; if (!isSubscribed && (tradeAuto ?? false)) { // показать диалог настройки авто-торговли var cat = SubscriptionModel.Instance.SubscribedCategories.FirstOrDefault( c => c.Service == performer.Service); if (cat == null) return false; var dlg = new AutoTradeSettingsForm(cat.AutoTradeSettings ?? new AutoTradeSettings()); if (dlg.ShowDialog() != DialogResult.OK) return false; cat.AutoTradeSettings = dlg.sets; } else { // предупредить пользователя - изменения вступят в силу не мгновенно var msg = "Вы " + (isSubscribed ? "отказались от получения торговых сигналов \"" : "подписались на получение торговых сигналов\n \"") + performer.TradeSignalTitle + "\""; MessageBox.Show(msg); } return true; }
private void Subscribe(object sender, EventArgs e) { RequestStatus status; try { if (isSubsribed) { status = AccountModel.Instance.ServerProxy.UnsubscribePortfolio( CurrentProtectedContext.Instance.MakeProtectedContext(), AccountModel.Instance.GetUserLogin(), true, true); } else { var complete = new CompleteSubscribeOnPortfolioDlg(portfolio).ShowDialog() == DialogResult.OK; if (!complete) return; var tradeSettings = new AutoTradeSettings(); // открыть диалог настройки авто-торговли var dlg = new AutoTradeSettingsForm(); if (dlg.ShowDialog(this) == DialogResult.OK) tradeSettings = dlg.sets; status = AccountModel.Instance.ServerProxy.SubscribeOnPortfolio( CurrentProtectedContext.Instance.MakeProtectedContext(), AccountModel.Instance.GetUserLogin(), portfolio, null, tradeSettings); } } catch (Exception ex) { //4 debug MessageBox.Show(this, "Операция выполнена с ошибкой:" + Environment.NewLine + ex.Message, Localizer.GetString("TitleWarning"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); Logger.Info("TopPortfolioControl.Subscribe: error calling SubscribeOnPortfolio/UnsubscribePortfolio", ex); return; } if (status == RequestStatus.OK) MessageBox.Show(this, "Операция выполнена успешно", Localizer.GetString("TitleInformation"), MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show(this, "Операция выполнена с ошибкой:" + Environment.NewLine + EnumFriendlyName<RequestStatus>.GetString(status), Localizer.GetString("TitleWarning"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); IsSubsribed = !isSubsribed; if (SubscriptionChanged != null) SubscriptionChanged(this, new EventArgs()); }