private static async Task <PluginOutput <ExternalDataHandlerTaskOutput> > ExecutePlugin( IPluginServices pluginServices, PluginData <ExternalAnswerWorkflowInput> input) { var externalService = pluginServices.GetService("ExternalService") as ExternalService; if (externalService == null) { throw new System.Exception("Failed to resolve service"); } var result = externalService.GetResult(input.Data.Question); var externalOutput = result == null ? null : pluginServices.CreatePluginData(result); var externalDataHandlerTask = pluginServices.GetOrCreatePlugin <ExternalDataHandlerTask>(); var externalData = await externalDataHandlerTask.Execute <ExternalDataHandlerTaskOutput>(new PluginInputs { { "input", externalOutput } }); if (externalData != null) { var configOverride = pluginServices.GetConfig().Get("ExternalAnswerOverride"); if (!string.IsNullOrEmpty(configOverride)) { externalData.Data.Answer = configOverride; } } return(await pluginServices.PluginCompleted(externalData)); }