private void ViewCSharpScript_Cliked(object sender, RoutedEventArgs e)
        {
            try
            {
                ErdCanvasModel canvas = EventParser.ParseQuery(this, new ParseQueryEventArguments
                {
                    Title     = "TableObjectCanvasQuery",
                    Arguments = new object[] { this.Table.TableName }
                }).To <ErdCanvasModel>();

                SampleScript scriptor = new SampleScript();

                foreach (OptionSetupModel option in BuildScript.Setup.BuildOptions.Where(o => o.RepeatOption == RepeatOptionEnum.ForeachTableProject))
                {
                    scriptor.LanguageOption = option.LanguageOption;

                    string fileName = option.OutputFileName.Replace("[[TableName]]", this.Table.TableName);

                    string filePath = Path.Combine(Path.GetTempPath(), $"{fileName}.txt");

                    List <ErdCanvasModel> allErdCancases = EventParser.ParseQuery(this, "GetAllErdCanvasesAsList").To <List <ErdCanvasModel> >();

                    string result = scriptor.BuildSampleForeachTableScript(canvas, allErdCancases, this.Table, option);

                    File.WriteAllText(filePath, result);

                    Process.Start(filePath);
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }
        private void Initialize()
        {
            var resulItems = (EventParser.ParseQuery(this, new ParseQueryEventArguments {
                Title = "QueryTablesStack"
            }));

            bool haveTables = false;

            foreach (TableMenuItem item in ((List <TableMenuItem>)resulItems).OrderBy(n => n.TableName))
            {
                TableModel table = item.TableModelObject;

                if (this.excludeCanvasTables.Contains(table.TableName))
                {
                    continue;
                }

                TreeViewItemTool tool = new TreeViewItemTool
                {
                    Header     = table.TableName,
                    Tag        = table,
                    IsCheckBox = true,
                    IsChecked  = included.Any(tn => tn.TableName == item.TableName)
                };

                this.uxTables.Items.Add(tool);

                haveTables = true;
            }

            if (!haveTables)
            {
                MessageBox.Show("No tables found to select from.");
            }
        }