コード例 #1
0
ファイル: ActionItem.cs プロジェクト: jakubmisek/LinqToWeb
        /// <summary>
        /// Execute the action.
        /// Call the method on the specified data context with specified parameters.
        /// </summary>
        /// <param name="parametersTransform">List of transformations that will be performed onto the parameters list.</param>
        internal void CallAction <T>(ExtractionListEnumerator <T> callerEnumerator)
        {
            // parameters that will be passed to the extraction method.
            LocalVariables transformedParameters = new LocalVariables();

            // transform the parameters to use with the extraction method
            foreach (var pair in parameters)
            {
                ExtractionObjectBase eObj;

                if ((eObj = pair.Value as ExtractionObjectBase) != null)
                {   // transform the parameter by transformation method
                    bool containsAction           = (eObj.ActionsToDo != null && eObj.ActionsToDo.ContainsAction(this));
                    ExtractionObjectBase newValue = eObj.TransformArgument(containsAction, callerEnumerator);
                    newValue.RemoveActionToDo(this);

                    transformedParameters[pair.Key] = newValue;

                    if (!containsAction)// add variable that cannot add an ActionItem within the following method call
                    {
                        transformedParameters.SetCannotAddActionForVariable(pair.Key);
                    }
                }
                else
                {   // parameter is a value, do not transform
                    transformedParameters[pair.Key] = pair.Value;
                }
            }

            // call the method synchronously
            method(datacontext, transformedParameters);
        }
コード例 #2
0
 /// <summary>
 /// Construct an object with given parent object reference.
 /// </summary>
 /// <param name="parent">Parent object in object hierarchy. Used for calling next action, that may result in modifying its child objects.</param>
 public ExtractionObjectBase(ExtractionObjectBase parent)
     : this(parent, new ActionList())
 {
 }
コード例 #3
0
 /// <summary>
 /// Initialization with initial action list.
 /// </summary>
 /// <param name="initialActions">Initial ActionList.</param>
 public ExtractionObjectBase(ExtractionObjectBase parent, ActionList initialActions)
 {
     this.Parent      = parent;
     this.ActionsToDo = initialActions;   // initial actions
 }
コード例 #4
0
 /// <summary>
 /// ctor
 /// </summary>
 /// <param name="parent"></param>
 public ExtractionList(ExtractionObjectBase parent)
     : base(parent)
 {
 }
コード例 #5
0
 /// <summary>
 /// Initialization with initial action list.
 /// </summary>
 /// <param name="initialActionList">Initial ActionList.</param>
 public ExtractionListBase(ExtractionObjectBase parent, ActionList initialActions)
     : base(parent, initialActions)
 {
 }