Beispiel #1
0
        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"));
        }
Beispiel #2
0
        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);
                }
            }
        }