コード例 #1
0
        public void ThenShouldNotHaveAPendingMembershipForTeam(string userId, int teamId)
        {
            var  teamQuery = new GetTeamByIdQuery(teamId);
            Team team      = context.Dispatcher.ExecuteQuery(teamQuery);

            team.Members.Any(x => x.User.Id == userId && x.Status == MembershipStatus.Pending).Should().BeFalse();
        }
コード例 #2
0
        public IActionResult GetTeamById([FromRoute] int teamId)
        {
            var query  = new GetTeamByIdQuery(teamId);
            var result = QueryDispatcher.Retrive <GetTeamByIdQueryResult, GetTeamByIdQuery>(query);

            if (result == null)
            {
                return(BadRequest());
            }

            return(Ok(result));
        }
コード例 #3
0
        public override void Execute(JoinTeamCommand command, ICommandAndQueryDispatcher dispatcher)
        {
            var  teamQuery = new GetTeamByIdQuery(command.TeamId);
            Team team      = dispatcher.ExecuteQuery(teamQuery);

            if (UserIsNotAMemberOfTeam(command.GetUserId, team))
            {
                var userQuery = new GetUserByIdQuery(command.GetUserId);
                team.Members.Add(new TeamMembership(dispatcher.ExecuteQuery(userQuery), MembershipStatus.Pending));
            }

            db.SaveChanges();
        }
コード例 #4
0
        public async Task<IActionResult> GetTeamById([FromRoute] GetTeamByIdQuery query)
        {
            _logger.LogInformation(LoggingEvents.GetItem, "Getting team {id}", query.Id);
            var team = await CommandAsync(query);

            if (team == null)
            {
                _logger.LogWarning(LoggingEvents.GetItemNotFound, "Team {id} not found", query.Id);
                return NotFound();
            }

            return Ok(team);
        }
コード例 #5
0
        public override void Execute(UpdateMembershipStatusCommand command, ICommandAndQueryDispatcher dispatcher)
        {
            var  getTeamQuery = new GetTeamByIdQuery(command.TeamId);
            Team team         = dispatcher.ExecuteQuery(getTeamQuery);

            if (!team.Owner.IsCurrentUser())
            {
                throw new InvalidOperationException("Only the owner of the team can update the membership status");
            }

            TeamMembership teamMembership = team.Members.Single(m => m.User.Id == command.UserIdToUpdate);

            teamMembership.Status = command.NewStatus;
            db.SaveChanges();
        }