// Update instructor with course 
        public static InstructorCreateWithCourses.Response Handle(IRepository repository, InstructorCreateWithCourses.Request request)
        {

            // Validation now performed in the dispacther decorators (See AutoValidate<T> in the DomainBootstrapper class)

            var container = new EntityStateWrapperContainer();
            container.AddEntity(InstructorFactory.Create(repository, request.CommandModel));
            var validationDetails = repository.Save(container);

            var instructorId = default(int?);
            if (!validationDetails.HasValidationIssues)
                instructorId = container.FindEntity<Instructor>().ID;

            return new InstructorCreateWithCourses.Response(validationDetails, instructorId);
        }
        public static Instructor Create(IQueryRepository queryRepository, InstructorCreateWithCourses.CommandModel commandModel)
        {
            // could use Course.CreatePartial here and attachEntities using EntityStateWrapperContainer
            var courses = commandModel.SelectedCourses == null
                ? new Course[0].ToList()
                : queryRepository.GetEntities<Course>(new FindByIdsSpecificationStrategy<Course>(p => p.CourseID, commandModel.SelectedCourses)).ToList();

            var instructor = new Instructor
            {
                HireDate = commandModel.HireDate,
                FirstMidName = commandModel.FirstMidName,
                LastName = commandModel.LastName,
                Courses = courses,
                OfficeAssignment = new OfficeAssignment { Location = commandModel.OfficeLocation },
            };

            return instructor;
        }