public async Task <StatusCodeResult> RemovePlayer([FromRoute] int teamId, [FromBody] PlayerOperationRequest request, CancellationToken cancellationToken)
        {
            var team = await _teamsRepository.GetByIdWithFormationAsync(teamId);

            var player = await _playersRepository.GetByIdAsync(request.PlayerId);

            team.Formation.RemovePlayer(player);
            await _teamsRepository.UpdateAsync(team);

            return(Ok());
        }
        public async Task <ActionResult <AddPlayerToRoosterResponse> > AddPlayerToRooster([FromRoute] int teamId, [FromBody] PlayerOperationRequest request, CancellationToken cancellationToken)
        {
            var team = await _teamsRepository.GetByIdWithRoosterAsync(teamId);

            var player = await _playersRepository.GetByIdAsync(request.PlayerId);

            team.AddPlayer(player);

            await _teamsRepository.UpdateAsync(team);

            var response = new AddPlayerToRoosterResponse();

            {
                response.TeamId   = teamId;
                response.PlayerId = request.PlayerId;
            }
            return(Ok(response));
        }
        public async Task <ActionResult <AddPlayerToFormationResponse> > AddPlayerToFormation([FromRoute] int teamId, [FromBody] PlayerOperationRequest request, CancellationToken cancellationToken)
        {
            var team = await _teamsRepository.GetByIdWithFormationAsync(teamId);

            var player = await _playersRepository.GetByIdAsync(request.PlayerId);

            team.Formation.AddPlayer(player);

            await _teamsRepository.UpdateAsync(team);

            var response = new AddPlayerToFormationResponse();

            {
                response.TeamId     = teamId;
                response.PlayerId   = request.PlayerId;
                response.PositionNo = team.Formation.Postitions.Single(x => x.Player?.Id == request.PlayerId).PositionNo;
            }
            return(Ok(response));
        }