public async Task <CreateCourseViewModel> Handle(CreateCourseCommand request, CancellationToken cancellationToken) { var userId = HttpContextAccessor.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier); Instructor user = _context.Instructors.FirstOrDefault(u => u.Id == userId); if (user == null) { throw new CustomException(new Error { ErrorType = ErrorType.Unauthorized, Message = Localizer["Unauthorized"] }); } Domain.Models.Course courseObj = new Domain.Models.Course { CourseTitle = request.CourseTitle, Instructor = user, InstructorId = userId, EndDate = request.EndDate }; await _context.Courses.AddAsync(courseObj, cancellationToken); await _context.SaveChangesAsync(cancellationToken); return(new CreateCourseViewModel { Course = _mapper.Map <ViewCourseDto>(courseObj) }); }
public async Task <Unit> Handle(UpdateCourseCommand request, CancellationToken cancellationToken) { var userId = HttpContextAccessor.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier); Instructor user = _context.Instructors.FirstOrDefault(u => u.Id == userId); if (user == null) { throw new CustomException(new Error { ErrorType = ErrorType.Unauthorized, Message = Localizer["Unauthorized"] }); } Domain.Models.Course courseObj = new Domain.Models.Course { CourseId = request.CourseId, CourseTitle = request.CourseTitle, Instructor = user, InstructorId = userId }; _context.Courses.Update(courseObj); await _context.SaveChangesAsync(cancellationToken); return(Unit.Value); }
public async Task <AddCourseEventViewModel> Handle(AddCourseEventCommand request, CancellationToken cancellationToken) { var userId = HttpContextAccessor.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier); Instructor user = _context.Instructors.FirstOrDefault(u => u.Id == userId); if (user == null) { throw new CustomException(new Error { ErrorType = ErrorType.Unauthorized, Message = Localizer["Unauthorized"] }); } Domain.Models.Course courseObj = _context.Courses.Include(c => c.CourseEvents). FirstOrDefault(c => c.CourseId == request.CourseId); if (courseObj == null) { throw new CustomException(new Error { ErrorType = ErrorType.CourseNotFound, Message = Localizer["CourseNotFound"] }); } Domain.Models.CourseEvent courseEvent = new Domain.Models.CourseEvent { EventName = request.EventName, EventDescription = request.EventDescription, EventType = request.EventType, Course = courseObj, CourseId = request.CourseId, EventTime = request.EventTime }; await _context.CourseEvents.AddAsync(courseEvent, cancellationToken); await _context.SaveChangesAsync(cancellationToken); return(new AddCourseEventViewModel { CourseEvent = _mapper.Map <ViewCourseCourseEventDto>(courseEvent) }); }