Beispiel #1
0
        public static ErrorReport Construct(Exception topException)
        {
            ErrorReport report = new ErrorReport();

            report.Data = new List <ExceptionData>();

            report.UserData = new Dictionary <string, string>();

            for (var ex = topException; ex != null; ex = ex.InnerException)
            {
                report.Data.Add(new ExceptionData(ex));
            }

            // build GL info
            try
            {
                report.OpenGLData = new Dictionary <string, string>();
                report.OpenGLData.Add("vendor", Editor.GLVendor);
                report.OpenGLData.Add("version", Editor.GLVersion);
                report.OpenGLData.Add("renderer", Editor.GLRenderer);
                report.OpenGLData.Add("extensions", Editor.GLExtensions);
            }
            catch
            {
            }

            // build software info
            report.SoftwareData = new Dictionary <string, string>();

            report.SoftwareData.Add("osversion", Environment.OSVersion.ToString());
            report.SoftwareData.Add("is64bit", (Is64BitOperatingSystem() ? "true" : "false"));
            report.SoftwareData.Add("frameworkversion", Environment.Version.ToString());
            report.SoftwareData.Add("softwareversion", Program.Version.ToString());

            // build hardware info
            report.HardwareData = new Dictionary <string, string>();

            var searcher =
                new ManagementObjectSearcher("Select * from Win32_VideoController");

            foreach (ManagementObject video in searcher.Get())
            {
                foreach (PropertyData prop in video.Properties)
                {
                    if (prop.Value != null &&
                        prop.Name != "SystemName")
                    {
                        report.HardwareData.Add("video|" + prop.Name, prop.Value.ToString());
                    }
                }
            }

            searcher =
                new ManagementObjectSearcher("Select * from Win32_PhysicalMemoryArray");

            foreach (ManagementObject video in searcher.Get())
            {
                foreach (PropertyData prop in video.Properties)
                {
                    if (prop.Value != null &&
                        prop.Name != "SystemName")
                    {
                        report.HardwareData.Add("memory|" + prop.Name, prop.Value.ToString());
                    }
                }
            }

            searcher =
                new ManagementObjectSearcher("Select * from Win32_Processor");

            foreach (ManagementObject video in searcher.Get())
            {
                foreach (PropertyData prop in video.Properties)
                {
                    if (prop.Value != null &&
                        prop.Name != "SystemName")
                    {
                        report.HardwareData.Add("processor|" + prop.Name, prop.Value.ToString());
                    }
                }
            }

            return(report);
        }
Beispiel #2
0
        public static ErrorReport Construct(Exception topException)
        {
            ErrorReport report = new ErrorReport();

            report.Data = new List<ExceptionData>();

            report.UserData = new Dictionary<string,string>();

            for (var ex = topException; ex != null; ex = ex.InnerException)
                report.Data.Add(new ExceptionData(ex));

            // build GL info
            try
            {
                report.OpenGLData = new Dictionary<string, string>();
                report.OpenGLData.Add("vendor", Editor.GLVendor);
                report.OpenGLData.Add("version", Editor.GLVersion);
                report.OpenGLData.Add("renderer", Editor.GLRenderer);
                report.OpenGLData.Add("extensions", Editor.GLExtensions);
            }
            catch
            {
            }

            // build software info
            report.SoftwareData = new Dictionary<string, string>();

            report.SoftwareData.Add("osversion", Environment.OSVersion.ToString());
            report.SoftwareData.Add("is64bit", (Is64BitOperatingSystem() ? "true" : "false"));
            report.SoftwareData.Add("frameworkversion", Environment.Version.ToString());
            report.SoftwareData.Add("softwareversion", Program.Version.ToString());

            // build hardware info
            report.HardwareData = new Dictionary<string, string>();

            var searcher =
                new ManagementObjectSearcher("Select * from Win32_VideoController");

            foreach (ManagementObject video in searcher.Get())
            {
                foreach (PropertyData prop in video.Properties)
                {
                    if (prop.Value != null &&
                        prop.Name != "SystemName")
                        report.HardwareData.Add("video|" + prop.Name, prop.Value.ToString());
                }
            }

            searcher =
                new ManagementObjectSearcher("Select * from Win32_PhysicalMemoryArray");

            foreach (ManagementObject video in searcher.Get())
            {
                foreach (PropertyData prop in video.Properties)
                {
                    if (prop.Value != null &&
                        prop.Name != "SystemName")
                        report.HardwareData.Add("memory|" + prop.Name, prop.Value.ToString());
                }
            }

            searcher =
                new ManagementObjectSearcher("Select * from Win32_Processor");

            foreach (ManagementObject video in searcher.Get())
            {
                foreach (PropertyData prop in video.Properties)
                {
                    if (prop.Value != null &&
                        prop.Name != "SystemName")
                        report.HardwareData.Add("processor|" + prop.Name, prop.Value.ToString());
                }
            }

            return report;
        }