示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        public bool CheckIfUserIsTeamOwner(USER user, int teamId)
        {
            UserTeamPermissionsViewModel userTeamPermissions = GetPermissionsForUserTeam(user, teamId);

            return(userTeamPermissions.IsTeamOwner);
        }
示例#4
0
        public bool CheckPermissionToAssignTasks(USER user, int teamId)
        {
            UserTeamPermissionsViewModel userTeamPermissions = GetPermissionsForUserTeam(user, teamId);

            return(userTeamPermissions.CanAssignTasks);
        }
示例#5
0
        public bool CheckPermissionToManageUsers(USER user, int teamId)
        {
            UserTeamPermissionsViewModel userTeamPermissions = GetPermissionsForUserTeam(user, teamId);

            return(userTeamPermissions.CanManageUsers);
        }