File: fx\src\data\Microsoft\SqlServer\Server\SqlTriggerContext.cs
Project: ndp\System.Data.csproj (System.Data)
//------------------------------------------------------------------------------
// <copyright file="SqlTriggerContext.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">daltodov</owner>
//------------------------------------------------------------------------------
 
namespace Microsoft.SqlServer.Server {
 
    using System.Data.Common;
    using System.Data.SqlClient;
    using System.Data.SqlTypes;
    using System.Diagnostics;
 
    public sealed class SqlTriggerContext {
 
        TriggerAction   _triggerAction;
        bool[]          _columnsUpdated;
        SqlXml          _eventInstanceData;
 
        internal SqlTriggerContext(TriggerAction triggerAction, bool[] columnsUpdated, SqlXml eventInstanceData) {
            _triggerAction     = triggerAction;
            _columnsUpdated    = columnsUpdated;
            _eventInstanceData = eventInstanceData;
        }
 
        public int ColumnCount {
            get {
                int result = 0;
 
                if (null != _columnsUpdated) {
                    result = _columnsUpdated.Length;
                }
                return result;
            }
        }
 
        public SqlXml EventData {
            get {
                return _eventInstanceData;
            }
        }
 
        public TriggerAction TriggerAction {
            get {
                return _triggerAction;
            }
        }
 
        public bool IsUpdatedColumn(int columnOrdinal) {
            if (null != _columnsUpdated) {
                return _columnsUpdated[columnOrdinal];   // will throw IndexOutOfRangeException if it's out of range...
            }
            throw ADP.IndexOutOfRange(columnOrdinal);    // if there aren't any columns, that means IndexOutOfRange too...
        }
    }
}