public void TestGenerateFirstLevelTeam() { var leaderRole = _context.ConferenceTeamRoles.FirstOrDefault(n => n.Conference == conference && n.TeamRoleLevel == 1); Assert.NotNull(leaderRole); var firstLevelAuth = new ConferenceRoleAuth() { CanEditConferenceSettings = false, CanEditParticipations = false, CanSeeApplications = true, Conference = conference, PowerLevel = 2, RoleAuthName = "Erweiterte Projektleitung", }; _context.ConferenceRoleAuthorizations.Add(firstLevelAuth); var firstLevelGroup = new TeamRoleGroup() { FullName = "Erweiterte Projektleitung", GroupLevel = 2, Name = "Erweiterte Projektleitung", TeamRoleGroupShort = "EPL" }; _context.TeamRoleGroups.Add(firstLevelGroup); var teamCoordinatorRole = new ConferenceTeamRole() { Conference = conference, IconName = "un", ParentTeamRole = leaderRole, ConferenceRoleAuth = firstLevelAuth, RoleFullName = "Team- und Materialkoordination", RoleName = "Team- und Materialkoordination", RoleShort = "TMK", TeamRoleGroup = firstLevelGroup, TeamRoleLevel = 2 }; var financeManager = new ConferenceTeamRole() { Conference = conference, IconName = "un", ParentTeamRole = leaderRole, ConferenceRoleAuth = firstLevelAuth, RoleFullName = "Finanzen", RoleName = "Finanzen", RoleShort = "CASH", TeamRoleGroup = firstLevelGroup, TeamRoleLevel = 2 }; _context.ConferenceTeamRoles.Add(teamCoordinatorRole); _context.ConferenceTeamRoles.Add(financeManager); _context.SaveChanges(); Assert.AreEqual(3, _context.ConferenceTeamRoles.Count(n => n.Conference.ConferenceId == conference.ConferenceId)); }
public IRolesContainingTeamRoleBuilder WithParentRole(ConferenceTeamRole role) { foreach (var conferenceTeamRole in Group.TeamRoles) { conferenceTeamRole.ParentTeamRole = role; } return(this); }
public async Task <CreateTeamRoleResponse> CreateTeamRoleAsync(CreateTeamRoleRequest request, ClaimsPrincipal claim) { var response = new CreateTeamRoleResponse(); var group = _context.TeamRoleGroups.Include(n => n.Conference) .FirstOrDefault(n => n.TeamRoleGroupId == request.RoleGroupId); if (group == null) { response.AddInvalidDataError("The given group was not found", nameof(request.RoleGroupId)); return(response); } var isAllowed = await _authService.IsUserAllowedToEditTeam(group.Conference.ConferenceId, claim); if (!isAllowed) { response.AddNoPermissionError("You don't have permission to create a Team role"); return(response); } ConferenceTeamRole parentRole = null; if (request.ParentRoleId != -1) { // We are also checking for the ConferenceId to make sure that the given Parent role is in // the same conference! parentRole = _context.ConferenceTeamRoles.FirstOrDefault(n => n.RoleId == request.ParentRoleId && n.Conference.ConferenceId == group.Conference.ConferenceId); } var role = new ConferenceTeamRole() { Conference = group.Conference, ParentTeamRole = parentRole, RoleName = request.RoleName, RoleShort = request.RoleShort, RoleFullName = request.RoleFullName, TeamRoleGroup = group, TeamRoleLevel = 0 }; _context.ConferenceTeamRoles.Add(role); await _context.SaveChangesAsync(); response.RoleId = role.RoleId; return(response); }
public void TestCreateTeamRoleProjectLeader() { var leaderAuth = new ConferenceRoleAuth() { Conference = conference, CanEditConferenceSettings = true, CanEditParticipations = true, CanSeeApplications = true, PowerLevel = 1, RoleAuthName = "Project-Owner" }; _context.ConferenceRoleAuthorizations.Add(leaderAuth); var leaderRoleGroup = new TeamRoleGroup() { FullName = "die Projektleitung", Name = "Projektleitung", TeamRoleGroupShort = "PL", GroupLevel = 1 }; _context.TeamRoleGroups.Add(leaderRoleGroup); var leaderRole = new ConferenceTeamRole() { Conference = conference, IconName = "pl", RoleFullName = "Projektleiter", ConferenceRoleAuth = leaderAuth, RoleName = "Projektleiter", RoleShort = "PL", TeamRoleGroup = leaderRoleGroup, TeamRoleLevel = 1, }; _context.ConferenceTeamRoles.Add(leaderRole); _context.SaveChanges(); var leaderRoleCallback = _context.ConferenceTeamRoles.FirstOrDefault(); Assert.NotNull(leaderRoleCallback); Assert.AreEqual(1, _context.ConferenceRoleAuthorizations.Count()); Assert.AreEqual(1, _context.ConferenceTeamRoles.Count()); Assert.AreEqual(1, _context.TeamRoleGroups.Count()); Assert.AreEqual("TeamRole", leaderRoleCallback.RoleType); }
public ConferenceTeamRole EnsureProjectOwnerRole() { var leaderRole = _context.ConferenceTeamRoles.FirstOrDefault(n => n.RoleName == "Projektleiter"); if (leaderRole == null) { var leaderAuth = EnsureProjectOwnerAuth(); var leaderRoleGroup = EnsureOwnerTeamRoleGroup(); leaderRole = new ConferenceTeamRole() { Conference = TestConference, IconName = "pl", RoleFullName = "Projektleiter", ConferenceRoleAuth = leaderAuth, RoleName = "Projektleiter", RoleShort = "PL", TeamRoleGroup = leaderRoleGroup, TeamRoleLevel = 1, }; _context.ConferenceTeamRoles.Add(leaderRole); _context.SaveChanges(); } return(leaderRole); }
public void TestCreateARole() { teamRole = EnsureProjectOwnerRole(); }
public TeamRoleBuilder(TeamRoleGroup group = null) { this.Role = new ConferenceTeamRole(); Role.TeamRoleGroup = group; }
public TeamRoleBuilder WithParent(ConferenceTeamRole role) { Role.ParentTeamRole = role; return(this); }