예제 #1
0
        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));
        }