public IActionResult _Index(int ID) { Dictionary <int, IEnumerable <CourseLessons> > lessonVMs = new Dictionary <int, IEnumerable <CourseLessons> >(); var lstChapter = _chapterService.GetCondition(m => m.CourseId == ID) .Select(m => new { m.Id, m.NameChapter, m.CourseId, m.OrderChapter }) .OrderBy(m => m.OrderChapter); foreach (var item in lstChapter) { var lstLesson = _courseLessonService.GetCondition(m => m.ChapterId == item.Id) .Select(m => new CourseLessons { Id = m.Id, Name = m.Name, ChapterId = m.ChapterId, SortOrder = m.SortOrder }) .OrderBy(m => m.SortOrder); lessonVMs.Add(item.Id, lstLesson); } return(Json(new { status = true, lstChapter = lstChapter, lessonVMs = lessonVMs })); }
public async Task <IActionResult> Detail(CourseLessonVM vm) { var idCourse = _chapterService.GetCondition(m => m.Id == vm.ChapterId).Select(m => m.CourseId).FirstOrDefault(); if (ModelState.IsValid) { try { if (vm.Video != null) { string nameVideo = Path.GetFileName(vm.Video.FileName); string pathUpload = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\resource\videos\" + idCourse); string savePath = Path.Combine(pathUpload, nameVideo); string saveDBPath = Path.Combine(@"\resource\videos\" + idCourse, nameVideo); if (!Directory.Exists(pathUpload)) { Directory.CreateDirectory(pathUpload); } using (var stream = new FileStream(savePath, FileMode.Create)) { await vm.Video.CopyToAsync(stream); } vm.VideoPath = saveDBPath; } if (vm.Slide != null) { string nameVideo = Path.GetFileName(vm.Slide.FileName); string pathUpload = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\resource\slides\" + idCourse); string savePath = Path.Combine(pathUpload, nameVideo); string saveDBPath = Path.Combine(@"\resource\slides\" + idCourse, nameVideo); if (!Directory.Exists(pathUpload)) { Directory.CreateDirectory(pathUpload); } using (var stream = new FileStream(savePath, FileMode.Create)) { await vm.Slide.CopyToAsync(stream); } vm.SlidePath = saveDBPath; } if (vm.Id == 0) { vm.Status = false; var model = _mapper.Map <CourseLessons>(vm); await _courseLessonService.CreateAsync(model); return(RedirectToAction("Detail", new { ID = idCourse })); } else { vm.Status = false; var model = _mapper.Map <CourseLessons>(vm); await _courseLessonService.UpdateAsync(model); return(RedirectToAction("Detail", new { ID = idCourse })); } } catch (Exception) { return(RedirectToAction("Detail", new { ID = idCourse })); } } return(RedirectToAction("Detail", new { ID = idCourse })); }