public static Team FromRequest(PostTeamRequest postTeamRequest)
 {
     return(new Team
     {
         Id = GetIdFromNameAndLeague(postTeamRequest.Name, postTeamRequest.LeagueName),
         Name = postTeamRequest.Name,
         DomesticLeagueName = postTeamRequest.LeagueName
     });
 }
        public async Task <ActionResult> PostTeam(PostTeamRequest postTeamRequest)
        {
            try
            {
                var result = await _teamService.AddAsync(postTeamRequest);

                return(Created(result.url, result.createdDto));
            }
            catch (ArgumentException aEx)
            {
                return(BadRequest(aEx.Message));
            }
        }
        public async Task <(string, TeamDTO)> AddAsync(PostTeamRequest postTeamRequest)
        {
            var  toAddEntity   = Team.FromRequest(postTeamRequest);
            bool alreadyExists = (await _dbContext.Teams.FindAsync(toAddEntity.Id)) != null;

            if (alreadyExists)
            {
                throw new ArgumentException($"Team with name {toAddEntity.Name} in league {toAddEntity.DomesticLeagueName} already exists");
            }

            _dbContext.Teams.Add(toAddEntity);
            await _dbContext.SaveChangesAsync();

            return("todo: generate URL", toAddEntity.ToDto());
        }