internal static IDictionary<string, string> Configuration()
{
IDictionary<string, string> info = new Dictionary<string, string>();
// todo: do we need to localize these strings or would that be confusing
// (Since we just display API names that are all in English)
info.Add("Current Local Time", DateTime.Now.ToString(CultureInfo.CurrentCulture));
info.Add("Current UTC Time", DateTime.UtcNow.ToString(CultureInfo.CurrentCulture));
info.Add("Current Culture", CultureInfo.CurrentCulture.DisplayName);
info.Add("Machine Name", Environment.MachineName);
info.Add("OS Version", Environment.OSVersion.ToString());
info.Add("ASP.NET Version", Environment.Version.ToString());
info.Add("ASP.NET Web Pages Version", new AssemblyName(typeof(WebPage).Assembly.FullName).Version.ToString());
info.Add("User Name", Environment.UserName);
info.Add("User Interactive", Environment.UserInteractive.ToString());
info.Add("Processor Count", Environment.ProcessorCount.ToString(CultureInfo.InvariantCulture));
info.Add("Tick Count", Environment.TickCount.ToString(CultureInfo.InvariantCulture));
// Calls bellow require full trust.
try
{
info.Add("Current Directory", Environment.CurrentDirectory);
}
catch (SecurityException)
{
return info;
}
info.Add("System Directory", Environment.SystemDirectory);
info.Add("User Domain Name", Environment.UserDomainName);
info.Add("Working Set", Environment.WorkingSet.ToString(CultureInfo.InvariantCulture) + " bytes");
return info;
}