Beispiel #1
0
        public override ActionResult Execute(IActionItem action)
        {
            ActionResult ret = base.Execute(action);

            if (action is GetControllerCapabilitiesOperation)
            {
                GetControllerCapabilitiesResult res = (GetControllerCapabilitiesResult)ret;
                if (res)
                {
                    ControllerCapability = res.ControllerCapability;
                }
            }
            else if (action is GetSucNodeIdOperation)
            {
                GetSucNodeIdResult res = (GetSucNodeIdResult)ret;
                if (res)
                {
                    SucNodeId = res.SucNodeId;
                }
            }
            else if (action is SetLearnModeControllerOperation)
            {
                SetLearnModeResult res = (SetLearnModeResult)ret;
                if (res)
                {
                    Id = res.NodeId;
                }
            }
            return(ret);
        }
Beispiel #2
0
        public override ActionToken ExecuteAsync(IActionItem actionItem, Action <IActionItem> completedCallback)
        {
            var actionBase = actionItem as ActionBase;

            if (actionBase != null)
            {
                if (actionBase is GetControllerCapabilitiesOperation)
                {
                    actionBase.CompletedCallback = (x) =>
                    {
                        var action = x as ActionBase;
                        if (action != null)
                        {
                            GetControllerCapabilitiesResult res = (GetControllerCapabilitiesResult)action.Result;
                            if (res)
                            {
                                ControllerCapability = res.ControllerCapability;
                            }
                            if (completedCallback != null)
                            {
                                completedCallback(action);
                            }
                        }
                    };
                }
                else if (actionBase is GetSucNodeIdOperation)
                {
                    actionBase.CompletedCallback = (x) =>
                    {
                        var action = x as ActionBase;
                        if (action != null)
                        {
                            GetSucNodeIdResult res = (GetSucNodeIdResult)action.Result;
                            if (res)
                            {
                                SucNodeId = res.SucNodeId;
                            }
                            if (completedCallback != null)
                            {
                                completedCallback(action);
                            }
                        }
                    };
                }
                else if (actionBase is SetLearnModeControllerOperation)
                {
                    actionBase.CompletedCallback = (x) =>
                    {
                        var action = x as ActionBase;
                        if (action != null)
                        {
                            SetLearnModeResult res = (SetLearnModeResult)action.Result;
                            if (res)
                            {
                                Id = res.NodeId;
                            }
                            if (completedCallback != null)
                            {
                                completedCallback(action);
                            }
                        }
                    };
                }
                else
                {
                    actionBase.CompletedCallback = completedCallback;
                }
            }
            return(base.ExecuteAsync(actionBase, actionBase.CompletedCallback));
        }