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);
            });
        }