/// <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); }
private string GetStringReplacedText(StringVariableWrapper variable) { // {#str:length} // {#str:invert} var value = variable.ToString(); if (!_tag.HasOption) { return(value); } var option = _tag.Option.ToLower(); if (option == "length") { return(value.Length.ToString()); } if (option == "invert") { return(Common.Reverse(value)); } return(value); }