示例#1
0
        private async void GenerateAsync()
        {
            using (var conn = new SqlConnection(ConnectionString))
            {
                await conn.OpenAsync();


                ForeignKey[] fks = await Task.Run(() =>
                                                  _selectedTables.SelectMany(x => Model.retrieveForeignKeys(conn,
                                                                                                            x.Id))
                                                  .ToArray()
                                                  );

                String gv = await Task.Run(() => GraphvizRenderer.generateDotFile(UseSimpleNodes,
                                                                                  _selectedTables,
                                                                                  fks));


                await Task.Run(() => File.WriteAllText(GvFile,
                                                       gv));
            }

            string oldFile = Diagram;

            string newFile = String.Format(OutputFile,
                                           ++_imageFileNumber);

            await GenerateImage("png",
                                newFile);

            if (File.Exists(newFile))
            {
                Diagram = newFile;
            }
            else
            {
                Diagram = null;
            }
        }