Beispiel #1
0
        public CourseTeacherResponseDTO CreateTeacherOnCourse(CreateCourseTeacherRequestDTO request)
        {
            //provera da li postoji kurs
            CourseResponseDTO course = this._courseService.GetOneByUuid(request.courseUUID);

            //provera da li postoji profesor
            try
            {
                TeacherResponseDTO newTeacher = this._httpClientService.SendRequest <TeacherResponseDTO>(HttpMethod.Get, "http://localhost:40001/api/users/" + request.teacherUUID, new UserPrincipal(_httpContextAccessor.HttpContext).token).Result;
            }
            catch
            {
                throw new EntityNotFoundException($"Teacher with uuid: {request.teacherUUID} does not exist!", GeneralConsts.MICROSERVICE_NAME);
            }

            //provera da li vec postoji profesor na kursu
            CourseTeacher existingCourseTeacher = FindTeacherOnCourse(request.courseUUID, request.teacherUUID);

            if (existingCourseTeacher != null)
            {
                if (existingCourseTeacher.activeTeacher == false)
                {
                    CourseTeacher updatedTeacher = this._autoMapper.Map <CourseTeacher>(request);
                    updatedTeacher.activeTeacher = true;
                    updatedTeacher.course        = new Course()
                    {
                        uuid = request.courseUUID
                    };
                    updatedTeacher.teacher = new Teacher()
                    {
                        uuid = request.teacherUUID
                    };
                    updatedTeacher = this._queryExecutor.Execute <CourseTeacher>(DatabaseConsts.USER_SCHEMA, this._sqlCommands.UPDATE_TEACHER_COURSE(updatedTeacher), this._modelMapper.MapToCourseTeacher);
                    CourseTeacherResponseDTO updatedResponse = this._autoMapper.Map <CourseTeacherResponseDTO>(updatedTeacher);
                    return(connectWithUser(updatedResponse));
                }
                else
                {
                    throw new EntityAlreadyExistsException("Teacher with uuid " + request.courseUUID + " already exists in course with uuid " + request.teacherUUID, GeneralConsts.MICROSERVICE_NAME);
                }
            }
            CourseTeacher courseTeacher = this._autoMapper.Map <CourseTeacher>(request);

            courseTeacher.course = new Course()
            {
                uuid = request.courseUUID
            };
            courseTeacher.teacher = new Teacher()
            {
                uuid = request.teacherUUID
            };
            courseTeacher.activeTeacher = true;
            this._queryExecutor.Execute <CourseTeacher>(DatabaseConsts.USER_SCHEMA, this._sqlCommands.CREATE_TEACHER_COURSE(courseTeacher), this._modelMapper.MapToCourseTeacher);
            CourseTeacherResponseDTO response = this._autoMapper.Map <CourseTeacherResponseDTO>(courseTeacher);

            return(connectWithUser(response));
        }
Beispiel #2
0
        //DELETE METHODS
        public CourseTeacherResponseDTO DeleteTeacherOnCourse(string uuid, string teacherUUID)
        {
            //provera da li postoji profesor na kursu
            CourseTeacher courseTeacher = FindTeacherOnCourseOrThrow(uuid, teacherUUID);

            courseTeacher.activeTeacher = false;
            courseTeacher = this._queryExecutor.Execute <CourseTeacher>(DatabaseConsts.USER_SCHEMA, this._sqlCommands.UPDATE_TEACHER_COURSE(courseTeacher), this._modelMapper.MapToCourseTeacher);
            CourseTeacherResponseDTO response = this._autoMapper.Map <CourseTeacherResponseDTO>(courseTeacher);

            return(connectWithUser(response));
        }
Beispiel #3
0
        //HELPER METHODS
        public CourseTeacherResponseDTO connectWithUser(CourseTeacherResponseDTO response)
        {
            TeacherResponseDTO newTeacher;

            try
            {
                newTeacher = this._httpClientService.SendRequest <TeacherResponseDTO>(HttpMethod.Get, "http://localhost:40001/api/users/" + response.teacher.uuid, new UserPrincipal(_httpContextAccessor.HttpContext).token).Result;
            }
            catch
            {
                throw new EntityNotFoundException($"Teacher with uuid: {response.teacher.uuid} does not exist!", GeneralConsts.MICROSERVICE_NAME);
            }

            response.teacher = newTeacher;
            response.course  = this._courseService.GetOneByUuid(response.course.uuid);
            return(response);
        }
Beispiel #4
0
        //PUT METHODS
        public CourseTeacherResponseDTO UpdateTeacherOnCourse(UpdateCourseTeacherRequestDTO request)
        {
            //provera da li postoji profesor na kursu
            CourseTeacher oldCourseTeacher = FindTeacherOnCourseOrThrow(request.courseUUID, request.teacherUUID);
            CourseTeacher newCourseTeacher = this._autoMapper.Map <CourseTeacher>(request);

            newCourseTeacher.course = new Course()
            {
                uuid = request.courseUUID
            };
            newCourseTeacher.teacher = new Teacher()
            {
                uuid = request.teacherUUID
            };

            newCourseTeacher = this._queryExecutor.Execute <CourseTeacher>(DatabaseConsts.USER_SCHEMA, this._sqlCommands.UPDATE_TEACHER_COURSE(newCourseTeacher), this._modelMapper.MapToCourseTeacher);

            CourseTeacherResponseDTO response = this._autoMapper.Map <CourseTeacherResponseDTO>(newCourseTeacher);

            return(connectWithUser(response));
        }