private void MapRequestToCourseItemProperties(UpdateCourseItemByTeacherCommand request, CourseItem item) { item.Order = request.Order; item.Title = request.Title; item.TeacherMessageForAdmin = request.TeacherMessageForAdmin; item.State = CourseItemApprovalState.PendingToApproveByAdmin; item.IsPreview = request.IsPreview; }
private async Task HandleUploadedFileAndItemFilePath(UpdateCourseItemByTeacherCommand request, CourseItem item) { if (request.File != null) { _coursesFileManager.DeleteFile(item.FilePath); var course = _courseRepository.GetQueryable().Include(x => x.Teacher).First(x => x.Id == request.Id); 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); } }
public async Task <Response <CourseItemViewModel> > Handle(UpdateCourseItemByTeacherCommand request, CancellationToken cancellationToken) { var item = await _courseItemRepository.GetById(request.Id); var course = await _courseRepository.GetById(item.CourseId); course.HasPendingItemToApprove = true; MapRequestToCourseItemProperties(request, item); try { await HandleUploadedFileAndItemFilePath(request, item); await UpdateData(course, item); } catch (Exception e) { _unitOfWork.RollBack(); return(Response <CourseItemViewModel> .Failed()); } return(Response <CourseItemViewModel> .Success(_mapper.Map <CourseItemViewModel>(item))); }