public async Task <IActionResult> CreateStatus(TaskStatusCreateModel createModel) { USER user = await _userRepository.GetUserByContext(HttpContext.User); if (_permissionService.CheckIfUserIsTeamOwner(user, createModel.TeamId)) { if (ModelState.IsValid) { _taskService.CreateTaskStatus(createModel); return(RedirectToAction("Index", new { teamId = createModel.TeamId })); } else { return(View(_taskService.GetTaskStatusesForCreate(createModel.TeamId))); } } return(RedirectToAction("AccessDenied", "Account")); }
public void CreateTaskStatus(TaskStatusCreateModel createModel) { TEAM team = _teamRepository.GetTeamById(createModel.TeamId); if (team != null) { TASK_STATUS status = new TASK_STATUS { NAME = createModel.StatusName, TEAM = team }; if (createModel.IdAfter > 0) { var nextStatus = _taskRepository.GetTaskStatusById(createModel.IdAfter); var prevStatus = nextStatus.PREV_STATUS; status.NEXT_STATUS = nextStatus; status.PREV_STATUS = prevStatus; _taskRepository.CreateTaskStatus(status); nextStatus.PREV_STATUS = status; _taskRepository.UpdateTaskStatus(nextStatus); if (prevStatus != null) { prevStatus.NEXT_STATUS = status; _taskRepository.UpdateTaskStatus(prevStatus); } } else if (createModel.IdAfter == -1) { var oldLastStatus = GetOrderedTaskStatuses(team).FirstOrDefault(x => x.NEXT_STATUS == null); status.PREV_STATUS = oldLastStatus; _taskRepository.CreateTaskStatus(status); oldLastStatus.NEXT_STATUS = status; _taskRepository.UpdateTaskStatus(oldLastStatus); } else { _taskRepository.CreateTaskStatus(status); } } }