Deveel.Data.Sql.Statements.AlterTriggerStatement.ExecuteStatement C# (CSharp) 메소드

ExecuteStatement() 보호된 메소드

protected ExecuteStatement ( ExecutionContext context ) : void
context ExecutionContext
리턴 void
        protected override void ExecuteStatement(ExecutionContext context)
        {
            if (!context.DirectAccess.TriggerExists(TriggerName))
                throw new ObjectNotFoundException(TriggerName);
            //if (!context.User.CanAlter(DbObjectType.Trigger, TriggerName))
            //	throw new MissingPrivilegesException(context.User.Name, TriggerName, Privileges.Alter);

            var trigger = context.DirectAccess.GetObject(DbObjectType.Trigger, TriggerName) as Trigger;
            if (trigger == null)
                throw new ObjectNotFoundException(TriggerName);

            var triggerInfo = trigger.TriggerInfo;

            if (Action.ActionType == AlterTriggerActionType.Rename) {
                var action = (RenameTriggerAction) Action;
                triggerInfo = triggerInfo.Rename(action.Name);

                if (!context.DirectAccess.DropTrigger(TriggerName))
                    throw new InvalidOperationException(String.Format("Could not drop the trigger '{0}' to rename", TriggerName));

                context.DirectAccess.CreateTrigger(triggerInfo);
            } else if (Action.ActionType == AlterTriggerActionType.ChangeStatus) {
                var action = (ChangeTriggerStatusAction) Action;
                triggerInfo.Status = action.Status;

                context.DirectAccess.AlterObject(triggerInfo);
            }
        }