public TaskDetailsViewModel TaskDetails(int taskId, int teamId, USER user) { TASK task = _taskRepository.GetTaskById(taskId); TEAM team = _teamRepository.GetTeamById(teamId); TaskDetailsViewModel taskDetail = new TaskDetailsViewModel(); if (task != null && team != null && task.TEAM == team) { taskDetail.TeamId = team.ID; UserTeamPermissionsViewModel permissions = _permissionService.GetPermissionsForUserTeam(user, team.ID); taskDetail.CanAssignTask = permissions.CanAssignTasks; taskDetail.CanComment = permissions.CanComment; taskDetail.CanCreateTask = permissions.CanCreateTasks; taskDetail.CurrentUserId = user.Id; taskDetail.TaskId = task.ID; taskDetail.Title = task.TITLE; taskDetail.Description = task.DESCRIPTION; taskDetail.Deathline = task.DEATHLINE; taskDetail.CreateTime = task.CREATE_TIME; taskDetail.StartTime = task.START_TIME; taskDetail.EndTime = task.END_TIME; taskDetail.User = task.USER; taskDetail.CurrentTaskStatus = task.TASK_STATUS; taskDetail.Comments = task.COMMENTs; taskDetail.IsUserAssignedToTask = (task.USER == user); List <USER> teamUsers = new List <USER>(); teamUsers.AddRange(_userRepository.GetUsersByTeam(team).Except(new List <USER> { task.USER })); if (task.USER != null) { teamUsers.Add(new USER { UserName = "******", Id = "" }); taskDetail.TeamUsers = teamUsers.Prepend(task.USER); } else { taskDetail.TeamUsers = teamUsers.Prepend(new USER { UserName = "******", Id = "" }); } List <TASK_STATUS> taskStatuses = new List <TASK_STATUS>(); taskStatuses.AddRange(_taskRepository.GetTaskStatusesByTeam(team).Except(new List <TASK_STATUS> { task.TASK_STATUS })); taskDetail.TeamTaskStatuses = taskStatuses.Prepend(task.TASK_STATUS); } return(taskDetail); }
public UserTeamPermissionsViewModel GetPermissionsForUserTeam(USER user, int teamId) { TEAM team = _teamRepository.GetTeamById(teamId); UserTeamPermissionsViewModel userTeamPermissions = new UserTeamPermissionsViewModel(); if (team != null) { List <ROLE> roles = _roleRepository.GetRolesByUserTeam(user, team); foreach (ROLE role in roles) { if (role.IS_TEAM_OWNER) { userTeamPermissions.IsTeamOwner = true; } if (role.CAN_ASSIGN_TASK) { userTeamPermissions.CanAssignTasks = true; } if (role.CAN_COMMENT) { userTeamPermissions.CanComment = true; } if (role.CAN_CREATE_TASK) { userTeamPermissions.CanCreateTasks = true; } if (role.CAN_MANAGE_USERS) { userTeamPermissions.CanManageUsers = true; } } } return(userTeamPermissions); }
public bool CheckIfUserIsTeamOwner(USER user, int teamId) { UserTeamPermissionsViewModel userTeamPermissions = GetPermissionsForUserTeam(user, teamId); return(userTeamPermissions.IsTeamOwner); }
public bool CheckPermissionToAssignTasks(USER user, int teamId) { UserTeamPermissionsViewModel userTeamPermissions = GetPermissionsForUserTeam(user, teamId); return(userTeamPermissions.CanAssignTasks); }
public bool CheckPermissionToManageUsers(USER user, int teamId) { UserTeamPermissionsViewModel userTeamPermissions = GetPermissionsForUserTeam(user, teamId); return(userTeamPermissions.CanManageUsers); }