private WorkflowContext Run(WorkflowProcess process, Dictionary <String, object> processParameters)
        {
            var contextData = new WorkflowContextData(process != null ? process.Id : Guid.Empty, UserId);
            var context     = new WorkflowContext(contextData, Provider);

            context.SetVariables(processParameters);

            if (process != null)
            {
                if (process.StartActivityId == Guid.Empty)
                {
                    throw new ApplicationException("Для процесса не задан StartActivity");
                }

                ScriptManager.LoadScript(process.Script);

                context.RunActivity(process.StartActivityId);

                return(RunActivities(context));
            }

            context.ThrowException("No Process", "Процесс не существует!");

            return(context);
        }