/// <summary> /// Loads the Master Config XML file into an ConfigMasterParsed Object /// </summary> /// <param name="ConfigMasterFilename"></param> /// <returns></returns> public static ConfigMasterParsed LoadConfigMasterFile(string ConfigMasterFilename) { var CMO = new ConfigMasterParsed(); var XMasterFile = XDocument.Load(ConfigMasterFilename); //// Load registered Environments //foreach (var env in XMasterFile.Root.Element("Environments").Elements("Environment")) //{ // CMO.ListOfEnvironments.Add(new Models.Environment() // { // Title = env.Attribute("Title").Value, // Description = env.Attribute("Description").Value // }); //} //// Load registered Servers //foreach (var env in XMasterFile.Root.Element("Servers").Elements("Server")) //{ // CMO.ListOfServers.Add(new Models.Computer() // { // ComputerName = env.Attribute("ComputerName").Value, // Description = env.Attribute("Description").Value // }); //} //// Load registered Components //foreach (var env in XMasterFile.Root.Element("Components").Elements("Component")) //{ // CMO.ListOfComponents.Add(new Models.Component() // { // Title = env.Attribute("Title").Value, // Description = env.Attribute("Description").Value // }); //} // Load Recipe CMO.GlobalRecipe = new ConfigFileInstances(); foreach (var env in XMasterFile.Root.Element("Recipes").Elements("Environment")) { foreach (var comp in env.Elements("Component")) { foreach (var svr in comp.Elements("Server")) { var newSvr = new ConfigFileInstances.ConfigFileInstance() { Environment = env.Attribute("Title").Value, Component = comp.Attribute("Title").Value, ComputerName = svr.Attribute("ComputerName").Value, ConfigFilePath = svr.Attribute("ConfigFilePath").Value }; CMO.GlobalRecipe.ListOfRecipeConfigFiles.Add(newSvr); } } } // Load Settings CMO.GlobalSettings = new Settings(); foreach (var sett in XMasterFile.Root.Element("Settings").Elements("Setting")) { var newSetting = new Settings.Setting(); newSetting.Name = sett.Attribute("Name").Value; newSetting.Key = sett.Attribute("Key").Value; newSetting.GlobalDefaultValue = sett.Attribute("GlobalDefaultValue").Value; foreach (var applicComp in sett.Element("ApplicableComponents").Elements("Component")) { newSetting.ListOfApplicableComponents.Add(applicComp.Attribute("Title").Value); } foreach (var overrideSetting in sett.Elements("Override")) { var overridSet = new Settings.Setting.Overrides() { OverrideValue = overrideSetting.Attribute("OverrideValue").Value, Component = overrideSetting?.Element("Component")?.Attribute("Title")?.Value, Environment = overrideSetting?.Element("Environment")?.Attribute("Title")?.Value, Server = overrideSetting?.Element("Server")?.Attribute("ComputerName")?.Value, }; newSetting.ListOfOverrides.Add(overridSet); } CMO.GlobalSettings.ListOfSettings.Add(newSetting); } return CMO; }
/// <summary> /// Loads the Master Config XML file into an ConfigMasterParsed Object /// </summary> /// <param name="ConfigMasterFilename"></param> /// <returns></returns> public static ConfigMasterParsed LoadConfigMasterFile(string ConfigMasterFilename) { var CMO = new ConfigMasterParsed(); var XMasterFile = XDocument.Load(ConfigMasterFilename); //// Load registered Environments //foreach (var env in XMasterFile.Root.Element("Environments").Elements("Environment")) //{ // CMO.ListOfEnvironments.Add(new Models.Environment() // { // Title = env.Attribute("Title").Value, // Description = env.Attribute("Description").Value // }); //} //// Load registered Servers //foreach (var env in XMasterFile.Root.Element("Servers").Elements("Server")) //{ // CMO.ListOfServers.Add(new Models.Computer() // { // ComputerName = env.Attribute("ComputerName").Value, // Description = env.Attribute("Description").Value // }); //} //// Load registered Components //foreach (var env in XMasterFile.Root.Element("Components").Elements("Component")) //{ // CMO.ListOfComponents.Add(new Models.Component() // { // Title = env.Attribute("Title").Value, // Description = env.Attribute("Description").Value // }); //} // Load Recipe CMO.GlobalRecipe = new ConfigFileInstances(); foreach (var env in XMasterFile.Root.Element("Recipes").Elements("Environment")) { foreach (var comp in env.Elements("Component")) { foreach (var svr in comp.Elements("Server")) { var newSvr = new ConfigFileInstances.ConfigFileInstance() { Environment = env.Attribute("Title").Value, Component = comp.Attribute("Title").Value, ComputerName = svr.Attribute("ComputerName").Value, ConfigFilePath = svr.Attribute("ConfigFilePath").Value }; CMO.GlobalRecipe.ListOfRecipeConfigFiles.Add(newSvr); } } } // Load Settings CMO.GlobalSettings = new Settings(); foreach (var sett in XMasterFile.Root.Element("Settings").Elements("Setting")) { var newSetting = new Settings.Setting(); newSetting.Name = sett.Attribute("Name").Value; newSetting.Key = sett.Attribute("Key").Value; newSetting.GlobalDefaultValue = sett.Attribute("GlobalDefaultValue").Value; foreach (var applicComp in sett.Element("ApplicableComponents").Elements("Component")) { newSetting.ListOfApplicableComponents.Add(applicComp.Attribute("Title").Value); } foreach (var overrideSetting in sett.Elements("Override")) { var overridSet = new Settings.Setting.Overrides() { OverrideValue = overrideSetting.Attribute("OverrideValue").Value, Component = overrideSetting?.Element("Component")?.Attribute("Title")?.Value, Environment = overrideSetting?.Element("Environment")?.Attribute("Title")?.Value, Server = overrideSetting?.Element("Server")?.Attribute("ComputerName")?.Value, }; newSetting.ListOfOverrides.Add(overridSet); } CMO.GlobalSettings.ListOfSettings.Add(newSetting); } return(CMO); }