예제 #1
0
        public async Task <ResultData <Team> > UpdateTeamAsync(Team team)
        {
            if (!_teamRepository.TeamExists(team.Id))
            {
                string errorMessage = string.Format(TeamDoesntExistMessage, team.Id);
                return(new ResultData <Team>(errorMessage, false, team));
            }

            Team oldTeam = await _teamRepository.GetTeamByIdAsync(team.Id);

            if (team.OwnerId == null)
            {
                if (_teamRepository.TeamNameAlreadyExists(team.Name))
                {
                    string errorMessage = string.Format(TeamNameExistsMessage, team.Name);
                    return(new ResultData <Team>(errorMessage, false, team));
                }

                oldTeam.Name = team.Name;
            }

            if (team.Name == null)
            {
                if (!_userRepository.UserExists(team.OwnerId))
                {
                    string errorMessage = string.Format(UserDoesntExistMessage, team.OwnerId);
                    return(new ResultData <Team>(errorMessage, false, team));
                }

                oldTeam.OwnerId = team.OwnerId;
            }

            await _teamRepository.UpdateTeamAsync(oldTeam);

            string successMessage = string.Format(UpdateTeamSuccessMessage, oldTeam);

            return(new ResultData <Team>(successMessage, true, oldTeam));
        }