Ejemplo n.º 1
0
        public ActionResult Index(string preview, Guid?processDefinitionId)
        {
            IProcessDefinitionApplication definitionApplication = null;
            IExecutionApplication         executionApplication  = null;
            var userId = Guid.Parse(this.User.Identity.Name);

            definitionApplication = ServiceLocator.Current.GetInstance <IProcessDefinitionApplication>();
            executionApplication  = ServiceLocator.Current.GetInstance <IExecutionApplication>();
            IList <FlowView>           taskList           = executionApplication.GetTaskList(userId);
            IList <IProcessDefinition> processDefinitions = definitionApplication.GetProcessDefinitions();

            var userViewModel = new UserViewModel();

            userViewModel.TaskList           = taskList;
            userViewModel.ProcessDefinitions = processDefinitions;
            userViewModel.Preview            = preview;

            if (!string.IsNullOrEmpty(preview))
            {
                if (preview == "process")
                {
                    userViewModel.ProcessDefinitionName = "In Fly";
                }
            }

            return(View(userViewModel));
        }
Ejemplo n.º 2
0
        public ActionResult ActivityForm(Guid flowId)
        {
            IExecutionApplication executionApplication = null;

            executionApplication = ServiceLocator.Current.GetInstance <IExecutionApplication>();
            FlowView flow = executionApplication.GetFlow(flowId);

            //create Form
            ActivityFormView activityForm = executionApplication.GetActivityForm(flowId);

            return(View(flow.ProcessDefinitionName.Replace(" ", ""), activityForm));
        }
Ejemplo n.º 3
0
        public ActionResult StartForm(Guid processDefinitionId)
        {
            IExecutionApplication         executionApplication  = null;
            IProcessDefinitionApplication definitionApplication = null;

            executionApplication  = ServiceLocator.Current.GetInstance <IExecutionApplication>();
            definitionApplication = ServiceLocator.Current.GetInstance <IProcessDefinitionApplication>();
            IProcessDefinition processDefinition = definitionApplication.GetProcessDefinition(processDefinitionId);

            //create Form
            ActivityFormView activityForm = executionApplication.GetStartForm(processDefinitionId);

            return(View(processDefinition.Name.Replace(" ", ""), activityForm));
        }
Ejemplo n.º 4
0
        public ActionResult SubmitForm(ActivityFormView model)
        {
            IExecutionApplication executionApplication = null;

            executionApplication = ServiceLocator.Current.GetInstance <IExecutionApplication>();
            var userId = Guid.Parse(this.User.Identity.Name);

            if (model.Parameters != null)
            {
                model.AttributeValues = new Dictionary <string, object>();
                foreach (var item in model.Parameters)
                {
                    Evaluation evaluation;
                    if (Evaluation.TryParseEvaluation(item.Value, out evaluation))
                    {
                        model.AttributeValues.Add(item.Key, evaluation);
                        continue;
                    }
                    DateTime selectDateTime;
                    if (DateTime.TryParse(item.Value, out selectDateTime))
                    {
                        model.AttributeValues.Add(item.Key, selectDateTime);
                        continue;
                    }
                    model.AttributeValues.Add(item.Key, item.Value);
                }
            }

            if (model.ProcessDefinitionId != null)
            {
                executionApplication.StartProcessInstance(userId, model.ProcessDefinitionId.Value, model.AttributeValues);
            }
            if (model.FlowId != null)
            {
                executionApplication.PerformActivity(userId, model.FlowId.Value, model.AttributeValues);
            }

            return(this.Redirect("/User"));
        }