Example #1
0
        public async Task <TournamentAggregate?> FindByIdAsync(TournamentId id)
        {
            var tournament = await _context.Tournaments
                             .Include(t => t.TournamentSteps)
                             .ThenInclude <Tournament, TournamentStep, Step>(t => t.Step)
                             .FirstOrDefaultAsync(t => !t.IsDeleted && t.Id == id.Value);

            return(tournament is null ? null : ToAggregate(tournament));
        }
Example #2
0
        public async Task RemoveAsync(TournamentId id)
        {
            var tournament = await _context.Tournaments
                             .FirstOrDefaultAsync(t => !t.IsDeleted && t.Id == id.Value);

            if (tournament is not null)
            {
                tournament.IsDeleted = true;
            }
            await _context.SaveChangesAsync();
        }
        public async Task <string> Handle(LeaveTournamentCommand request, CancellationToken cancellationToken)
        {
            var team = await _teamRepository.FindByIdAsync(new TeamId(request.TeamId));

            if (team is null)
            {
                throw new ApplicationException($"Team with id {request.TeamId} doesn't exists");
            }
            var tournamentId = new TournamentId(request.TournamentId);

            team.LeaveTournament(tournamentId, _currentUserService.UserId);
            await _teamRepository.SetAsync(team);

            return(team.Id.ToString());
        }
        public void ValidateTournamentLeaving(TournamentId tournamentId, UserId memberId)
        {
            var errors = new List <string>();

            if (Admin.Id != memberId)
            {
                errors.Add($"Member with id {memberId} can't delete team");
            }
            if (!_tournamentIds.Contains(tournamentId))
            {
                errors.Add($"Team is not in tournament : {tournamentId}");
            }
            if (errors.Any())
            {
                throw new DomainException(errors);
            }
        }
 public void LeaveTournament(TournamentId tournamentId, UserId memberId)
 {
     ValidateTournamentLeaving(tournamentId, memberId);
     _tournamentIds.Remove(tournamentId);
 }
Example #6
0
 public void Setup()
 {
     _tournamentName        = "Test tournament name";
     _tournamentDescription = "Test tournament description";
     _tournamentId          = new TournamentId(Guid.NewGuid());
 }