private static async Task <PluginOutput <TResponse> > ExecutePlugin(
            IPluginServices pluginServices,
            PluginData <JsonExternalWorkflowInput <TRequest> > input)
        {
            var serializeTask      = pluginServices.GetOrCreatePlugin <SerializeJsonTask <TRequest> >();
            var serializeTaskInput = pluginServices.CreatePluginData <TRequest>(input.Data.RequestObject);
            var serializeOutput    = await serializeTask.Execute <StringData>(new PluginInputs { { "input", serializeTaskInput } });

            var externalService = pluginServices.GetService("ExternalService") as ExternalService;

            if (externalService == null)
            {
                throw new System.Exception("Failed to resolve service");
            }

            var result = externalService.GetResult(serializeOutput.Data.String);

            if (result == null)
            {
                return(await pluginServices.PluginIncomplete <TResponse>());
            }

            var externalOutput = pluginServices.CreatePluginData(result);

            var deserializeTask   = pluginServices.GetOrCreatePlugin <DeserializeJsonTask <TResponse> >();
            var deserializeInput  = pluginServices.CreatePluginData(externalOutput.Data.OutputData);
            var deserializeOutput = await deserializeTask.Execute <TResponse>(new PluginInputs { { "input", deserializeInput } });

            return(await pluginServices.PluginCompleted(deserializeOutput));
        }
Пример #2
0
        private static Task <PluginOutput <T> > ExecutePlugin(IPluginServices pluginServices, PluginData <StringData> input)
        {
            var deserialized = JsonConvert.DeserializeObject <T>(input.Data.String);
            var output       = pluginServices.CreatePluginData(deserialized);

            return(pluginServices.PluginCompleted(output));
        }
Пример #3
0
        private static Task <PluginOutput <Schema> > ExecutePlugin(IPluginServices pluginServices, PluginData <IdentifyRequestTypeOutput> input)
        {
            Console.WriteLine(input.Data.Type.ToString());
            var data = pluginServices.CreatePluginData <Schema>();

            return(pluginServices.PluginCompleted(data));
        }
        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));
        }
Пример #5
0
        private static Task <PluginOutput <CancellableTaskOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <CancellationWorkflowInput> input)
        {
            var data = pluginServices.CreatePluginData <CancellableTaskOutput>();

            data.Data.Cancelled = pluginServices.PluginCancelled();

            return(pluginServices.PluginCompleted(data));
        }
Пример #6
0
        private static Task <PluginOutput <StringData> > ExecutePlugin(IPluginServices pluginServices, PluginData <T> input)
        {
            var output = pluginServices.CreatePluginData <StringData>();

            output.Data.String = JsonConvert.SerializeObject(input.Data);

            return(pluginServices.PluginCompleted(output));
        }
Пример #7
0
        private Task <PluginOutput <StatefulWorkflowState> > ExecutePlugin(IPluginServices pluginServices, PluginData <AInput> input)
        {
            if (_currentValue == null)
            {
                _currentValue = pluginServices.CreatePluginData <StatefulWorkflowState>();
            }

            return(++_currentValue.Data.CurrentValue == 3 ? pluginServices.PluginCompleted(_currentValue) : pluginServices.PluginIncomplete <StatefulWorkflowState>());
        }
Пример #8
0
        private static Task <PluginOutput <ExternalDataHandlerTaskOutput> > ExecutePlugin(
            IPluginServices pluginServices,
            PluginData <ExternalTaskOutput <StringData> > input)
        {
            var output = pluginServices.CreatePluginData <ExternalDataHandlerTaskOutput>();

            output.Data.Answer = input.Data.OutputData.String;
            return(pluginServices.PluginCompleted(output));
        }
Пример #9
0
        private static Task <PluginOutput <IdentifyRequestTypeOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <IdentifyRequestTypeInput> input)
        {
            var data = pluginServices.CreatePluginData <IdentifyRequestTypeOutput>();

            data.Data.Type = input != null && input.Data.Email.Contains("prefer")
                                    ? RequestType.Voting
                                    : RequestType.Unknown;

            return(pluginServices.PluginCompleted(data));
        }
        private static async Task <PluginOutput <ExternalDataHandlerTaskOutput> > ExecutePlugin(
            IPluginServices pluginServices,
            [Version(1, 5)] 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 } });

            return(await pluginServices.PluginCompleted(externalData));
        }
Пример #11
0
        private static Task <PluginOutput <AOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <AInput> input)
        {
            var data = pluginServices.CreatePluginData <AOutput>();

            return(pluginServices.PluginCompleted(data));
        }
Пример #12
0
        private static Task <PluginOutput <FOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <AOutput> aOutput, [Optional] PluginData <BOutput> bOutput)
        {
            var data = pluginServices.CreatePluginData <FOutput>();

            return(pluginServices.PluginCompleted(data));
        }
Пример #13
0
 public PluginData <T> CreateWorkflowInput <T>()
     where T : Schema, new()
 {
     EnsureContainerIsInitialized();
     return(_pluginServices.CreatePluginData <T>());
 }