Exemple #1
0
        static void Main(string[] args)
        {
            PluginManager manager = new PluginManager();
            Dictionary <string, object> parameters = new Dictionary <string, object>();

            parameters.Add("value", 30);
            manager.SetConfiguration(new PluginConfiguration(parameters));
            string runnablePath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "..", "..", "..", "..", @"Plugins\Runnable\bin\Debug\Runnable.dll"));
            string filePath     = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "..", "..", "..", "..", @"Plugins\File\bin\Debug\File.dll"));

            manager.LoadPlugin(runnablePath);
            manager.LoadPlugin(filePath);
            foreach (LoadedPlugin r in manager.plugins)
            {
                Console.WriteLine(r.Name);
                r.plugin.Started  += Plugin_Started;
                r.plugin.Finished += Plugin_Finished;
                if (r.plugin is RunnablePlugin)
                {
                    r.Run();
                }
                if (r.plugin is FilePlugin)
                {
                    FilePlugin fp = (FilePlugin)r.plugin;
                    fp.path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "..", "..", "TextFile1.txt"));;
                    fp.Run();
                }
            }
            Console.ReadKey();
        }
Exemple #2
0
 public void SendDeleteMessage(string path)
 {
     if (server != null)
     {
         var command    = FilePlugin.MakeFileDeleteCommand(@"D:\" + path);
         var commandMsg = new CommandMessage()
         {
             Command = command,
         };
         server.SendMessage(commandMsg);
     }
 }
Exemple #3
0
 public void SendEnumFileMessage(string path)
 {
     if (server != null)
     {
         var command    = FilePlugin.MakeFileEnumCommand(path, false, false);
         var commandMsg = new CommandMessage()
         {
             Command = command,
         };
         server.SendMessage(commandMsg);
     }
 }
Exemple #4
0
        private static void CreateRuntime()
        {
            if (_runtime == null)
            {
                lock (_sync)
                {
                    if (_runtime == null)
                    {
                        var loopPlugin     = new LoopPlugin();
                        var filePlugin     = new FilePlugin();
                        var approvalPlugin = new ApprovalPlugin();

                        #region ApprovalPlugin Settings

                        approvalPlugin.GetUserNamesByIds += GeUserNamesByIds;
                        // approvalPlugin.AutoApprovalHistory = true;
                        // approvalPlugin.NameParameterForComment = "Comment";

                        #endregion ApprovalPlugin Settings

                        var basicPlugin = new BasicPlugin();

                        #region BasicPlugin Settings

                        //Settings for SendEmail actions
                        // basicPlugin.Setting_Mailserver = "smtp.yourserver.com";
                        // basicPlugin.Setting_MailserverPort = 25;
                        // basicPlugin.Setting_MailserverFrom = "*****@*****.**";
                        // basicPlugin.Setting_MailserverLogin = "******";
                        // basicPlugin.Setting_MailserverPassword = "******";
                        // basicPlugin.Setting_MailserverSsl = true;

                        //not implemented
                        basicPlugin.ApproversInStageAsync += ApproversInStageAsync;

                        basicPlugin.UsersInRoleAsync             += UsersInRoleAsync;
                        basicPlugin.CheckPredefinedActorAsync    += CheckPredefinedActorAsync;
                        basicPlugin.GetPredefinedIdentitiesAsync += GetPredefinedIdentitiesAsync;
                        basicPlugin.UpdateDocumentStateAsync     += UpdateDocumentStateAsync;

                        basicPlugin.WithActors(new List <string>()
                        {
                            "Manager", "Author"
                        });

                        #endregion BasicPlugin Settings

                        var provider = DataServiceProvider.Get <IPersistenceProviderContainer>().Provider;

                        var externalParametersProvider = new ExternalParametersProvider();
                        externalParametersProvider.GetDocument += GetDocument;

                        var builder = new WorkflowBuilder <XElement>(provider, new XmlWorkflowParser(), provider).WithDefaultCache();
                        _runtime = new WorkflowRuntime()
                                   .WithBuilder(builder)
                                   .WithActionProvider(new ActionProvider(DataServiceProvider))
                                   .WithRuleProvider(new RuleProvider(DataServiceProvider))
                                   .WithDesignerAutocompleteProvider(new AutoCompleteProvider())
                                   .WithPersistenceProvider(provider)
                                   .SwitchAutoUpdateSchemeBeforeGetAvailableCommandsOn()
                                   .RegisterAssemblyForCodeActions(Assembly.GetExecutingAssembly())
                                   .WithPlugins(null, basicPlugin, loopPlugin, filePlugin, approvalPlugin)
                                   .WithExternalParametersProvider(externalParametersProvider)
                                   .CodeActionsDebugOn()
                                   .AsSingleServer() //.AsMultiServer()
                                                     //    .WithConsoleAllLogger()
                                   .Start();
                    }
                }
            }
        }