コード例 #1
0
        public async Task <ActionResult <CourseResource> > UpdateCourse(int id, [FromBody] SaveCourseResource saveCourseResource)
        {
            var validator        = new SaveCourseResourceValidator();
            var validationResult = await validator.ValidateAsync(saveCourseResource);

            var requestIsInvalid = id <= 0 || !validationResult.IsValid;

            if (requestIsInvalid)
            {
                _logger.LogError(DateTime.Now + "\nUpdating course failed, validation isn't valid\n" + validationResult.Errors.ToString());
                return(BadRequest(validationResult.Errors));
            }

            var courseToBeUpdate = await _courseService.GetCourseWithLecturerById(id);

            var course = _mapper.Map <SaveCourseResource, Course>(saveCourseResource);

            course.Id = id;

            await _courseService.UpdateCourse(course);

            var updatedCourse = await _courseService.GetCourseWithLecturerById(id);

            var updatedCourseResource = _mapper.Map <Course, SaveCourseResource>(updatedCourse);

            return(Ok(updatedCourseResource));
        }
コード例 #2
0
        public async Task CreateCourse_LecturerIdEmptyValidationError_Test()
        {
            // Arrange
            var newCourse = new SaveCourseResource {
                Name = "New"
            };
            // Act
            var result = await Controller.CreateCourse(newCourse);

            var badRequest = result.Result as BadRequestObjectResult;

            // Assert
            Assert.That(badRequest is BadRequestObjectResult);
        }
コード例 #3
0
        public async Task UpdateCourse_IdLowerThanOneValidationError_Test(int id)
        {
            // Arrange
            var updateCourse = new SaveCourseResource
            {
                Name = "Update"
            };
            // Act
            var result = await Controller.UpdateCourse(id, updateCourse);

            var badRequest = result.Result as BadRequestObjectResult;

            // Assert
            Assert.That(badRequest is BadRequestObjectResult);
        }
コード例 #4
0
        public async Task <IActionResult> Create([FromBody] SaveCourseResource courseResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var course = mapper.Map <SaveCourseResource, Course>(courseResource);

            unitOfWork.Courses.Add(course);
            await unitOfWork.CompleteAsync();

            var result = mapper.Map <Course, SaveCourseResource>(course);

            return(Ok(result));
        }
コード例 #5
0
        public async Task <IActionResult> PostAsync([FromBody] SaveCourseResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }
            var course = _mapper.Map <SaveCourseResource, Course>(resource);
            var result = await _courseService.SaveAsync(course);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }
            var courseResource = _mapper.Map <Course, CourseResource>(result.Resource);

            return(Ok(courseResource));
        }
コード例 #6
0
        public async Task <IActionResult> Update(int id, [FromBody] SaveCourseResource resouce)
        {
            var course = await unitOfWork.Courses.Get(id);

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

            resouce.Id = course.Id;
            mapper.Map <SaveCourseResource, Course>(resouce, course);
            await unitOfWork.CompleteAsync();

            var result = mapper.Map <Course, CourseResource>(course);

            return(Ok(result));
        }
コード例 #7
0
        public async Task CreateCourse_NormalConditions_Test()
        {
            // Arrange
            var newCourse = new SaveCourseResource {
                Name = "New", LecturerId = 1
            };
            // Act
            await Controller.CreateCourse(newCourse);

            var result = await Controller.GetAllCourses();

            var okObject   = result.Result as OkObjectResult;
            var collection = okObject.Value as IEnumerable <CourseResource>;

            // Assert
            Service.Verify(x => x.CreateCourse(It.IsAny <Course>()), Times.Once);
            Assert.That(collection.ElementAt(2).Name, Is.EqualTo("New"));
        }
コード例 #8
0
        public async Task <ActionResult <CourseResource> > CreateCourse([FromBody] SaveCourseResource saveCourseResource)
        {
            var validator        = new SaveCourseResourceValidator();
            var validationResult = await validator.ValidateAsync(saveCourseResource);

            if (!validationResult.IsValid)
            {
                _logger.LogError(DateTime.Now + "\nCreating course failed, validation isn't valid\n" + validationResult.Errors);
                return(BadRequest(validationResult.Errors));
            }

            var courseToCreate = _mapper.Map <SaveCourseResource, Course>(saveCourseResource);

            var result = await _courseService.CreateCourse(courseToCreate);

            var createdCourse = _mapper.Map <Course, CourseResource>(result);

            return(Ok(createdCourse));
        }
コード例 #9
0
        [HttpPut("{courseId}")] //TAMPOCO
        public async Task <IActionResult> PutAsync([FromRoute] int inscriptionProcessId, int courseId, [FromBody] SaveCourseResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var course = _mapper.Map <SaveCourseResource, Course>(resource);
            var result = await _courseService.UpdateAsync(inscriptionProcessId, courseId, course);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }

            var courseResource = _mapper.Map <Course, CourseResource>(result.Resource);

            return(Ok(courseResource));
        }