public async Task <Response <CourseItemViewModel> > Handle(AddCourseItemByTeacherCommand request, CancellationToken cancellationToken) { var course = _courseRepository.GetQueryable().Include(x => x.Teacher).First(x => x.Id == request.CourseId); course.HasPendingItemToApprove = true; var item = new CourseItem { Order = request.Order, CourseId = request.CourseId, TeacherMessageForAdmin = request.TeacherMessageForAdmin, State = CourseItemApprovalState.PendingToApproveByAdmin, Title = request.Title, IsPreview = request.IsPreview, }; if (request.File != null) { await _coursesFileManager.SaveFile(request.File, course.Teacher.UserName, item.CourseId); item.FilePath = _coursesFileManager.GetFilePathForDownload(request.File, course.Teacher.UserName, item.CourseId); item.ContentType = GetContentType(request.File.ContentType); } await _courseItemRepository.AddAsync(item); await _courseRepository.EditAsync(course); return(Response <CourseItemViewModel> .Success(_mapper.Map <CourseItemViewModel>(item))); }
public async Task <CourseItemViewModel> Handle(AddCourseItemCommand request, CancellationToken cancellationToken) { var course = _courseRepo.GetQueryable().Include(x => x.Teacher).First(x => x.Id == request.CourseId); var item = new CourseItem { CourseId = request.CourseId, State = request.State, AdminMessageForTeacher = request.AdminMessageForTeacher, Order = request.Order != 0?request.Order:_courseItemRepo.GetQueryable().Count(x => x.CourseId == request.CourseId) + 1, Title = request.Title, ContentType = request.File != null?GetContentType(request.File.ContentType) : ContentType.File, FilePath = _coursesFileManager.GetFilePathForDownload(request.File, course.Teacher.UserName, request.CourseId), IsPreview = request.IsPreview }; await _coursesFileManager.SaveFile(request.File, course.Teacher.UserName, request.CourseId); await _courseItemRepo.AddAsync(item); return(_mapper.Map <CourseItemViewModel>(item)); }