private void Refresh() { //var cmd = IsClientChecked // ? $"<command id=\"get_united_portfolio\" client=\"{UnionOrClient}\" />" // : $"<command id=\"get_united_portfolio\" union=\"{UnionOrClient}\" />"; UnitedPortfolioDataGridRows.Clear(); UnitedPortfolioSecurityDataGridRowses.Clear(); AssetDataGridRowses.Clear(); MoneyDataGridRowses.Clear(); ValuePartDataGridRowses.Clear(); TXmlConnector.SendNewUnitedPortfolio += XmlConnector_OnSendUnitesPortfolio; TXmlConnector.ConnectorSendCommand($"<command id=\"get_united_portfolio\" client=\"{ClientInfo.Id}\" />"); }
private void XmlConnector_OnSendUnitesPortfolio(string data) { UnitedPortfolio portfolio = null; Dispatcher.Invoke(() => { portfolio = (UnitedPortfolio) new XmlSerializer(typeof(UnitedPortfolio), new XmlRootAttribute("united_portfolio")) .Deserialize( new StringReader(data)); }); Dispatcher.Invoke(() => { UnitedPortfolioDataGridRows.Add(new UnitedPortfolioDataGridRow() { ChrgoffIr = portfolio.ChrgoffIr, ChrgoffMr = portfolio.ChrgoffMr, Client = portfolio.Client, Equity = portfolio.Equity, Finres = portfolio.Finres, Go = portfolio.Go, InitReq = portfolio.InitReq, MaintReq = portfolio.MaintReq, OpenEquity = portfolio.OpenEquity, RegEquity = portfolio.RegEquity, RegIr = portfolio.RegIr, RegMr = portfolio.RegMr, Union = portfolio.Union, Vm = portfolio.Vm }); }); Dispatcher.Invoke(() => { foreach (var asset in portfolio.Assets) { AssetDataGridRowses.Add(new AssetDataGridRow() { Code = asset.Code, InitReq = asset.InitReq, MaintReq = asset.MaintReq, Name = asset.Name, SetoffRate = asset.SetoffRate }); foreach (var security in asset.Securities) { UnitedPortfolioSecurityDataGridRowses.Add(new UnitedPortfolioSecurityDataGridRow() { Balance = security.Balance, Bought = security.Bought, Buying = security.Bought, OpenBalance = security.OpenBalance, Equity = security.Equity, Market = security.Market, Maxbuy = security.Maxbuy, Maxsell = security.Maxsell, Pl = security.Pl, PnlIncome = security.PnlIncome, Sold = security.Sold, RegEquity = security.RegEquity, PnlIntraday = security.PnlIntraday, Price = security.Price, ReserateLong = security.ReserateLong, ReserateShort = security.ReserateShort, RiskrateLong = security.RiskrateLong, RiskrateShort = security.RiskrateShort, Seccode = security.Seccode, Secid = security.Secid, Selling = security.Selling }); foreach (var valuePart in security.ValueParts) { ValuePartDataGridRowses.Add(new ValuePartDataGridRow() { Balance = valuePart.Balance, Bought = valuePart.Bought, OpenBalance = valuePart.OpenBalance, Register = valuePart.Register, Settled = valuePart.Settled, Sold = valuePart.Sold }); } } } }); Dispatcher.Invoke(() => { foreach (var money in portfolio.Money) { MoneyDataGridRowses.Add(new MoneyDataGridRow() { Balance = money.Balance, Bought = money.Bought, Name = money.Name, OpenBalance = money.OpenBalance, Settled = money.Settled, Sold = money.Sold, Tax = money.Tax }); foreach (var valuePart in money.ValueParts) { ValuePartDataGridRowses.Add(new ValuePartDataGridRow() { Balance = valuePart.Balance, Bought = valuePart.Bought, OpenBalance = valuePart.OpenBalance, Register = valuePart.Register, Settled = valuePart.Settled, Sold = valuePart.Sold }); } } }); TXmlConnector.SendNewUnitedPortfolio -= XmlConnector_OnSendUnitesPortfolio; }