public XElement GetDiagnosticInfo(string argument) { XElement xelement = new XElement(base.Name); ConfigDiagnosticArgument configDiagnosticArgument = new ConfigDiagnosticArgument(argument); if (configDiagnosticArgument.HasArgument("configname")) { string argument2 = configDiagnosticArgument.GetArgument <string>("configname"); XElement xelement2 = new XElement("setting", new XAttribute("name", argument2)); foreach (SettingsGroup settingsGroup in this.Settings.Values) { string value; if (settingsGroup.TryGetValue(argument2, out value)) { xelement2.Add(new XElement("group", new object[] { new XAttribute("name", settingsGroup.Name), new XAttribute("enabled", settingsGroup.Enabled), new XAttribute("priority", settingsGroup.Priority), new XAttribute("value", value) })); } } xelement.Add(xelement2); } else { foreach (SettingsGroup settingsGroup2 in this.Settings.Values) { xelement.Add(settingsGroup2.ToDiagnosticInfo(null)); } } return(xelement); }
protected override void WriteResult(IConfigurable dataObject) { TaskLogger.LogEnter(new object[] { dataObject.Identity, dataObject }); ExchangeSettings exchangeSettings = (ExchangeSettings)dataObject; ConfigDiagnosticArgument configDiagnosticArgument = new ConfigDiagnosticArgument(this.DiagnosticArgument); if (configDiagnosticArgument.HasArgument("force")) { this.Force = true; } if (string.IsNullOrEmpty(this.ConfigName) && configDiagnosticArgument.HasArgument("configname")) { this.ConfigName = configDiagnosticArgument.GetArgument <string>("configname"); } if (exchangeSettings != null) { ConfigSchemaBase schema = null; if (SetExchangeSettings.IsSchemaRegistered(exchangeSettings.Identity.ToString())) { schema = SetExchangeSettings.GetRegisteredSchema(exchangeSettings.Identity.ToString(), this.Force, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskErrorLoggingDelegate(base.WriteError)); } if (exchangeSettings.Groups != null) { foreach (SettingsGroup settingsGroup in exchangeSettings.Groups) { try { settingsGroup.Validate(schema, null); } catch (ConfigurationSettingsException ex) { base.WriteWarning(ex.Message); } } } this.ProcessDiagnostic(exchangeSettings, configDiagnosticArgument, schema); } base.WriteResult(exchangeSettings); TaskLogger.LogExit(); }