public EmitentDetailsViewModel(INavigationService navigationService, IMainCommandBar commandBar) { this._navigationService = navigationService; this._commandBar = commandBar; this.FinancialList = new ObservableCollection <Entities.Financial>(); Messenger.Default.Register <FinancialListLoadedMessage>(this, (msg) => { this.FinancialList.Clear(); foreach (Entities.Financial financial in msg.FinancialList) { this.FinancialList.Add(financial); } }); this.SelectFinancialCmd = new RelayCommand <object>((parameter) => { Windows.UI.Xaml.Controls.ItemClickEventArgs e = (Windows.UI.Xaml.Controls.ItemClickEventArgs)parameter; this._selectedFinancial = (Financial)e.ClickedItem; }); this.AddFinancialCmd = new RelayCommand(() => { this._navigationService.NavigateTo("FinancialEdit", new Financial() { EmitentId = _emitentId }); }); this.EditFinancialCmd = new RelayCommand(() => { this._navigationService.NavigateTo("FinancialEdit", this._selectedFinancial); }); }
public AnalysisViewModel(INavigationService navigationService, IMainCommandBar commandBar) { this._navigationService = navigationService; this.AnalystDataList = new ObservableCollection <Robot.AnalystData>(); this._commandBar = commandBar; Messenger.Default.Register <SecurityListLoadedMessage>(this, (msg) => { this.SecurityList = msg.SecurityList.Where(s => s.AlgoTrade).ToList(); }); this.StartAnalyst = new RelayCommand(() => { this._analyst = new Robot.Analyst(new Robot.AnalystStrategy(), SecurityList); this._analyst.Run(); }); SelectSecurityCmd = new RelayCommand <object>((parameter) => { Windows.UI.Xaml.Controls.ItemClickEventArgs e = (Windows.UI.Xaml.Controls.ItemClickEventArgs)parameter; Robot.AnalystData selected = (Robot.AnalystData)e.ClickedItem; this._navigationService.NavigateTo("AnalysisDetails", _candles[selected.Sec]); }); Messenger.Default.Register <ShowDataMessage>(this, (msg) => { _candles = msg.Сandles; dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { AnalystDataList.Clear(); foreach (AnalystData data in msg.AnalystDatalist) { this.AnalystDataList.Add(data); } }); }); }
public EmitentListViewModel(INavigationService navigationService, IMainCommandBar commandBar) { this._navigationService = navigationService; this._commandBar = commandBar; this.EmitentList = new ObservableCollection <Entities.Emitent>(); Messenger.Default.Register <EmitentListLoadedMessage>(this, (msg) => { this.EmitentList.Clear(); foreach (Entities.Emitent emitent in msg.EmitentList) { this.EmitentList.Add(emitent); } }); SelectEmitentCmd = new RelayCommand <object>((parameter) => { Windows.UI.Xaml.Controls.ItemClickEventArgs e = (Windows.UI.Xaml.Controls.ItemClickEventArgs)parameter; Emitent SelectedEmitent = (Emitent)e.ClickedItem; this._navigationService.NavigateTo("EmitentDetails", SelectedEmitent); }); }
public FinancialEditViewModel(INavigationService navigationService, IMainCommandBar commandBar) { this._navigationService = navigationService; this._commandBar = commandBar; this.FinancialItems = new List <FinancialItem>(); this.PeriodTypes = new List <KeyValuePair <int, string> >(); this.PeriodTypes.Add(new KeyValuePair <int, string>(1, "Q1")); this.PeriodTypes.Add(new KeyValuePair <int, string>(2, "Q2")); this.PeriodTypes.Add(new KeyValuePair <int, string>(3, "Q3")); this.PeriodTypes.Add(new KeyValuePair <int, string>(4, "Q4")); this.PeriodTypes.Add(new KeyValuePair <int, string>(7, "Y")); this.SaveCmd = new RelayCommand(() => { _financial.Year = this.Year; _financial.Period = this.SelectedPeriod.Key; _financial.Revenue = decimal.Parse(this.FinancialItems.Single(i => i.Name == "Revenue").Value); _financial.OperatingIncome = decimal.Parse(this.FinancialItems.Single(i => i.Name == "OperatingIncome").Value); _financial.NetIncome = decimal.Parse(this.FinancialItems.Single(i => i.Name == "NetIncome").Value); _financial.CurrentAssets = decimal.Parse(this.FinancialItems.Single(i => i.Name == "CurrentAssets").Value); _financial.FixedAssets = decimal.Parse(this.FinancialItems.Single(i => i.Name == "FixedAssets").Value); _financial.CurrentLiabilities = decimal.Parse(this.FinancialItems.Single(i => i.Name == "CurrentLiabilities").Value); _financial.LongTermLiabilities = decimal.Parse(this.FinancialItems.Single(i => i.Name == "LongTermLiabilities").Value); _financial.FlowOperatingActivities = decimal.Parse(this.FinancialItems.Single(i => i.Name == "FlowOperatingActivities").Value); _financial.ChangesInAssets = decimal.Parse(this.FinancialItems.Single(i => i.Name == "ChangesInAssets").Value); _financial.Capex = decimal.Parse(this.FinancialItems.Single(i => i.Name == "Capex").Value); _financial.Amortization = decimal.Parse(this.FinancialItems.Single(i => i.Name == "Amortization").Value); _financial.FlowOperatingTaxesPaid = decimal.Parse(this.FinancialItems.Single(i => i.Name == "FlowOperatingTaxesPaid").Value); _financial.FlowInvestingActivities = decimal.Parse(this.FinancialItems.Single(i => i.Name == "FlowInvestingActivities").Value); _financial.FlowFinancingActivities = decimal.Parse(this.FinancialItems.Single(i => i.Name == "FlowFinancingActivities").Value); _financial.StockIssuance = decimal.Parse(this.FinancialItems.Single(i => i.Name == "StockIssuance").Value); _financial.DividendsPaid = decimal.Parse(this.FinancialItems.Single(i => i.Name == "DividendsPaid").Value); _financial.EarningsPerShare = decimal.Parse(this.FinancialItems.Single(i => i.Name == "EarningsPerShare").Value); _financial.Price = decimal.Parse(this.FinancialItems.Single(i => i.Name == "Price").Value); Messenger.Default.Send <SaveFinancialMessage>(new SaveFinancialMessage() { Financial = _financial }); }); Messenger.Default.Register <SaveFinancialResultMeassage>(this, (msg) => { dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { string message = msg.Result == "success" ? "Сохранение успешно": "Возникли ошибки"; var dlg = new Windows.UI.Popups.MessageDialog(message); await dlg.ShowAsync(); if (msg.Result == "success") { _navigationService.GoBack(); } }); }); }
public RobotControlViewModel(INavigationService navigationService, IMainCommandBar commandBar, IChart chart) { SecurityList = new List <Entities.Security>(); this._navigationService = navigationService; this.DealList = new ObservableCollection <Entities.Deal>(); this.PositionList = new ObservableCollection <PositionViewModel>(); this.AnalystDataList = new ObservableCollection <Robot.AnalystData>(); this._commandBar = commandBar; this._chart = chart; Messenger.Default.Register <SecurityListLoadedMessage>(this, (msg) => { this.SecurityList = msg.SecurityList.Where(s => s.AlgoTrade).ToList(); }); this.StartRobot = new RelayCommand(() => { this._robot = new Robot.Robot(new Robot.CandleStrategy(), SecurityList); this._robot.Run(); }); this.BuyCmd = new RelayCommand <Robot.AnalystData>(async d => { string msg = string.Format("Купить {0} за {1}?", d.Sec, d.LastPrice); var dlg = new Windows.UI.Popups.MessageDialog(msg); dlg.Commands.Add(new Windows.UI.Popups.UICommand("Accept")); dlg.Commands.Add(new Windows.UI.Popups.UICommand("Cancel")); var dialogResult = await dlg.ShowAsync(); if (dialogResult.Label == "Accept") { Messenger.Default.Send <ClientMakeDealMessage>(new ClientMakeDealMessage() { Sec = d.Sec, Operation = "open long" }); } }); this.ClosePositionCmd = new RelayCommand <string>(async code => { string msg = string.Format("Закрыть позицию {0}?", code); var dlg = new Windows.UI.Popups.MessageDialog(msg); dlg.Commands.Add(new Windows.UI.Popups.UICommand("Accept")); dlg.Commands.Add(new Windows.UI.Popups.UICommand("Cancel")); var dialogResult = await dlg.ShowAsync(); if (dialogResult.Label == "Accept") { Messenger.Default.Send <ClosePositionMessage>(new ClosePositionMessage() { Code = code }); } }); Messenger.Default.Register <ShowAnalystDataMessage>(this, (msg) => { dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { if (AnalystDataList.Count == 0) { foreach (AnalystData data in msg.AnalystDatalist) { this.AnalystDataList.Add(data); } } if (AnalystDataList.Count > 0) { foreach (AnalystData data in msg.AnalystDatalist) { var advice = this.AnalystDataList.Single(d => d.Sec == data.Sec); advice.Advice = data.Advice; advice.LastPrice = data.LastPrice; } } }); }); Messenger.Default.Register <ShowDataMessage>(this, (msg) => { dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { var newdeals = msg.Deals.Where(d => !this.DealList.Select(old => old.Id).Contains(d.Id)); foreach (Entities.Deal deal in newdeals) { this.DealList.Add(deal); } var newpos = msg.Positions.Where(p => !this.PositionList.Select(old => old.Code).Contains(p.Code)).ToList(); var oldpos = msg.Positions.Where(p => this.PositionList.Select(old => old.Code).Contains(p.Code)).ToList(); foreach (Entities.Position pos in newpos) { this.PositionList.Add(new PositionViewModel(pos)); } foreach (Entities.Position pos in oldpos) { this.PositionList.Single(p => p.Code == pos.Code).Update(pos); } }); }); }