コード例 #1
0
    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));
    }
コード例 #2
0
        public async Task <CreateTeamRoleGroupResponse> CreateTeamRoleGroupAsync(CreateTeamRoleGroupRequest request, ClaimsPrincipal claim)
        {
            var response  = new CreateTeamRoleGroupResponse();
            var isAllowed = await _authService.IsUserAllowedToEditTeam(request.ConferenceId, claim);

            if (!isAllowed)
            {
                response.AddNoPermissionError();
                return(response);
            }

            var conference = _context.Conferences.FirstOrDefault(n => n.ConferenceId == request.ConferenceId);

            if (conference == null)
            {
                response.AddNotFoundError(nameof(request.ConferenceId));
            }


            if (_context.TeamRoleGroups.Any(n => n.Conference.ConferenceId == request.ConferenceId && n.Name == request.GroupName))
            {
                response.AddNotFoundError(nameof(request.GroupName));
            }


            if (_context.TeamRoleGroups.Any(n => n.Conference.ConferenceId == request.ConferenceId && n.FullName == request.GroupFullName))
            {
                response.AddNotFoundError(nameof(request.GroupFullName));
            }


            if (_context.TeamRoleGroups.Any(n => n.Conference.ConferenceId == request.ConferenceId && n.TeamRoleGroupShort == request.GroupShort))
            {
                response.AddNotFoundError(nameof(request.GroupShort));
            }


            if (response.HasError)
            {
                return(response);
            }

            var group = new TeamRoleGroup()
            {
                Conference         = conference,
                FullName           = request.GroupFullName,
                GroupLevel         = request.GroupLevel,
                Name               = request.GroupName,
                TeamRoleGroupShort = request.GroupShort
            };

            _context.TeamRoleGroups.Add(group);
            await _context.SaveChangesAsync();

            response.CreatedGroupId = group.TeamRoleGroupId;
            return(response);
        }
コード例 #3
0
    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);
    }
コード例 #4
0
    public TeamRoleGroup EnsureOwnerTeamRoleGroup()
    {
        var leaderRoleGroup = _context.TeamRoleGroups.FirstOrDefault(n => n.Name == "Projektleitung");

        if (leaderRoleGroup == null)
        {
            leaderRoleGroup = new TeamRoleGroup()
            {
                FullName           = "die Projektleitung",
                Name               = "Projektleitung",
                TeamRoleGroupShort = "PL",
                GroupLevel         = 1
            };
            _context.TeamRoleGroups.Add(leaderRoleGroup);
            _context.SaveChanges();
        }
        return(leaderRoleGroup);
    }
コード例 #5
0
 public TeamRoleGroupBuilder()
 {
     Group = new TeamRoleGroup();
 }
コード例 #6
0
 public TeamRoleBuilder(TeamRoleGroup group = null)
 {
     this.Role          = new ConferenceTeamRole();
     Role.TeamRoleGroup = group;
 }