private void BindTransferInfo() { if (_record == null) { _record = new StockPositionModel(); } this.txtDealerFrom.Text = _record.DealerName; this.txtAccountName.Text = _record.AccountName; this.txtSecurityCompanyName.Text = _record.SecurityCompanyName; this.txtAttributeName.Text = _record.AttributeName; this.txtStockCode.Text = _record.StockFullCode; this.txtStockName.Text = _record.StockName; this.txtHoldingVolume.Text = _record.StockHoldingVolume.ToString(); this.txtCurrentPrice.Text = _record.CurrentPrice.ToString(); this.txtTransferPrice.Text = this.txtCurrentPrice.Text; this.txtTransferVolume.EditValue = this.txtHoldingVolume.Text; //var dealers = _userService.GetAllOperators(showDeleted: false).Where(x => x.Code != _record.DealerCode).OrderBy(x => x.Code).ToList(); var dealers = _userService.GetAllOperators(showDeleted: true).OrderBy(x => x.Code).ToList(); this.luReceiver.Initialize(dealers, "Code", "Name", enableSearch: true); }
private void DisplayEditDialog(StockPositionModel selectedRecord) { var dialog = this.CreateDialog <_dialogStockTransfer>(); dialog.RefreshEvent += new _dialogStockTransfer.RefreshParentForm(RefreshForm); dialog.Record = selectedRecord; dialog.Text = "股票转移"; dialog.ShowDialog(); }
private void BindStockPosition(string dealerCode) { this.gridControl1.DataSource = null; var records = _tradeRecordService.GetDailyRecordsBySearchCondition(beneficiary: dealerCode, tradeDateFrom: _initDate); if (!records.Any()) { return; } IList <StockPositionModel> userStockPositionInfos = new List <StockPositionModel>(); var stockFullCodes = records.Select(x => x.StockCode).Distinct().ToArray(); var today = DateTime.Now.Date; var currentClosePrices = this._tkLineService.GetStockClosePrices(today, stockFullCodes); var recordsByAccount = records.GroupBy(x => x.AccountId); var accountIds = records.Select(x => x.AccountId).Distinct().ToArray(); var accountInfos = _accountService.GetAccountInfos(accountIds: accountIds); foreach (var accountGroup in recordsByAccount) { var currentAccount = accountInfos.SingleOrDefault(x => x.Id == accountGroup.Key); if (currentAccount == null) { continue; } var recordsByStock = accountGroup.GroupBy(x => x.StockCode); foreach (var stockGroup in recordsByStock) { var holdingVolume = stockGroup.Sum(x => x.DealVolume); if (holdingVolume == 0) { continue; } decimal closePrice = (currentClosePrices.SingleOrDefault(x => x.StockCode.Trim() == stockGroup.Key) ?? new TKLineToday()).Close; decimal positionValue = holdingVolume * closePrice; var userPositionModel = new StockPositionModel { AccountId = currentAccount.Id, AccountName = currentAccount.Name, SecurityCompanyName = currentAccount.SecurityCompanyName, AttributeName = currentAccount.AttributeName, CurrentPrice = closePrice, DealerCode = dealerCode, DealerName = this.luDealer.Text.Trim(), PositionValue = positionValue, StockFullCode = stockGroup.Key, StockHoldingVolume = holdingVolume, StockName = stockGroup.First().StockName, }; userStockPositionInfos.Add(userPositionModel); } } userStockPositionInfos = userStockPositionInfos.OrderBy(x => x.AccountName).ThenBy(x => x.StockFullCode).ToList(); this.gridControl1.DataSource = userStockPositionInfos; }