コード例 #1
0
        // 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));
        }
コード例 #2
0
ファイル: ModuleController.cs プロジェクト: pp33gt/CourseMgmt
        // 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));
        }