public static List<Settings.EffectiveSetting> CalculateThisFile(ConfigMasterParsed configMaster, string configFilename) { var Result = new List<Settings.EffectiveSetting>(); var configFileInfo = configMaster.GlobalRecipe.ListOfRecipeConfigFiles.FirstOrDefault(q => q.ConfigFilePath == configFilename); if (configFileInfo != null) { var CurrentEnvironment = configFileInfo.Environment; var CurrentServer = configFileInfo.ComputerName; var CurrentComponent = configFileInfo.Component; var ApplicableSettings = configMaster.GlobalSettings.ListOfSettings.Where(q => q.ListOfApplicableComponents.Contains(CurrentComponent)); foreach (var sett in ApplicableSettings) { var newSetting = new Settings.EffectiveSetting() { Key = sett.Key, Name = sett.Name, DesiredValue = sett.GlobalDefaultValue }; // See if we should override the value var ComponentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component?.ToLower() == CurrentComponent?.ToLower() && y.Environment == null && y.Server == null); if (ComponentOverriders?.OverrideValue != null) { newSetting.DesiredValue = ComponentOverriders?.OverrideValue; } var EnvironmentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component == null && y.Environment?.ToLower() == CurrentEnvironment?.ToLower() && y.Server == null); if (EnvironmentOverriders?.OverrideValue != null) { newSetting.DesiredValue = EnvironmentOverriders?.OverrideValue; } var ServerOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component == null && y.Environment == null && y.Server?.ToLower() == CurrentServer?.ToLower()); if (ServerOverriders?.OverrideValue != null) { newSetting.DesiredValue = ServerOverriders?.OverrideValue; } // More specific: Component and Environment var ComponentEnvironmentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component?.ToLower() == CurrentComponent?.ToLower() && y.Environment?.ToLower() == CurrentEnvironment?.ToLower() && y.Server == null); if (ComponentEnvironmentOverriders?.OverrideValue != null) { newSetting.DesiredValue = ComponentEnvironmentOverriders?.OverrideValue; } var ServerEnvironmentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component == null && y.Environment?.ToLower() == CurrentEnvironment?.ToLower() && y.Server?.ToLower() == CurrentServer?.ToLower()); if (ServerEnvironmentOverriders?.OverrideValue != null) { newSetting.DesiredValue = ServerEnvironmentOverriders?.OverrideValue; } var ServerComponentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component?.ToLower() == CurrentComponent?.ToLower() && y.Environment == null && y.Server?.ToLower() == CurrentServer?.ToLower()); if (ServerComponentOverriders?.OverrideValue != null) { newSetting.DesiredValue = ServerComponentOverriders?.OverrideValue; } // Most Specific: Component and Environment and Server var EnvironmentServerComponentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component?.ToLower() == CurrentComponent?.ToLower() && y.Environment?.ToLower() == CurrentEnvironment?.ToLower() && y.Server?.ToLower() == CurrentServer?.ToLower()); if (EnvironmentServerComponentOverriders?.OverrideValue != null) { newSetting.DesiredValue = EnvironmentServerComponentOverriders?.OverrideValue; } Result.Add(newSetting); } } return Result; }
public static List <Settings.EffectiveSetting> CalculateThisFile(ConfigMasterParsed configMaster, string configFilename) { var Result = new List <Settings.EffectiveSetting>(); var configFileInfo = configMaster.GlobalRecipe.ListOfRecipeConfigFiles.FirstOrDefault(q => q.ConfigFilePath == configFilename); if (configFileInfo != null) { var CurrentEnvironment = configFileInfo.Environment; var CurrentServer = configFileInfo.ComputerName; var CurrentComponent = configFileInfo.Component; var ApplicableSettings = configMaster.GlobalSettings.ListOfSettings.Where(q => q.ListOfApplicableComponents.Contains(CurrentComponent)); foreach (var sett in ApplicableSettings) { var newSetting = new Settings.EffectiveSetting() { Key = sett.Key, Name = sett.Name, DesiredValue = sett.GlobalDefaultValue }; // See if we should override the value var ComponentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component?.ToLower() == CurrentComponent?.ToLower() && y.Environment == null && y.Server == null); if (ComponentOverriders?.OverrideValue != null) { newSetting.DesiredValue = ComponentOverriders?.OverrideValue; } var EnvironmentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component == null && y.Environment?.ToLower() == CurrentEnvironment?.ToLower() && y.Server == null); if (EnvironmentOverriders?.OverrideValue != null) { newSetting.DesiredValue = EnvironmentOverriders?.OverrideValue; } var ServerOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component == null && y.Environment == null && y.Server?.ToLower() == CurrentServer?.ToLower()); if (ServerOverriders?.OverrideValue != null) { newSetting.DesiredValue = ServerOverriders?.OverrideValue; } // More specific: Component and Environment var ComponentEnvironmentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component?.ToLower() == CurrentComponent?.ToLower() && y.Environment?.ToLower() == CurrentEnvironment?.ToLower() && y.Server == null); if (ComponentEnvironmentOverriders?.OverrideValue != null) { newSetting.DesiredValue = ComponentEnvironmentOverriders?.OverrideValue; } var ServerEnvironmentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component == null && y.Environment?.ToLower() == CurrentEnvironment?.ToLower() && y.Server?.ToLower() == CurrentServer?.ToLower()); if (ServerEnvironmentOverriders?.OverrideValue != null) { newSetting.DesiredValue = ServerEnvironmentOverriders?.OverrideValue; } var ServerComponentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component?.ToLower() == CurrentComponent?.ToLower() && y.Environment == null && y.Server?.ToLower() == CurrentServer?.ToLower()); if (ServerComponentOverriders?.OverrideValue != null) { newSetting.DesiredValue = ServerComponentOverriders?.OverrideValue; } // Most Specific: Component and Environment and Server var EnvironmentServerComponentOverriders = sett.ListOfOverrides.FirstOrDefault(y => y.Component?.ToLower() == CurrentComponent?.ToLower() && y.Environment?.ToLower() == CurrentEnvironment?.ToLower() && y.Server?.ToLower() == CurrentServer?.ToLower()); if (EnvironmentServerComponentOverriders?.OverrideValue != null) { newSetting.DesiredValue = EnvironmentServerComponentOverriders?.OverrideValue; } Result.Add(newSetting); } } return(Result); }