Esempio n. 1
0
        protected string GetParametersString([NotNull] RootModel model, [NotNull] ActionExecutionContext context)
        {
            Assert.ArgumentNotNull(model, "model");
            Assert.ArgumentNotNull(context, "context");

            ParametersStringBuilder.Clear();
            foreach (var parameter in Parameters)
            {
                ParametersStringBuilder.Append(" ");
                ParametersStringBuilder.Append(parameter.GetParameterValue(model, context));
            }

            return(ParametersStringBuilder.ToString());
        }
Esempio n. 2
0
        public void SendToAllWindows(IEnumerable <ActionBase> actionsToExecute, ActionExecutionContext actionExecutionContext)
        {
            foreach (var rootModel in _allModels)
            {
                foreach (var action in actionsToExecute)
                {
                    try
                    {
                        action.Execute(rootModel, actionExecutionContext);
                    }
                    catch (Exception)
                    {
                    }
                }

                rootModel.PushCommandToConveyor(FlushOutputQueueCommand.Instance);
            }
        }
 public abstract string GetParameterValue([NotNull] RootModel rootModel, [NotNull] ActionExecutionContext context);
Esempio n. 4
0
 /// <summary>
 /// Executes this action.
 /// </summary>
 /// <param name="model">The model.</param>
 /// <param name="context">The context.</param>
 public abstract void Execute([NotNull] RootModel model, [NotNull] ActionExecutionContext context);
Esempio n. 5
0
        protected virtual string PostProcessString([NotNull] string valueToProcess, [NotNull] RootModel model, [NotNull] ActionExecutionContext context)
        {
            Assert.ArgumentNotNull(valueToProcess, "valueToProcess");
            Assert.ArgumentNotNull(model, "model");
            Assert.ArgumentNotNull(context, "context");

            return(ReplaceVariables(ReplaceParameters(valueToProcess, context), model));
        }
Esempio n. 6
0
 protected string GetParameter(int num, ActionExecutionContext context)
 {
     return(context.Parameters.ContainsKey(num) ? context.Parameters[num] : string.Empty);
 }
Esempio n. 7
0
        protected virtual string ReplaceParameters(string input, ActionExecutionContext context)
        {
            StringBuilder sb = new StringBuilder();

            int nest    = 0;
            int lastPos = 0;
            int i       = 0;

            while (i < input.Length - 1)
            {
                if (input[i] == '%')
                {
                    if (i < input.Length - 2 && input[i + 1] == '%' && char.IsDigit(input[i + 2]))
                    {
                        if (i - lastPos > 0)
                        {
                            sb.Append(input, lastPos, i - lastPos);
                        }

                        if (nest > 0)
                        {
                            sb.Append(GetParameter((int)Char.GetNumericValue(input[i + 2]), context));
                        }
                        else
                        {
                            sb.Append(input, i, 3);
                        }

                        lastPos = i + 3;
                        i      += 2;
                    }
                    else if (nest == 0 && char.IsDigit(input[i + 1]))
                    {
                        if (i - lastPos > 0)
                        {
                            sb.Append(input, lastPos, i - lastPos);
                        }

                        sb.Append(GetParameter((int)Char.GetNumericValue(input[i + 1]), context));
                        lastPos = i + 2;
                        i++;
                    }
                }
                else if (input[i] == '{')
                {
                    nest++;
                }
                else if (input[i] == '}')
                {
                    nest--;
                }

                i++;
            }

            if (lastPos < input.Length)
            {
                sb.Append(input, lastPos, input.Length - lastPos);
            }

            return(sb.ToString());
        }
Esempio n. 8
0
        public void SendToWindow(string name, IEnumerable <ActionBase> actionsToExecute, ActionExecutionContext actionExecutionContext)
        {
            var rootModel = _allModels.FirstOrDefault(w => w._name == name);

            if (rootModel == null)
            {
                return;
            }

            foreach (var action in actionsToExecute)
            {
                try
                {
                    action.Execute(rootModel, actionExecutionContext);
                }
                catch (Exception)
                { }
            }

            rootModel.PushCommandToConveyor(FlushOutputQueueCommand.Instance);
        }
Esempio n. 9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TextTrigger"/> class.
 /// </summary>
 public TextTrigger()
 {
     MatchingPattern = string.Empty;
     _context        = new ActionExecutionContext();
     IsRegExp        = false;
 }