Пример #1
0
        private SettingManager GetSettings()
        {
            var settingLoader  = Container.ResolveGlobalInstance <ISettingLoader>();
            var settingManager = new SettingManager();

            settingManager.RegisterSettingMapping(
                "hibernateEnabled",
                new SettingMapping()
            {
                Load = () =>
                {
                    return(File.Exists(@"C:\hiberfil.sys").ToString());
                },
                Apply = (value) =>
                {
                    bool isSet;
                    bool isAdmin;
                    string isAdminValue = Container.ResolveGlobalInstance <ISettingManager>().GetSettings()["isAdmin"];
                    if (bool.TryParse(value, out isSet) && bool.TryParse(isAdminValue, out isAdmin) && isAdmin)
                    {
                        WindowsSystemHelpers.SetHibernate(isSet);
                    }
                }
            }
                );
            settingManager.RegisterSettingMapping(
                "isAdmin",
                new SettingMapping()
            {
                Load = () =>
                {
                    var identity  = WindowsIdentity.GetCurrent();
                    var principal = new WindowsPrincipal(identity);
                    return(principal.IsInRole(WindowsBuiltInRole.Administrator).ToString());
                },
                Apply = (value) => { }
            }
                );
            settingManager.RegisterSettingMapping(
                "modernStandbyEnabled",
                new SettingMapping()
            {
                Load = () =>
                {
                    return(settingLoader.GetSetting("modernStandbyEnabled") ?? bool.FalseString);
                },
                Apply = (value) =>
                {
                    settingLoader.ApplySetting("modernStandbyEnabled", value);
                }
            }
                );
            settingManager.RegisterSettingMapping(
                "logLevel",
                new SettingMapping()
            {
                Load = () =>
                {
                    return(settingLoader.GetSetting("logLevel") ?? LogLevel.Warning.ToString());
                },
                Apply = (value) =>
                {
                    settingLoader.ApplySetting("logLevel", value);
                }
            }
                );
            settingManager.GatherSettings();
            return(settingManager);
        }