public ModifyInstructorAndCourses.Response ModifyInstructorAndCourses(ModifyInstructorAndCourses.Request request)
        {
            var retVal = Logger.TraceCall(() =>
            {
                var requestHandler = new ModifyInstructorAndCoursesHandler(_Repository);
                var response = requestHandler.Handle(request);
                return response;
            });

            return retVal;
        }
        public ModifyInstructorAndCourses.Response Handle(ModifyInstructorAndCourses.Request request)
        {
            var validationDetails = Validator.ValidateRequest(request);
            if (validationDetails.HasValidationIssues)
                return new ModifyInstructorAndCourses.Response(validationDetails);

            var commandModel = request.CommandModel;
            var instructor = _Repository.GetEntity<Instructor>(
                p => p.ID == commandModel.InstructorId,
                new EagerLoadingQueryStrategy<Instructor>(
                    p => p.Courses,
                    p => p.OfficeAssignment));

            var container = instructor.Modify(_Repository, request.CommandModel);
            validationDetails = _Repository.Save(container);

            return new ModifyInstructorAndCourses.Response(validationDetails);
        }