Example #1
0
        public TeamResponseDTO Create(CreateTeamRequestDTO requestDTO)
        {
            if (this.FindOneByNameAndCourse(requestDTO.name, requestDTO.courseUUID) != null)
            {
                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()
            {
                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.CREATE_TEAM(team), this._modelMapper.MapToTeam);

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

            response.teacher = teacher;
            response.course  = course;

            return(response);
        }
 public ActionResult <TeamResponseDTO> HandleCreateTeam(CreateTeamRequestDTO requestDTO)
 {
     return(Ok(this._teamService.Create(requestDTO)));
 }