/// <summary> /// Добавление десериализуемого объекта /// </summary> public void Add(IVariable storedVariable) { if (storedVariable is StringVariable) { var variable = (StringVariable)storedVariable; var wrapper = new StringVariableWrapper(variable.Name, this) { Value = variable.Value }; Variables.Add(wrapper); } else if (storedVariable is BoolVariable) { var variable = (BoolVariable)storedVariable; var wrapper = new BoolVariableWrapper(variable.Name) { Value = variable.Value }; Variables.Add(wrapper); } else if (storedVariable is DateVariable) { var variable = (DateVariable)storedVariable; var wrapper = new DateVariableWrapper(variable.Name) { UseCurrentDate = variable.UseCurrentDate, Format = variable.Format, Value = variable.UseCurrentDate ? DateTime.Today : variable.Value }; Variables.Add(wrapper); } else if (storedVariable is TimeVariable) { var variable = (TimeVariable)storedVariable; var wrapper = new TimeVariableWrapper(variable.Name) { UseCurrentTime = variable.UseCurrentTime, UseSeconds = variable.UseSeconds, Format = variable.Format, Value = variable.UseCurrentTime ? DateTime.Now.TimeOfDay : variable.Value }; Variables.Add(wrapper); } }
public IVariableWrapper Add(VariableType type = VariableType.String, object value = null, bool isAssigned = false) { if (!IsInitialized()) { return(null); } IVariableWrapper wrapper = null; var name = MakeName(); switch (type) { case VariableType.String: wrapper = new StringVariableWrapper(name, this, isAssigned); break; case VariableType.Bool: wrapper = new BoolVariableWrapper(name, isAssigned); break; case VariableType.Date: wrapper = new DateVariableWrapper(name, isAssigned); break; case VariableType.Time: wrapper = new TimeVariableWrapper(name, isAssigned); break; } if (wrapper == null) { ErrorMessage = $"Запрос на создание переменной неизвестного типа \"{type}\""; return(null); } Variables.Add(wrapper); if (value != null) { wrapper.Set(value); } return(wrapper); }