// GET: Modules/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var module = await db.Modules .Include(c => c.Course) .FirstOrDefaultAsync(m => m.Id == id); if (module == null) { return(NotFound()); } // All activities in the module. var activities = await db.Activities.Where(a => a.ModuleId == module.Id).ToListAsync(); // All activity Ids in the module. var activityIds = await db.Activities.Where(a => a.ModuleId == module.Id).Select(i => i.Id).ToListAsync(); // All documents in the module. var documents = await db.Documents.Where(d => d.ModuleId == module.Id) .Include(a => a.Activity) .Include(u => u.AppUser) .ToListAsync(); // All documents in the activities in the module. foreach (var doc in await db.Documents.Include(a => a.Activity).ToListAsync()) { foreach (var i in activityIds) { if (doc.ActivityId == i) { if (!documents.Contains(doc)) { documents.Add(doc); } } } } var viewmodel = new ModuleDetailsViewModel { Module = module, Documents = documents }; return(View(viewmodel)); }
// GET: Module/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var module = await _context.Modules.FirstOrDefaultAsync(a => a.Id == id); if (module is null) { return(NotFound()); } var course = await _context.Courses.FirstOrDefaultAsync(a => a.Id == module.CourseId); if (course is null) { return(NotFound()); } //var model = _mapper.Map<ModuleDetailsViewModel>(@module); var model = new ModuleDetailsViewModel() { CourseId = course.Id, CourseName = course.Name, Id = module.Id, Name = module.Name, Description = module.Description, StartDate = module.StartDate, EndDate = module.EndDate, ParentStartDate = course.StartDate, ParentEndDate = course.EndDate }; model.CourseId = course.Id; model.CourseName = course.Name; model.Activities = new List <ActivityDetailsViewModel>(); var activities = _context.Activities .Include(a => a.Module) .Include(a => a.ActivityType) .Where(a => a.ModuleId == id) .OrderBy(d => d.StartDate) .ThenBy(e => e.EndDate).ToList(); activities.ForEach(a => model.Activities.Add(_mapper.Map <ActivityDetailsViewModel>(a))); model.Documents = new List <DocumentListViewModel>(); var documents = _context.ModuleDocument.Where(d => d.ModuleId == id).ToList(); foreach (var doc in documents) { var newDoc = _mapper.Map <DocumentListViewModel>(doc); newDoc.Filezise = (doc.DocumentData.Length).Bytes().Humanize("#.#"); model.Documents.Add(newDoc); } return(View(model)); }