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