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