private static string GetEnvironmentValueFromSetting(string environment, IProjectSetting setting) { var environmentEnum = Environment.Dev; if (Enum.TryParse(environment, true, out environmentEnum)) { switch (environmentEnum) { case Environment.Dev: return(setting.DevValue); case Environment.Qa: return(setting.QaValue); case Environment.Staging: return(setting.StagingValue); case Environment.Live: return(setting.LiveValue); default: throw new ArgumentException(string.Format("Unknown enum value {0}", environment.ToString())); } } else { var mapping = setting.OtherEnvironments.Single(e => e.Name == environment); var value = mapping.Value; var defaultValue = string.Empty; if (Enum.TryParse(mapping.Target, true, out environmentEnum)) { switch (environmentEnum) { case Environment.Dev: defaultValue = setting.DevValue; break; case Environment.Qa: defaultValue = setting.QaValue; break; case Environment.Staging: defaultValue = setting.StagingValue; break; case Environment.Live: defaultValue = setting.LiveValue; break; default: throw new ArgumentException(string.Format("Unknown enum value {0}", environment.ToString())); } } return(value ?? defaultValue); } throw new ArgumentException(string.Format("Unknown enum value {0}", environment.ToString())); }
private static T ApplyDefaultValueWhereNeeded <T>(IProjectSetting setting) where T : IProjectSetting { //we only check for null here as that means the element didnt have the value if (setting.DevValue == null) { setting.DevValue = setting.DefaultValue; } if (setting.QaValue == null) { setting.QaValue = setting.DefaultValue; } if (setting.StagingValue == null) { setting.StagingValue = setting.DefaultValue; } if (setting.LiveValue == null) { setting.LiveValue = setting.DefaultValue; } return((T)setting); }
public override void SetStageConfigBasedOnProjectSetting(string stageKind, string stageName, IProjectSetting projectSetting) { base.SetStageConfigBasedOnProjectSetting(stageKind, stageName, projectSetting); if (projectSetting.TryGetConfig <IConfigWithExecutionDate>(stageKind, stageName, out var config) == false) { return; } T1Date = config.T1Date; T2Date = config.T2Date; }