public CreateInstructorWithCourses.Response CreateInstructorWithCourses(CreateInstructorWithCourses.Request request) { var retVal = Logger.TraceCall(() => { var requestHandler = new CreateInstructorWithCoursesHandler(_Repository); var response = requestHandler.Handle(request); return response; }); return retVal; }
public CreateInstructorWithCourses.Response Handle(CreateInstructorWithCourses.Request request) { var validationDetails = Validator.ValidateRequest(request); if (validationDetails.HasValidationIssues) return new CreateInstructorWithCourses.Response(validationDetails); var container = InstructorFactory.Create(_Repository, request.CommandModel); validationDetails = _Repository.Save(container); var instructorId = default(int?); if (!validationDetails.HasValidationIssues) instructorId = container.FindEntity<Instructor>().ID; return new CreateInstructorWithCourses.Response(validationDetails, instructorId); }
public static EntityStateWrapperContainer Create(IQueryRepository queryRepository, CreateInstructorWithCourses.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 new EntityStateWrapperContainer().AddEntity(instructor); }