示例#1
0
        public void UpdateAssignmentModel(Guid assignmentId)
        {
            var am = new AssignmentInfoModel();

            TryUpdateModel(am);
            if (!ModelState.IsValid)
            {
                return;
            }

            if (am.FormAction == "Create")
            {
                var id   = Guid.NewGuid();
                var form = new AssignmentCreationForm()
                {
                    AssignmentCode     = am.AssignmentCode,
                    DeadlineToComplete = am.DeadlineToComplete == null ? (DateTime?)null : DateTime.Parse(am.DeadlineToComplete),
                    DeadlineToStart    = am.DeadlineToStart == null ? (DateTime?)null : DateTime.Parse(am.DeadlineToStart),
                    Description        = am.Description,
                    Executor           = ((Guid)am.Executor).ToString(),
                    Id        = id,
                    IsActive  = true,
                    Name      = am.Name,
                    Observers = am.Observers?.Select(x => x.Key.ToString()).ToList() ?? new List <string>(),
                    Tags      = am.Tags ?? new List <string>()
                };
                bool result = WorkflowInit.Runtime.AssignmentApi.CreateAssignmentAsync(am.ProcessId, form).Result;
                Response.Redirect($"~/Document/AssignmentInfo/{form.Id}");
            }
            else
            {
                var a = WorkflowInit.Runtime.PersistenceProvider.GetAssignmentAsync((Guid)am.AssignmentId).Result;

                a.Description        = am.Description;
                a.Executor           = am.Executor.ToString();
                a.Name               = am.Name;
                a.StatusState        = am.StatusState;
                a.DeadlineToComplete = am.DeadlineToComplete == null ? (DateTime?)null : DateTime.Parse(am.DeadlineToComplete);
                a.DeadlineToStart    = am.DeadlineToStart == null ? (DateTime?)null : DateTime.Parse(am.DeadlineToStart);

                bool result = WorkflowInit.Runtime.AssignmentApi.UpdateAssignmentAsync(a).Result;
                Response.Redirect($"~/Document/AssignmentInfo/{am.AssignmentId}");
            }
        }
        public ActionResult AssignmentCreateOrUpdate(AssignmentInfoModel am)
        {
            if (am.FormAction == "Create")
            {
                var id   = Guid.NewGuid();
                var form = new AssignmentCreationForm()
                {
                    AssignmentCode     = am.AssignmentCode,
                    DeadlineToComplete = am.DeadlineToComplete,
                    DeadlineToStart    = am.DeadlineToStart,
                    Description        = am.Description,
                    Executor           = ((Guid)am.Executor).ToString(),
                    Id        = id,
                    IsActive  = true,
                    Name      = am.Name,
                    Observers = am.Observers?.Select(x => x.Key.ToString()).ToList() ?? new List <string>(),
                    Tags      = am.Tags ?? new List <string>()
                };

                bool result = WorkflowInit.Runtime.AssignmentApi.CreateAssignmentAsync(am.ProcessId, form).Result;
                return(RedirectToAction("AssignmentInfo", new { id = id }));
            }
            else
            {
                var a = WorkflowInit.Runtime.PersistenceProvider.GetAssignmentAsync((Guid)am.AssignmentId).Result;

                a.Description        = am.Description;
                a.Executor           = am.Executor.ToString();
                a.Name               = am.Name;
                a.StatusState        = am.StatusState;
                a.DeadlineToComplete = am.DeadlineToComplete;
                a.DeadlineToStart    = am.DeadlineToStart;

                bool result = WorkflowInit.Runtime.AssignmentApi.UpdateAssignmentAsync(a).Result;

                return(RedirectToAction("AssignmentInfo", new { id = a.AssignmentId }));
            }
        }