Exemplo n.º 1
0
        private void DependenciesModelChangedHandler(object sender, EventArgs e)
        {
            try
            {
                var graph = GraphVizHelper.CreateDependencyGraph(this.DependenciesService.DependenciesModel, Properties.Settings.Default.maxLineLength);

                IRenderer renderer = new Renderer(Properties.Settings.Default.graphvizPath);

                using (Stream fileStream = File.Create(this.ImagePath))
                {
                    Task.Run(async() =>
                    {
                        await renderer.RunAsync(graph,
                                                fileStream,
                                                RendererLayouts.Dot,
                                                RendererFormats.Png,
                                                CancellationToken.None);
                    }).Wait();
                }
            }
            catch (Exception ex)
            {
                this.Logger.Error(string.Format(@"Got an error while trying to generate the image '{0}'", this.ImagePath));
                this.Logger.Debug(ex.StackTrace);
            }
        }
Exemplo n.º 2
0
        private void ExecuteRenderAndDownloadDependenciesAsImage(string fileType)
        {
            var graph = GraphVizHelper.CreateDependencyGraph(this.currentConnectorViewModel.DependenciesService.DependenciesModel, Properties.Settings.Default.maxLineLength);

            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            //saveFileDialog1.Filter = "Png Image|*.png|Svg Image|*.svg";
            saveFileDialog1.Filter = (fileType == "png" ? "Png Image|*.png" : "Svg Image|*.svg");
            saveFileDialog1.Title  = "Save dependencies as... (image)";
            bool?result = saveFileDialog1.ShowDialog();

            if (result == true && !string.IsNullOrWhiteSpace(saveFileDialog1.FileName))
            {
                IRenderer renderer = new Renderer(Properties.Settings.Default.graphvizPath);

                using (Stream fileStream = File.Create(saveFileDialog1.FileName))
                {
                    Task.Run(async() =>
                    {
                        await renderer.RunAsync(graph,
                                                fileStream,
                                                RendererLayouts.Dot,
                                                (fileType == "png" ? RendererFormats.Png : RendererFormats.Svg),
                                                CancellationToken.None);
                    }).Wait();
                }
            }
        }
Exemplo n.º 3
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value != null && value is Dictionary <int, DependencyItem> )
            {
                var graph = GraphVizHelper.CreateDependencyGraph((Dictionary <int, DependencyItem>)value, Properties.Settings.Default.maxLineLength);

                using (MemoryStream memStream = new MemoryStream())
                {
                    IRenderer renderer = new Renderer(Properties.Settings.Default.graphvizPath);

                    // We wait synchronously for the memStream to be filled up
                    Task.Run(async() => { await renderer.RunAsync(graph, memStream, RendererLayouts.Dot, RendererFormats.Png, CancellationToken.None); }).Wait();

                    BitmapImage img = new BitmapImage();
                    img.BeginInit();
                    img.CacheOption  = BitmapCacheOption.OnLoad;
                    img.StreamSource = memStream;
                    img.EndInit();
                    return(img);
                }
            }
            return(null);
        }