Пример #1
0
        public object GetView(string extension, Stream stream)
        {
            string tempFile = Path.GetTempFileName();

            using (FileStream fileStream = File.OpenWrite(tempFile))
            {
                stream.CopyTo(fileStream);
            }

            try
            {
                IDictionary <string, string> assemblyData = RemoteCodeExecutor.GetAssemblyMetadata(tempFile);

                var grid = new Grid();
                grid.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Auto)
                });
                grid.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Auto)
                });

                if (assemblyData != null)
                {
                    var orderedAssemblyDataEntries = assemblyData
                                                     // Put information about referenced assemblies at the end.
                                                     .OrderBy(d => d.Key.Equals(AssemblyMetaData.ReferencedAssembliesKey, StringComparison.Ordinal))
                                                     .ThenBy(d => d.Key);

                    foreach (var data in orderedAssemblyDataEntries)
                    {
                        var label = new TextBlock
                        {
                            Text       = data.Key + ':',
                            FontWeight = FontWeights.SemiBold,
                            Margin     = new Thickness(3, 3, 10, 0)
                        };
                        Grid.SetRow(label, grid.RowDefinitions.Count);
                        Grid.SetColumn(label, 0);

                        var value = new TextBlock
                        {
                            Text   = data.Value,
                            Margin = new Thickness(0, 3, 3, 0)
                        };
                        Grid.SetRow(value, grid.RowDefinitions.Count);
                        Grid.SetColumn(value, 1);

                        grid.RowDefinitions.Add(new RowDefinition {
                            Height = new GridLength(1, GridUnitType.Auto)
                        });
                        grid.Children.Add(label);
                        grid.Children.Add(value);
                    }
                }

                return(grid);
            }
            finally
            {
                if (File.Exists(tempFile))
                {
                    try
                    {
                        File.Delete(tempFile);
                    }
                    catch
                    {
                    }
                }
            }
        }
        public object GetView(string extension, Stream stream)
        {
            string tempFile = Path.GetTempFileName();

            using (FileStream fileStream = File.OpenWrite(tempFile))
            {
                stream.CopyTo(fileStream);
            }

            try
            {
                IDictionary <string, string> assemblyData = RemoteCodeExecutor.GetAssemblyMetadata(tempFile);

                var grid = new Grid();
                grid.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Auto)
                });
                grid.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Auto)
                });

                foreach (var data in assemblyData)
                {
                    var label = new TextBlock
                    {
                        Text       = data.Key + ':',
                        FontWeight = FontWeights.SemiBold,
                        Margin     = new Thickness(3, 3, 10, 0)
                    };
                    Grid.SetRow(label, grid.RowDefinitions.Count);
                    Grid.SetColumn(label, 0);

                    var value = new TextBlock
                    {
                        Text   = data.Value,
                        Margin = new Thickness(0, 3, 3, 0)
                    };
                    Grid.SetRow(value, grid.RowDefinitions.Count);
                    Grid.SetColumn(value, 1);

                    grid.RowDefinitions.Add(new RowDefinition {
                        Height = new GridLength(1, GridUnitType.Auto)
                    });
                    grid.Children.Add(label);
                    grid.Children.Add(value);
                }

                return(grid);
            }
            finally
            {
                if (File.Exists(tempFile))
                {
                    try
                    {
                        File.Delete(tempFile);
                    }
                    catch
                    {
                    }
                }
            }
        }