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; } }
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; } }