Пример #1
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));
        }
Пример #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));
        }
        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));
        }
        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));
        }
Пример #5
0
        public ErrorLogger(IPluginServices pluginServices, string logNamePrefix, string logNamePostFix)
        {
            this._pluginServices = pluginServices;
            var logFileName = string.Format("{0}_Errors_{1}.txt", logNamePrefix, logNamePostFix);

            this._currentPath = Path.Combine(WrapperUtilities.LogDirectory, logFileName);
        }
Пример #6
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));
        }
Пример #7
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));
        }
Пример #8
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>());
        }
Пример #9
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));
        }
Пример #10
0
        private static async Task <PluginOutput <AOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <AInput> input)
        {
            var aTask   = pluginServices.GetOrCreatePlugin <SuccessfulTaskWithComment>();
            var aOutput = await aTask.Execute <AOutput>(new PluginInputs { { "input", input } });

            var bTask   = pluginServices.GetOrCreatePlugin <FailingTaskWithComment>();
            var bOutput = await bTask.Execute <AOutput>(new PluginInputs { { "input", input } });

            return(await pluginServices.PluginCompleted(bOutput));
        }
        private static async Task <PluginOutput <FOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <AInput> input)
        {
            var aTask   = pluginServices.GetOrCreatePlugin <ATask>();
            var aOutput = await aTask.Execute <AOutput>(new PluginInputs { { "input", input } });

            var fTask   = pluginServices.GetOrCreatePlugin <FTask>();
            var fOutput = await fTask.Execute <FOutput>(new PluginInputs { { "aOutput", aOutput }, { "bOutput", null } });

            return(await pluginServices.PluginCompleted(fOutput));
        }
        public WrapperDebugWriter(IPluginServices pluginServices, string logNamePrefix, string logNamePostFix, string messagePrefix)
        {
            var logFileName = string.Format("{0}_Debug_{1}.txt", logNamePrefix, logNamePostFix);
            this._currentPath = Path.Combine(WrapperUtilities.LogDirectory, logFileName);
            this._messagePrefix = messagePrefix;
            this._pluginServices = pluginServices;

            this.LogLine("============================================================================");
            this.LogLine(DateTime.Now.ToString());
            this.LogLine("============================================================================");
        }
Пример #13
0
        private static async Task <PluginOutput <DOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <AInput> input)
        {
            var aTask   = pluginServices.GetOrCreatePlugin <ATask>();
            var aOutput = await aTask.Execute <AOutput>(new PluginInputs { { "input", input } });

            var bTask   = pluginServices.GetOrCreatePlugin <BTask>();
            var bOutput = await bTask.Execute <BOutput>(new PluginInputs { { "input", aOutput } });

            var dTask   = pluginServices.GetOrCreatePlugin <DTask>();
            var dOutput = await dTask.Execute <DOutput>(new PluginInputs { { "aOutput", aOutput }, { "bOutput", bOutput } });

            return(await pluginServices.PluginCompleted(dOutput));
        }
        private static async Task <PluginOutput <COutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <AInput> input)
        {
            var aTask   = pluginServices.GetOrCreatePlugin <ATask>();
            var aOutput = await aTask.Execute <AOutput>(new PluginInputs { { "input", input } });

            var cTask   = pluginServices.GetOrCreatePlugin <CTask>();
            var cOutput = await cTask.Execute <COutput>(new PluginInputs { { "input", null } });

            var bTask   = pluginServices.GetOrCreatePlugin <BTask>();
            var bOutput = await bTask.Execute <BOutput>(new PluginInputs { { "input", aOutput } });

            return(cOutput != null ?
                   await pluginServices.PluginCompleted(cOutput) :
                   await pluginServices.PluginIncomplete <COutput>());
        }
        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));
        }
        private static async Task <PluginOutput <EOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <AInput> input)
        {
            var aTasks = pluginServices.GetOrCreatePlugins <ATask>(2);

            var eTaskInput = pluginServices.CreatePluginDataList <AOutput>();

            foreach (var aTask in aTasks)
            {
                var aTaskOutput = await aTask.Execute <AOutput>(new PluginInputs { { "input", input } });

                eTaskInput.Add(aTaskOutput.Data);
            }

            var eTask   = pluginServices.GetOrCreatePlugin <ETask>();
            var eOutput = await eTask.Execute <EOutput>(new PluginInputs { { "aOutputs", eTaskInput } });

            return(await pluginServices.PluginCompleted(eOutput));
        }
 public WrapperDebugWriter(IPluginServices pluginServices, string logNamePrefix, string messagePrefix)
     : this(pluginServices, logNamePrefix, pluginServices.CoreManager.CharacterFilter.Name, messagePrefix)
 {
 }
Пример #18
0
 public WorkflowContainer(IPluginServices pluginServices)
 {
     _pluginServices = pluginServices;
 }
Пример #19
0
        private static Task <PluginOutput <AOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <AInput> input)
        {
            var data = pluginServices.CreatePluginData <AOutput>();

            return(pluginServices.PluginCompleted(data));
        }
        private static async Task <PluginOutput <CancellableTaskOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <CancellationWorkflowInput> input)
        {
            var cancellableTask = pluginServices.GetOrCreatePlugin <CancellableTask>();

            if (input.Data.CancelExecution)
            {
                pluginServices.Cancel();
            }
            if (input.Data.CancelPlugin)
            {
                cancellableTask.Cancel();
            }

            var cancellableTaskOutput = await cancellableTask.Execute <CancellableTaskOutput>(new PluginInputs { { "input", input } });

            return(await pluginServices.PluginCompleted(cancellableTaskOutput));
        }
Пример #21
0
        private static async Task <PluginOutput <IdentifyRequestTypeOutput> > ExecutePlugin(IPluginServices pluginServices, PluginData <IdentifyRequestTypeInput> input)
        {
            // First Plugin "Identify Request Type Task"
            var identifyTask       = pluginServices.GetOrCreatePlugin <IdentifyRequestTypeTask>();
            var identifyTaskOutput = await identifyTask.Execute <IdentifyRequestTypeOutput>(new PluginInputs { { "input", input } });

            // Second Plugin "Print Request Type to Console"
            var printTask = pluginServices.GetOrCreatePlugin <PrintToConsoleTask>();
            await printTask.Execute <Schema>(new PluginInputs { { "input", identifyTaskOutput } });

            return(await pluginServices.PluginCompleted(identifyTaskOutput));
        }
Пример #22
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));
        }
Пример #23
0
 public ChatWriter(IPluginServices pluginServices, string messagePrefix)
     : base(pluginServices, messagePrefix)
 {
 }
Пример #24
0
 public DebugWriter(IPluginServices pluginServices, string logNamePrefix, string messagePrefix)
     : base(pluginServices, logNamePrefix, messagePrefix)
 {
 }
Пример #25
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));
        }
Пример #26
0
 public ErrorLogger(IPluginServices pluginServices, string logNamePrefix)
     : this(pluginServices, logNamePrefix, pluginServices.CoreManager.CharacterFilter.Name)
 {
 }
Пример #27
0
 public WrapperChatWriter(IPluginServices pluginServices, string messagePrefix)
 {
     this._pluginServices = pluginServices;
     this._messagePrefix = messagePrefix;
 }
Пример #28
0
 public void SetPluginServices(IPluginServices pluginServices)
 {
     PluginServices = pluginServices;
 }