public async Task <ResultData <Team> > CreateTeamAsync(string name, string ownerId) { if (string.IsNullOrEmpty(name)) { return(new ResultData <Team>(TeamNullMessage, false)); } if (string.IsNullOrEmpty(ownerId)) { return(new ResultData <Team>(OwnerIdNullMessage, false)); } Team newTeam = new Team() { Name = name, OwnerId = ownerId, CreationDate = DateTime.Now }; if (!_userRepository.UserExists(ownerId)) { string errorMessage = string.Format(UserDoesntExistMessage, ownerId); return(new ResultData <Team>(errorMessage, false, newTeam)); } if (_teamRepository.TeamNameAlreadyExists(newTeam.Name)) { string errorMessage = string.Format(TeamNameExistsMessage, newTeam.Name); return(new ResultData <Team>(errorMessage, false, newTeam)); } Team team = await _teamRepository.CreateTeamAsync(newTeam); TeamUser teamUser = new TeamUser { TeamId = team.Id, UserId = ownerId }; await _userRepository.AddUserToTeamAsync(teamUser); string successMessage = string.Format(TeamCreateSuccessMessage, team.Id); return(new ResultData <Team>(successMessage, true, team)); }