public async Task<ActionResult> Create(CreateCourse.CommandModel commandModel)
        {
            var response = _CourseAppService.CreateCourse(new CreateCourse.Request(CurrentPrincipalHelper.Name, commandModel));
            if (!response.HasValidationIssues)
                return RedirectToAction("Index");

            ViewBag.DepartmentID = await CreateDepartmentSelectList(commandModel.DepartmentID);
            return View(commandModel);
        }
        public static EntityStateWrapperContainer Create(CreateCourse.CommandModel commandModel)
        {
            var course = new Course
            {
                CourseID = commandModel.CourseID,
                DepartmentID = commandModel.DepartmentID,
                Title = commandModel.Title,
                Credits = commandModel.Credits
            };

            return new EntityStateWrapperContainer().AddEntity(course);
        }
        public CreateCourse.Response Handle(CreateCourse.Request request)
        {
            var validationDetails = Validator.ValidateRequest(request);
            if (validationDetails.HasValidationIssues)
                return new CreateCourse.Response(validationDetails);

            var container = CourseFactory.Create(request.CommandModel);
            validationDetails = _Repository.Save(container);

            var courseId = default(int?);
            if (!validationDetails.HasValidationIssues)
                courseId = container.FindEntity<Course>().CourseID;

            return new CreateCourse.Response(validationDetails, courseId);
        }