Esempio n. 1
0
        private void NotifyFail(Exception e, ICheckNotifier notifier, ITriggerImplementer microsoftSQLTrigger)
        {
            bool shouldCreate = notifier.OnCheckPerformed(new CheckEventArgs(
                                                              "Trigger error encountered when checking integrity of table " + _table,
                                                              CheckResult.Warning, e, "Drop and then Re-Create Trigger on table " + _table));

            if (shouldCreate)
            {
                string problemsDroppingTrigger;
                string thingsThatWorkedDroppingTrigger;

                microsoftSQLTrigger.DropTrigger(out problemsDroppingTrigger, out thingsThatWorkedDroppingTrigger);

                if (!string.IsNullOrWhiteSpace(thingsThatWorkedDroppingTrigger))
                {
                    notifier.OnCheckPerformed(new CheckEventArgs(thingsThatWorkedDroppingTrigger, CheckResult.Success, null));
                }

                if (!string.IsNullOrWhiteSpace(problemsDroppingTrigger))
                {
                    notifier.OnCheckPerformed(new CheckEventArgs(problemsDroppingTrigger, CheckResult.Warning, null));
                }

                microsoftSQLTrigger.CreateTrigger(notifier);
                TriggerCreated = true;
            }
        }
        public ExecuteCommandAlterTableAddArchiveTrigger(IBasicActivateItems activator, TableInfo tableInfo) : base(activator, tableInfo)
        {
            if (IsImpossible)
            {
                return;
            }

            if (!Table.DiscoverColumns().Any(c => c.IsPrimaryKey))
            {
                SetImpossible(GlobalStrings.TableHasNoPrimaryKey);
                return;
            }

            var factory = new TriggerImplementerFactory(TableInfo.DatabaseType);

            _triggerImplementer = factory.Create(Table);
            var currentStatus = _triggerImplementer.GetTriggerStatus();

            if (currentStatus != TriggerStatus.Missing)
            {
                SetImpossible(GlobalStrings.TriggerStatusIsCurrently, currentStatus.S());
            }
        }
Esempio n. 3
0
        public ExecuteCommandAlterTableAddArchiveTrigger(IActivateItems activator, TableInfo tableInfo) : base(activator, tableInfo)
        {
            if (IsImpossible)
            {
                return;
            }

            if (!Table.DiscoverColumns().Any(c => c.IsPrimaryKey))
            {
                SetImpossible("Table has no Primary Key");
                return;
            }

            var factory = new TriggerImplementerFactory(TableInfo.DatabaseType);

            _triggerImplementer = factory.Create(Table);
            var currentStatus = _triggerImplementer.GetTriggerStatus();

            if (currentStatus != TriggerStatus.Missing)
            {
                SetImpossible("Trigger status is currently:" + currentStatus);
            }
        }