/// <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);
        }
示例#3
0
        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);
        }