private CompetitionParameter SetParameterValue <T>(CompetitionParamId paramId, T value, Action <CompetitionParameter, T> setValueAction, ClimbingContext2 context, LogicTransaction ltr) { var param = this[paramId]; if (param == null) { if (this.Parameters == null) { this.Parameters = new List <CompetitionParameter>(); } this.Parameters.Add(param = new CompetitionParameter(context) { ParamId = paramId, CompId = this.Iid }); setValueAction(param, value); if (ltr != null) { ltr.AddCreatedObject(param, context); } } else { ltr.AddUpdatedObjectBefore(param, context); setValueAction(param, value); ltr.AddUpatedObjectAfter(param, context); } return(param); }
public CompetitionParameter this[CompetitionParamId paramId] { get { if (Parameters == null) { return(null); } return(this.Parameters.FirstOrDefault(p => p.ParamIdString.Equals(paramId.ToString("G"), StringComparison.Ordinal))); } }
private T GetParameterValue <T>(CompetitionParamId paramId, T defaultValue, Func <CompetitionParameter, T> valueFactory) { var param = this[paramId]; return(param == null ? defaultValue : valueFactory(param)); }
public Boolean GetBooleanValue(CompetitionParamId paramId) { return(String.Equals(GetStringParameterValue(paramId), "true", StringComparison.Ordinal)); }
public CompetitionParameter SetBooleanValue(CompetitionParamId paramId, Boolean value, ClimbingContext2 context, LogicTransaction ltr = null) { return(SetStringParameterValue(paramId, value ? "true" : "false", context, ltr)); }
public DateTime GetDatetimeValue(CompetitionParamId paramId, DateTime defaultValue) { return(GetDatetimeNullableValue(paramId) ?? defaultValue); }
public CompetitionParameter SetDateTimeValue(CompetitionParamId paramId, DateTime?value, ClimbingContext2 context, LogicTransaction ltr = null) { return(SetParameterValue(paramId, value, (p, v) => p.DateTimeValue = v, context, ltr)); }
public DateTime?GetDatetimeNullableValue(CompetitionParamId paramId) { return(GetParameterValue <DateTime?>(paramId, null, p => p.DateTimeValue)); }
public CompetitionParameter SetStringParameterValue(CompetitionParamId paramId, String value, ClimbingContext2 context, LogicTransaction ltr = null) { return(SetParameterValue(paramId, value, (p, v) => p.StringValue = v, context, ltr)); }
public string GetStringParameterValue(CompetitionParamId paramId, String defaultValue = null) { return(GetParameterValue <string>(paramId, defaultValue, p => p.StringValue)); }