Ejemplo n.º 1
0
        public TeamResponseDTO Update(UpdateTeamRequestDTO requestDTO)
        {
            var old = this.FindOneByUUID(requestDTO.uuid);

            if (old == null)
            {
                throw new EntityNotFoundException($"Team with uuid {requestDTO.uuid} doesn't exist!", GeneralConsts.MICROSERVICE_NAME);
            }

            var similar = this.FindOneByNameAndCourse(requestDTO.name, requestDTO.courseUUID);

            if (similar != null && similar.name != old.name)
            {
                throw new EntityAlreadyExistsException($"Team with name {requestDTO.name} already exists in Course {requestDTO.courseUUID}!", GeneralConsts.MICROSERVICE_NAME);
            }

            TeacherDTO teacher = this._httpClientService.SendRequest <TeacherDTO>(HttpMethod.Get, "http://localhost:40001/api/users/teachers/" + requestDTO.teacherUUID, new UserPrincipal(_httpContextAccessor.HttpContext).token).Result;

            if (teacher == null)
            {
                throw new EntityAlreadyExistsException($"Teacher with uuid {requestDTO.teacherUUID} doesn't exist!", GeneralConsts.MICROSERVICE_NAME);
            }

            CourseDTO course = this._httpClientService.SendRequest <CourseDTO>(HttpMethod.Get, "http://localhost:40005/api/courses/" + requestDTO.courseUUID, new UserPrincipal(_httpContextAccessor.HttpContext).token).Result;

            if (course == null)
            {
                throw new EntityAlreadyExistsException($"Course with uuid {requestDTO.courseUUID} doesn't exist!", GeneralConsts.MICROSERVICE_NAME);
            }

            Team team = new Team()
            {
                uuid        = requestDTO.uuid,
                name        = requestDTO.name,
                description = requestDTO.description,
                teacher     = new Teacher()
                {
                    uuid = requestDTO.teacherUUID
                },
                course = new Course()
                {
                    uuid = requestDTO.courseUUID
                }
            };

            team = this._queryExecutor.Execute <Team>(DatabaseConsts.USER_SCHEMA, this._sqlCommands.UPDATE_TEAM(team), this._modelMapper.MapToTeam);

            TeamResponseDTO response = this._autoMapper.Map <TeamResponseDTO>(team);

            response.teacher = teacher;
            response.course  = course;
            return(response);
        }
Ejemplo n.º 2
0
 public ActionResult <TeamResponseDTO> HandleUpdateTeam(UpdateTeamRequestDTO requestDTO)
 {
     return(Ok(this._teamService.Update(requestDTO)));
 }