コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        /// <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);
        }