/// <summary> /// Get information about the current operating system. /// </summary> /// <returns>A data object with metadata about the current operating system.</returns> public OperatingSystemData GetOperatingSystemData() { var osData = new OperatingSystemData() { Architecture = GetOSArchitecture(), Family = GetOSFamily(), Name = GetOSName(), Platform = GetOSPlatform(), Version = GetOSVersion(), }; switch (osData.Family) { case OSFamily.Windows: if (!string.IsNullOrEmpty(Environment.OSVersion.ServicePack)) { osData.ServicePack = Environment.OSVersion.ServicePack; } osData.SkuId = GetWinSkuId(); break; case OSFamily.Linux: IReadOnlyDictionary <string, string> lsbInfo = GetLinuxReleaseInfo(); osData.DistributionId = lsbInfo["DistributionId"]; osData.DistributionVersion = lsbInfo["DistributionVersion"]; osData.DistributionPrettyName = lsbInfo["DistributionPrettyName"]; break; } return(osData); }
public void OperatingSystemData_SetsExpectedKeys() { var data = new OperatingSystemData { Name = "foo", Version = "1", Build = "2", KernelVersion = "3", Rooted = true }; Assert.Equal(data["name"], data.Name); Assert.Equal(data["version"], data.Version); Assert.Equal(data["build"], data.Build); Assert.Equal(data["kernel_version"], data.KernelVersion); Assert.Equal(data["rooted"], data.Rooted); }
/// <summary> /// Get information about the current operating system. /// </summary> /// <returns>A data object with metadata about the current operating system.</returns> public OperatingSystemData GetOperatingSystemData() { var osData = new OperatingSystemData() { Description = GetOSDescription(), Architecture = GetOSArchitecture(), Family = GetOSFamily(), Platform = GetOSPlatform(), Version = GetOSVersion(), }; switch (osData.Family) { case OSFamily.Windows: osData.Name = osData.Description; if (!string.IsNullOrEmpty(Environment.OSVersion.ServicePack)) { osData.ServicePack = Environment.OSVersion.ServicePack; } osData.SkuId = GetWinSkuId(); break; case OSFamily.Linux: IReadOnlyDictionary <string, string> releaseInfo = GetLinuxReleaseInfo(); osData.DistributionId = GetEntryFromReleaseInfo(releaseInfo, s_distributionIdKeys); osData.DistributionVersion = GetEntryFromReleaseInfo(releaseInfo, s_distributionVersionKeys); osData.DistributionPrettyName = GetEntryFromReleaseInfo(releaseInfo, s_distributionPrettyNameKeys); osData.Name = osData.DistributionPrettyName; break; case OSFamily.MacOS: osData.Name = GetMacOSName(); break; } return(osData); }