Exemplo n.º 1
0
        public async Task <ApiSuccessResponse> CreateAsync(CourseCreateRequest request)
        {
            var course = new Course()
            {
                Code = request.Code,
                Name = request.Name
            };

            await _unitOfWork.CourseRepository.CreateAsync(course);

            if (await _unitOfWork.AppSaveChangesAsync())
            {
                return(new ApiSuccessResponse()
                {
                    StatusCode = 200,
                    Message = "The course has been successfully created."
                });
            }

            throw new MyAppException("Something went wrong!");
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CreateCourse(
            [FromBody] CourseCreateRequest courseToCreate, [FromServices] IOptions <ApiBehaviorOptions> apiBehaviorOptions
            )
        {
            // find the instructor that wants to create the course
            var instructor = await _context.Instructors.FindAsync(courseToCreate.InstructorId);

            if (instructor == null)
            {
                return(NotFound());
            }

            // instructor can't create course of the same course name to their own courses. but 2 different instructors, can have same course name
            var duplicateCourse = await _context.Courses.AnyAsync(c =>
                                                                  c.InstructorId == instructor.Id &&
                                                                  c.CourseName.ToUpper() == courseToCreate.CourseName.ToUpper() &&
                                                                  c.Term.ToUpper() == courseToCreate.Term.ToUpper() &&
                                                                  c.Section.ToUpper() == courseToCreate.Section.ToUpper()
                                                                  );

            if (duplicateCourse)
            {
                ModelState.AddModelError(nameof(courseToCreate.CourseName), $"Error! Duplicate Course Exists...");
                return(apiBehaviorOptions.Value.InvalidModelStateResponseFactory(ControllerContext));
            }

            // map request to entity
            var course = _mapper.Map <Course> (courseToCreate);

            // save the course
            _context.Courses.Add(course);
            await _context.SaveChangesAsync();

            // return response at location
            var courseToReturn = _mapper.Map <CourseResponse> (course);

            return(CreatedAtAction(nameof(GetCourse), new { courseId = courseToReturn.Id }, courseToReturn));
        }
Exemplo n.º 3
0
 public async Task <IActionResult> Create(CourseCreateRequest request)
 {
     return(Ok(await _courseService.CreateAsync(request)));
 }