public WorkflowServer(WorkflowServerParameter parameters)
        {
            Parameters = parameters;

               switch (Parameters.Provider)
            {
                case "mssql":
                    _runtime = CreateRuntimeMSSQL();
                    break;
                case "oracle":
                    _runtime = CreateRuntimeOracle();
                    break;
                case "mysql":
                    _runtime = CreateRuntimeMySQL();
                    break;
                case "postgresql":
                    _runtime = CreateRuntimePostgreSQL();
                    break;
                case "ravendb":
                    _runtime = CreateRuntimeRavenDB();
                    break;
                case "mongodb":
                    _runtime = CreateRuntimeMongoDB();
                    break;
                default:
                    throw new Exception(string.Format("Provider = '{0}' is not support", Parameters.Provider));
            }

            _runtime.WithBus(new NullBus())
                .WithTimerManager(new TimerManager())
                .WithActionProvider(callbackProvider)
                .WithRuleProvider(callbackProvider)
                .SwitchAutoUpdateSchemeBeforeGetAvailableCommandsOn()
                .RegisterAssemblyForCodeActions(Assembly.GetExecutingAssembly());
        }
Beispiel #2
0
        public WorkflowServer(WorkflowServerParameter parameters)
        {
            Parameters = parameters;

            switch (Parameters.Provider)
            {
            case "mssql":
                _runtime = CreateRuntimeMSSQL();
                break;

            case "oracle":
                _runtime = CreateRuntimeOracle();
                break;

            case "mysql":
                _runtime = CreateRuntimeMySQL();
                break;

            case "postgresql":
                _runtime = CreateRuntimePostgreSQL();
                break;

            case "ravendb":
                _runtime = CreateRuntimeRavenDB();
                break;

            case "mongodb":
                _runtime = CreateRuntimeMongoDB();
                break;

            default:
                throw new Exception(string.Format("Provider = '{0}' is not support", Parameters.Provider));
            }

            _runtime.WithBus(new NullBus())
            .WithTimerManager(new TimerManager())
            .WithActionProvider(callbackProvider)
            .WithRuleProvider(callbackProvider)
            .SwitchAutoUpdateSchemeBeforeGetAvailableCommandsOn()
            .RegisterAssemblyForCodeActions(Assembly.GetExecutingAssembly());
        }
Beispiel #3
0
        public static Response BackEndProcessing(ref RequestContext ctx, WorkflowServerParameter parameter)
        {
            var localPath = ctx.Request.LocalPath;
            if (localPath.IndexOf("..") >= 0)
            {
                return new EmptyResponse(404);
            }

            if (localPath.EndsWith("/"))
            {
                localPath += "index.html";
            }

            string filepath = parameter.BackendFolder + localPath;

            if (!File.Exists(filepath))
            {
                return new EmptyResponse(404);
            }

            return new FileResponse(filepath);
        }
Beispiel #4
0
        private static Response BackendProcessingSync(RequestContext ctx, WorkflowServerParameter parameter)
        {
            var localPath = ctx.Request.LocalPath;

            if (localPath.IndexOf("..", StringComparison.Ordinal) >= 0)
            {
                return(new EmptyResponse(404));
            }

            if (localPath.EndsWith("/"))
            {
                localPath += "index.html";
            }

            string filepath = parameter.BackendFolder + localPath;

            if (!File.Exists(filepath))
            {
                return(new EmptyResponse(404));
            }

            return(new FileResponse(filepath));
        }
Beispiel #5
0
        private static OptimaJet.WorkflowServerParameter ParseWorkflowServerParameter(string[] args)
        {
            if (args.Length == 0)
            {
                return(null);
            }

            var p = new OptimaJet.WorkflowServerParameter()
            {
                BackendFolder = _backendFolder
            };

            foreach (var arg in args)
            {
                var str = arg.Trim();

                var key   = string.Empty;
                var value = string.Empty;
                int index = str.IndexOf('=');
                if (index < 0)
                {
                    index = str.Length;
                }

                key = str.Substring(1, index - 1);
                if (str.Length > index + 1)
                {
                    value = str.Substring(index + 1, str.Length - (index + 1));
                }

                switch (key)
                {
                case "url": p.Url = value; break;

                case "callbackurl": p.CallbackApiUrl = value; break;

                case "callbackgenscheme": p.CallbackGenScheme = true; break;

                case "apikey": p.ApiKey = value; break;

                case "dbprovider": p.Provider = value; break;

                case "dbcs": p.ConnectionString = value; break;

                case "dburl": p.DBUrl = value; break;

                case "dbdatabase": p.Database = value; break;

                case "nostartworkflow": p.NoStartWorkflow = true; break;

                case "log": p.Log = Log; break;

                case "befolder": p.BackendFolder = value; break;

                default:
                    Console.WriteLine(string.Format("Unknown '{0}' parameter.", key));
                    return(null);
                }
            }

            return(p);
        }
Beispiel #6
0
 public WorkflowCallbackProvider(WorkflowServerParameter parameters, IWorkflowGenerator <XElement> generator)
 {
     _parameters      = parameters;
     _parentgenerator = generator;
 }
Beispiel #7
0
 public static Task <Response> BackEndProcessing(RequestContext ctx, WorkflowServerParameter parameter)
 {
     return(Task.Run(() => BackendProcessingSync(ctx, parameter)));
 }