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