Exemplo n.º 1
0
        public async Task <IActionResult> DetailsForStudent(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var course = await _context.Course
                         .Include(c => c.CourseDocuments)
                         .Include(c => c.Modules)
                         .ThenInclude(c => c.Activities)
                         .FirstOrDefaultAsync(c => c.Id == id);

            if (course == null)
            {
                return(NotFound());
            }

            course.Modules = course.Modules
                             .OrderBy(m => m.StartDate.Date)
                             .ThenBy(m => m.EndDate)
                             .ToList();

            foreach (CourseModule m in course.Modules)
            {
                m.Activities = m.Activities
                               .OrderBy(a => a.StartDate.Date)
                               .ThenBy(a => a.EndDate).ToList();
            }

            var user = await _userManager.Users.FirstOrDefaultAsync(u => u.UserName == User.Identity.Name);

            int?currentModuleId = null;

            foreach (CourseModule mod in course.Modules)
            {
                foreach (CourseActivity act in mod.Activities)
                {
                    if (act.Id == user.CourseActivityId)
                    {
                        currentModuleId = act.ModuleId;
                        break;
                    }
                }
                if (currentModuleId != null)
                {
                    break;
                }
            }

            if (user.CourseActivityId == null)
            {
                var firstModule = course.Modules.FirstOrDefault(m => true);
                if (firstModule == null)
                {
                    return(View(new CourseForStudent()
                    {
                        activeModuleId = null, activeActivityId = null, course = course
                    }));
                }
                currentModuleId = firstModule.Id;
                var firstActivity = firstModule.Activities.FirstOrDefault(a => true);
                if (firstActivity == null)
                {
                    return(View(new CourseForStudent()
                    {
                        activeModuleId = currentModuleId, activeActivityId = null, course = course
                    }));
                }
                user.CourseActivityId = firstActivity.Id;
                _context.Update(user);
                _context.SaveChanges();
            }

            var cfs = new CourseForStudent()
            {
                activeModuleId = currentModuleId, activeActivityId = user.CourseActivityId, course = course
            };

            return(View(cfs));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Index1()
        {
            var stu_id    = userManager.GetUserId(User);
            var course_id = await _context.LMSUserCourses
                            .Where(s => s.LMSUserId == stu_id)
                            .Select(c => c.CourseId)
                            .FirstOrDefaultAsync();

            //if (id == null)
            //{
            //    return NotFound();
            //}

            var course = await _context.Courses.Include(d => d.CourseDocuments)
                         .Include(m => m.CourseModules)
                         .ThenInclude(a => a.ModuleActivities)
                         .FirstOrDefaultAsync(c => c.CourseId == course_id);

            if (course == null)
            {
                return(NotFound());
            }

            course.CourseModules = course.CourseModules
                                   .OrderBy(m => m.StartDate.Date)
                                   .ThenBy(m => m.EndDate)
                                   .ToList();

            foreach (Module m in course.CourseModules)
            {
                m.ModuleActivities = m.ModuleActivities
                                     .OrderBy(a => a.StartDate.Date)
                                     .ThenBy(a => a.EndDate).ToList();
            }

            var user = await userManager.Users.FirstOrDefaultAsync(u => u.UserName == User.Identity.Name);

            int?currentModuleId = null;

            foreach (var mod in course.CourseModules)
            {
                foreach (Activity act in mod.ModuleActivities)
                {
                    currentModuleId = act.ModuleId;
                    break;
                }
                if (currentModuleId != null)
                {
                    break;
                }
            }

            var currentActivityId = _context.Activities.Where(a => a.ModuleId == currentModuleId);


            var cfs = new CourseForStudent()
            {
                activeModuleId = currentModuleId, course = course
            };

            foreach (var coursedocuments in cfs.course.CourseDocuments)
            {
                coursedocuments.DocumentPath = Path.GetFileName(coursedocuments.DocumentPath);
                var documentid = coursedocuments.DocumentId;
                var documents  = _context.Documents.Include(c => c.Course).Include(m => m.Module).Include(a => a.Activity)
                                 .Where(d => d.DocumentId == documentid)
                                 .Select(d => new
                {
                    id           = d.DocumentId,
                    courseid     = d.CourseId,
                    coursename   = d.Course.CourseName,
                    moduleid     = d.ModuleId,
                    modulename   = d.Module.ModuleName,
                    activityid   = d.ActivityId,
                    activityname = d.Activity.ActivityName
                }).FirstOrDefault();
                var entity     = "";
                var entityname = "";
                if ((documents.activityid != null) && (documents.moduleid != null) && (documents.courseid != null))
                {
                    entity     = "Activity";
                    entityname = documents.activityname;
                }
                else if ((documents.activityid == null) && (documents.moduleid != null) && (documents.courseid != null))
                {
                    entity     = "Module";
                    entityname = documents.modulename;
                }
                else if ((documents.activityid == null) && (documents.moduleid == null) && (documents.courseid != null))
                {
                    entity     = "Course";
                    entityname = documents.coursename;
                }
                coursedocuments.DocumentName = entity + ": " + entityname;
            }



            return(View(cfs));
        }