public IActionResult CreateCourseEdition([FromBody] CourseEditionViewModel editionViewModel) { if (editionViewModel == null || editionViewModel.CourseId < 0) { return(BadRequest()); } if (editionViewModel.EndDate < editionViewModel.StartDate) { ModelState.AddModelError("StartDate", "Start date must be prior to end date."); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } editionWork.Begin(); var course = editionWork.Courses.FindByID(editionViewModel.CourseId); if (course == null) { return(NotFound()); } var edition = new CourseEdition() { CourseId = editionViewModel.CourseId, StartDate = editionViewModel.StartDate, EndDate = editionViewModel.EndDate, Cost = editionViewModel.Cost }; editionWork.CourseEditions.Add(edition); editionWork.Save(); editionWork.End(); return(CreatedAtRoute("GetCourseEdition", new { edition.Id }, edition.ToViewModel())); }
public void CreateCourseEdition() { var courseEditionViewModel = new CourseEditionViewModel { StartDate = DateTime.Today, EndDate = VALID_END_DATE, CourseId = VALID_COURSE_ID, Cost = COST }; mockCourseRepository.Setup(r => r.FindByID(VALID_COURSE_ID)).Returns(new Course { Id = VALID_COURSE_ID }); var result = controller.CreateCourseEdition(courseEditionViewModel); result.Should().BeOfType <CreatedAtRouteResult>(); CreatedAtRouteResult created = result as CreatedAtRouteResult; created.RouteName.Should().BeEquivalentTo(CourseEditionController.GET_COURSE_EDITION_ROUTE_NAME); created.Value.Should().Be(courseEditionViewModel); }