コード例 #1
0
        protected override void DoAction(RequestActionEventArgs raArgs)
        {
            if (!_IsInitializationComplete)
            {
                Logging.Information(ApplicationName, "Incoming DoAction(" + raArgs.Action + ") while Citrix communication channels are not ready");
            }

            switch (raArgs.Action)
            {
            case AutomationImplicitAction.FindControl:
                if (_IsInitializationComplete)
                {
                    base.DoAction(raArgs);
                }
                else
                {
                    // the Citrix communication channels are not yet ready, so report false
                    raArgs.ActionReturnValue = bool.FalseString;
                }
                break;

            case AutomationImplicitAction.GetControlValue:
            case AutomationImplicitAction.SetControlValue:
            case AutomationImplicitAction.ExecuteControlAction:
            case AutomationImplicitAction.AddDoActionEventTrigger:
            case AutomationImplicitAction.RemoveDoActionEventTrigger:
                if (_IsInitializationComplete)
                {
                    base.DoAction(raArgs);
                }
                else
                {
                    // the Citrix communication channels are not yet ready, so dont bother transmitting the action to the stub
                    raArgs.ActionReturnValue = string.Empty;
                }
                break;

            // actions implemented via Automations on CitrixApplicationHostedControls are implemented in code here
            case "MsgHelloWorld":
                if (_IsInitializationComplete)
                {
                    Action action = new Action(0, raArgs.Action, @"<ActionInit><Automation>
<Type>Microsoft.Ccf.QuickStarts.QsAutomationProject.MsgHelloWorld,file://C:\CCF\Public\Microsoft.Ccf.Samples.Csr.AgentDesktop\Microsoft.Ccf.Samples\QuickStarts\QsAutomationProject\bin\Debug\Microsoft.Ccf.QuickStarts.QsAutomationProject.dll</Type>
</Automation></ActionInit>");
                    _AutomationAdapter.DoAction(action, raArgs);
                }
                break;
            }
        }
コード例 #2
0
        protected override void DoAction(RequestActionEventArgs raArgs)
        {
            switch (raArgs.Action)
            {
            case "CustomAction1":
                break;

            case "CustomAction2":
                break;

            default:
                // This block is required.
                // route unrecognized Actions to the AutomationAdapter so HAT will work
                if (actions.Contains(raArgs.Action))
                {
                    _AutomationAdapter.DoAction(actions[raArgs.Action] as Action, raArgs);
                }
                break;
            }
        }