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);
        }