public PowerSchemeSettings(SettingScheme settingScheme)
        {
            PowerSchemeGuid = SettingSchemes
                              .Where(p => p.Key == settingScheme)
                              .Select(p => p.Value.Guid).FirstOrDefault();

            _settingScheme = settingScheme;
        }
        public PowerSchemeDefaultSettings(SettingScheme settingScheme)
        {
            Dictionary <PowerSchemeSetting, int[]> defaultSetting;

            switch (settingScheme)
            {
            case SettingScheme.Stable:
                defaultSetting = SettingsStable;
                break;

            case SettingScheme.Media:
                defaultSetting = SettingsMedia;
                break;

            case SettingScheme.Simple:
                defaultSetting = SettingsSimple;
                break;

            case SettingScheme.Extreme:
                defaultSetting = SettingsExtreme;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(settingScheme), settingScheme, null);
            }

            Settings = new Dictionary <PowerSchemeSetting, Values>
            {
                { PowerSchemeSetting.ProcessorThrottle, new Values(new PowerSchemeDCACValues(defaultSetting[PowerSchemeSetting.ProcessorThrottle][0], defaultSetting[PowerSchemeSetting.ProcessorThrottle][1]),
                                                                   new PowerSchemeDCACValues(defaultSetting[PowerSchemeSetting.ProcessorThrottle][2], defaultSetting[PowerSchemeSetting.ProcessorThrottle][3])) },
                { PowerSchemeSetting.TurnOffDisplay, new Values(new PowerSchemeDCACValues(defaultSetting[PowerSchemeSetting.TurnOffDisplay][0], defaultSetting[PowerSchemeSetting.TurnOffDisplay][1])) },
                { PowerSchemeSetting.Sleep, new Values(new PowerSchemeDCACValues(defaultSetting[PowerSchemeSetting.Sleep][0], defaultSetting[PowerSchemeSetting.Sleep][1])) },
                { PowerSchemeSetting.WiFi, new Values(new PowerSchemeDCACValues(defaultSetting[PowerSchemeSetting.WiFi][0], defaultSetting[PowerSchemeSetting.WiFi][1])) },
                { PowerSchemeSetting.MultimediaPlay, new Values(new PowerSchemeDCACValues(defaultSetting[PowerSchemeSetting.MultimediaPlay][0], defaultSetting[PowerSchemeSetting.MultimediaPlay][1])) },
                { PowerSchemeSetting.MultimediaShare, new Values(new PowerSchemeDCACValues(defaultSetting[PowerSchemeSetting.MultimediaShare][0], defaultSetting[PowerSchemeSetting.MultimediaShare][1])) },
                { PowerSchemeSetting.MultimediaQuality, new Values(new PowerSchemeDCACValues(defaultSetting[PowerSchemeSetting.MultimediaQuality][0], defaultSetting[PowerSchemeSetting.MultimediaQuality][1])) }
            };
        }