Ejemplo n.º 1
0
        public async Task <IActionResult> ClaimTeam([FromBody] int teamId)
        {
            if (_userManager.Users.Any(u => u.TeamId == teamId))
            {
                return(BadRequest("Team is already claimed"));
            }

            var user = await _userManager.GetAppUser(HttpContext.User);

            if (await _userManager.IsInRoleAsync(user, "TeamManager"))
            {
                _dispatcher.Dispatch(new TeamUnClaimedEvent(user.TeamId));
            }
            else
            {
                await _userManager.AddToRoleAsync(user, "TeamManager");

                _timerService.AddTeamManager(user.Id);
            }

            user.TeamId = teamId;
            await _userManager.UpdateAsync(user);

            _dispatcher.Dispatch(new TeamClaimedEvent(teamId));

            return(Ok());
        }