BinaryStudio.TaskManager.Web.Controllers.ProjectController.CreateTask C# (CSharp) Method

CreateTask() private method

private CreateTask ( CreateTaskViewModel createModel ) : System.Web.Mvc.ActionResult
createModel BinaryStudio.TaskManager.Web.Models.CreateTaskViewModel
return System.Web.Mvc.ActionResult
        public ActionResult CreateTask(CreateTaskViewModel createModel)
        {
            createModel.Assigned = createModel.AssigneeId == (int?)null ? createModel.Created : (DateTime?)null;
            if (this.ModelState.IsValid)
            {
                var task = new HumanTask
                {
                    Assigned = createModel.Assigned,
                    AssigneeId = createModel.AssigneeId,
                    Closed = createModel.Closed,
                    Finished = createModel.Finished,
                    Created = createModel.Created,
                    CreatorId = createModel.CreatorId,
                    Description = createModel.Description,
                    Id = createModel.Id,
                    Name = createModel.Name,
                    Priority = createModel.Priority,
                    ProjectId = createModel.ProjectId,
                    BlockingTaskId = createModel.BlockingTask
                };

                if (task.Priority == 3)
                {
                    task.AssigneeId = this.userProcessor.GetUserByTaskId(task.BlockingTaskId);
                    task.Assigned = task.AssigneeId == (int?)null ? task.Created : (DateTime?)null;
                }

                this.taskProcessor.CreateTask(task);

                var taskHistory = new HumanTaskHistory
                                      {
                                          NewDescription = task.Description,
                                          ChangeDateTime = DateTime.Now,
                                          NewAssigneeId = task.AssigneeId,
                                          NewName = task.Name,
                                          Task = task,
                                          NewPriority = task.Priority,
                                          Action = ChangeHistoryTypes.Create,
                                          UserId = this.userProcessor.GetUserByName(User.Identity.Name).Id
                                      };
                this.taskProcessor.AddHistory(taskHistory);
                this.notifier.CreateTask(task.Id);
                this.newsProcessor.CreateNewsForUsersInProject(taskHistory, task.ProjectId);

                if (true == createModel.ViewStyle)
                {
                    return this.RedirectToAction("MultiuserView", new { projectId = createModel.ProjectId, userId = createModel.AssigneeId });
                }

                return this.RedirectToAction("Project", new { id = createModel.ProjectId, userId = createModel.AssigneeId });
            }

            createModel.Priorities = taskProcessor.GetPrioritiesList();
            // TODO: refactor this "PossibleCreators" and "PossibleAssignees"
            this.ViewBag.PossibleCreators = new List<User>();
            this.ViewBag.PossibleAssignees = new List<User>();

            return this.View(createModel);
        }
        

Same methods

ProjectController::CreateTask ( int userId, int projectId, bool viewStyle ) : System.Web.Mvc.ActionResult