private string DeleteActonText() { switch (DeleteAction) { case null: return(""); default: return(ForeignKey.DeleteActionToString(DeleteAction.Value)); } }
public ForeignKeysOverviewTabPage(DatabaseObject table, TableDependencyGraph dependencies) { InitializeComponent(); if (dependencies[table].Children.Count == 0) { Label labelEmpty = NewLabel(); labelEmpty.Text = "No foreign keys"; labelEmpty.Font = new Font(labelEmpty.Font, FontStyle.Italic); labelEmpty.Margin = new Padding(0); flowLayoutPanelForeignKeys.Controls.Add(labelEmpty); } else { bool OK; string explanation; IList <Tuple <DependencyEdge, string> > keys = Optimizer.Instance.CheckDeleteCascade(dependencies[table], out OK, out explanation); foreach (Tuple <DependencyEdge, string> key in keys) { Label labelForeignKey = NewLabel(); labelForeignKey.Text = $"{key.Item2}: {key.Item1.Name} - {ForeignKey.DeleteActionToString(key.Item1.ForeignKey.DeleteAction)}"; labelForeignKey.Margin = new Padding(key.Item2.Count(ch => ch == '.') * 20, 0, 0, 0); flowLayoutPanelForeignKeys.Controls.Add(labelForeignKey); } if (OK) { labelStatus.Text = "OK"; } else { labelStatus.Text = "NOK"; labelStatus.ForeColor = Color.Red; } if (explanation.Length > 0) { labelStatus.Text += " - " + explanation; } } Dock = DockStyle.Fill; }
private static void ProcessFKDeleteActionsCommand(string args) { if (args == "") { Console.WriteLine(NO_TABLE_SELECTED); return; } IList <string> errors; IList <DatabaseObject> tables = GetTablesFromArgs(args, out errors); if (errors.Count > 0) { foreach (string error in errors) { Console.WriteLine(error); } return; } foreach (DatabaseObject table in tables) { Console.WriteLine($"Table: {table.NameWithSchemaBrackets}"); if (_dependencies[table].Children.Count == 0) { Console.WriteLine("No foreign keys"); } else { bool OK; string explanation; StringBuilder hierarchyFK = new StringBuilder(); IList <Tuple <DependencyEdge, string> > keys = Optimizer.Instance.CheckDeleteCascade(_dependencies[table], out OK, out explanation); foreach (Tuple <DependencyEdge, string> key in keys) { hierarchyFK.AppendLine($"{new string(' ', key.Item2.Count(ch => ch == '.'))}{key.Item2}: {key.Item1.Name} - {ForeignKey.DeleteActionToString(key.Item1.ForeignKey.DeleteAction)}"); } if (OK) { Console.Write("OK"); } else { Console.Write("NOK"); } if (explanation.Length > 0) { Console.WriteLine($" - {explanation}"); } if (hierarchyFK.Length > 0) { Console.Write(hierarchyFK); } } Console.WriteLine(SEPARATOR); Console.WriteLine(); } }