private void OnHolding(int tableId, object[] values) { var table = HoldingTable; var account = table.GetValue <string>(values, AlorHoldingColumns.Account); var security = GetSecurityBySecCode(table.GetValue <string>(values, AlorHoldingColumns.SecurityCode)); var portfolio = account.Trim() != "" ? GetPortfolio(table.GetValue <string>(values, AlorHoldingColumns.Account)) : Portfolios.ToList()[0]; UpdatePosition(portfolio, security, position => { using (position.BeginUpdate()) { position.BeginValue = table.GetValue <int>(values, AlorHoldingColumns.BeginValue); position.CurrentValue = table.GetValue <int>(values, AlorHoldingColumns.CurrentValue); position.BlockedValue = table.GetValue <int>(values, AlorHoldingColumns.CurrentBidsVolume) + table.GetValue <int>(values, AlorHoldingColumns.CurrentAsksVolume); table.FillNonMandatoryInfo(position, values); } return(true); }); }