private static IEnumerable<OptionParse> OptionParses(FusionLogConfiguration delta)
 {
     {
         yield return FlagParse(ForceLogPattern, f => delta.ForceLog = f);
         yield return FlagParse(FailuresLogPattern, f => delta.LogFailures = f);
         yield return FlagParse(ResourcesPattern, f => delta.LogResourceBinds = f);
         yield return StringParse(PathPattern, s => delta.LogDirectory = s);
     }
 }
 public static FusionLogConfiguration Parse(string[] args)
 {
     var delta = new FusionLogConfiguration();
     foreach(var arg in args)
     {
         ParseOption(arg, delta);
     }
     return delta;
 }
 private static void ParseOption(string arg, FusionLogConfiguration delta)
 {
     foreach (var parse in OptionParses(delta))
     {
         if (parse(arg))
         {
             return;
         }
     }
 }
        public static FusionLogConfiguration Parse(string[] args)
        {
            var delta = new FusionLogConfiguration();

            foreach (var arg in args)
            {
                ParseOption(arg, delta);
            }
            return(delta);
        }
 public static string Format(FusionLogConfiguration configuration)
 {
     var arguments = new[]
                         {
                             "/force" + (configuration.ForceLog ? '+' : '-'),
                             "/failures" + (configuration.LogFailures ? '+' : '-'),
                             "/resources" + (configuration.LogResourceBinds ? '+' : '-'),
                             "\"/path:" + (configuration.LogDirectory ?? "") + "\""
                         };
     return string.Join(" ", arguments);
 }
        private static IEnumerable <OptionParse> OptionParses(FusionLogConfiguration delta)
        {
            {
                yield return(FlagParse(ForceLogPattern, f => delta.ForceLog = f));

                yield return(FlagParse(FailuresLogPattern, f => delta.LogFailures = f));

                yield return(FlagParse(ResourcesPattern, f => delta.LogResourceBinds = f));

                yield return(StringParse(PathPattern, s => delta.LogDirectory = s));
            }
        }
        public static string Format(FusionLogConfiguration configuration)
        {
            var arguments = new[]
            {
                "/force" + (configuration.ForceLog ? '+' : '-'),
                "/failures" + (configuration.LogFailures ? '+' : '-'),
                "/resources" + (configuration.LogResourceBinds ? '+' : '-'),
                "\"/path:" + (configuration.LogDirectory ?? "") + "\""
            };

            return(string.Join(" ", arguments));
        }
        private void FusionConfigDialog_Load(object sender, EventArgs e)
        {
            _configuration              = FusionRegistry.ReadLogConfiguration();
            chkForceLog.Checked         = _configuration.ForceLog;
            chkLogFailures.Checked      = _configuration.LogFailures;
            chkLogResourceBinds.Checked = _configuration.LogResourceBinds;
            txtLogPath.Text             = _configuration.LogDirectory ?? "";

            if (AdminProcessStarter.ElevationRequired)
            {
                AddShieldToButton(btnApply);
                AddShieldToButton(btnOK);
            }

            chkForceLog.CheckStateChanged += delegate
            {
                _configuration.ForceLog = chkForceLog.Checked;
                btnApply.Enabled        = true;
            };
            chkLogFailures.CheckStateChanged += delegate
            {
                _configuration.LogFailures = chkLogFailures.Checked;
                btnApply.Enabled           = true;
            };
            chkLogResourceBinds.CheckStateChanged += delegate
            {
                _configuration.LogResourceBinds =
                    chkLogResourceBinds.Checked;
                btnApply.Enabled = true;
            };
            txtLogPath.TextChanged += delegate
            {
                _configuration.LogDirectory = txtLogPath.Text;
                btnApply.Enabled            = true;
            };
        }
        private void FusionConfigDialog_Load(object sender, EventArgs e)
        {
            _configuration = FusionRegistry.ReadLogConfiguration();
            chkForceLog.Checked = _configuration.ForceLog;
            chkLogFailures.Checked = _configuration.LogFailures;
            chkLogResourceBinds.Checked = _configuration.LogResourceBinds;
            txtLogPath.Text = _configuration.LogDirectory ?? "";

            if (AdminProcessStarter.ElevationRequired)
            {
                AddShieldToButton(btnApply);
                AddShieldToButton(btnOK);
            }

            chkForceLog.CheckStateChanged += delegate
                                                 {
                                                     _configuration.ForceLog = chkForceLog.Checked;
                                                     btnApply.Enabled = true;
                                                 };
            chkLogFailures.CheckStateChanged += delegate
                                                    {
                                                        _configuration.LogFailures = chkLogFailures.Checked;
                                                        btnApply.Enabled = true;
                                                    };
            chkLogResourceBinds.CheckStateChanged += delegate
                                                         {
                                                             _configuration.LogResourceBinds =
                                                                 chkLogResourceBinds.Checked;
                                                             btnApply.Enabled = true;
                                                         };
            txtLogPath.TextChanged += delegate
                                          {
                                              _configuration.LogDirectory = txtLogPath.Text;
                                              btnApply.Enabled = true;
                                          };
        }
 private static void ParseOption(string arg, FusionLogConfiguration delta)
 {
     foreach(var parse in OptionParses(delta))
     {
         if (parse(arg)) return;
     }
 }