public async Task <ReasignViewModel> LecturesIndexPage(Lector lector)
        {
            ReasignViewModel model = new ReasignViewModel();

            model.Lector = lector;
            var lectorsDisciplines = await _db.LectorDisciplines.Where(t => t.LectorId == model.Lector.Id).Select(t => t.DisciplineId)
                                     .ToListAsync();

            var students = await _db.StudentDisciplines.Where(t => lectorsDisciplines.Contains(t.DisciplineId))
                           .Select(t => t.StudentId).ToListAsync();

            var groups = await _db.Students.Where(t => students.Contains(t.Id)).Select(t => t.GroupId).ToListAsync();

            model.Disciplines = await _db.Disciplines.Where(t => lectorsDisciplines.Contains(t.Id)).ToListAsync();

            model.Modules = await _db.Modules.Where(t => lectorsDisciplines.Contains(t.DisciplineId)).ToListAsync();

            model.Lectures = await _db.Lectures.Where(t => lectorsDisciplines.Contains(t.DisciplineId)).ToListAsync();

            model.Groups = await _db.Groups.Where(t => groups.Contains(t.Id)).ToListAsync();

            model.LecturesHistories = await _db.LecturesHistories.Where(t => t.EndTime == null && t.LectorId == model.Lector.Id)
                                      .ToListAsync();

            model.ModuleHistories =
                (from mh in await _db.ModuleHistories.ToListAsync()
                 join lh in model.LecturesHistories on mh.LectureHistoryId equals lh.Id
                 select mh).ToList();
            return(model);
        }
Example #2
0
        public async Task <ActionResult> Index()
        {
            //If admin
            if (AccountCredentials.GetRole() != RoleName.Lecturer)
            {
                var adminModel = new ReasignViewModel
                {
                    Disciplines  = await Context.Disciplines.ToListAsync(),
                    Lectures     = await Context.Lectures.ToListAsync(),
                    Modules      = await Context.Modules.ToListAsync(),
                    Questions    = await Context.Questions.ToListAsync(),
                    Answers      = await Context.Answers.ToListAsync(),
                    Specialities = await Context.Specialities.ToListAsync(),
                    Groups       = await Context.Groups.ToListAsync(),
                    Students     = await Context.Students.ToListAsync(),
                    Lectors      = await Context.Lectors.ToListAsync()
                };
                return(View(adminModel));
            }
            //If lector
            Lector lector = await AccountCredentials.GetLector();

            if (await Context.LecturesHistories.AnyAsync(lh => lh.IsFrozen == false && lh.LectorId == lector.Id && lh.EndTime == null))
            {
                if (await Context.ModuleHistories.AnyAsync(mh => mh.StartTime != null && mh.IsPassed == false && mh.LectorId == lector.Id))
                {
                    return(RedirectToAction("modulestatistics", "quiz"));
                }
                return(RedirectToAction("activelecture", "admin"));
            }
            var checkIfLector = await _adminPageHelper.LecturesIndexPage(lector);

            return(View(checkIfLector));
        }
Example #3
0
 public void AddNewStudentConnection(ReasignViewModel model)
 {
     try
     {
         var connectionTable = _db.Set <StudentDiscipline>();
         var disc            = model.StudentDisciplines.FirstOrDefault().DisciplineId;
         var students        = _db.StudentDisciplines
                               .Where(t => t.DisciplineId == disc)
                               .Select(t => t.StudentId).ToList();
         foreach (var item in model.StudentDisciplines.Where(t => t.StudentId != null))
         {
             if (item.IsSelected)
             {
                 if (!students.Contains(item.StudentId))
                 {
                     connectionTable.Add(new StudentDiscipline()
                     {
                         DisciplineId = item.DisciplineId, StudentId = item.StudentId
                     });
                 }
             }
             else
             {
                 if (students.Contains(item.StudentId))
                 {
                     connectionTable.Remove(_db.StudentDisciplines.FirstOrDefault(t => t.DisciplineId == item.DisciplineId && t.StudentId == item.StudentId));
                 }
             }
         }
         _db.SaveChanges();
     }
     catch (Exception)
     {
     }
 }
Example #4
0
        public async Task <ActionResult> StartLecture(ReasignViewModel model)
        {
            if (model != null)
            {
                await _lectureHistoryHelper.StartLecture(model);

                return(RedirectToAction("activelecture", "admin"));
            }
            TempData["Fail"] = "Щось пішло не так. Перевірте правильність дій";
            return(RedirectToAction("Index"));
        }
Example #5
0
        //Groups
        public ActionResult Groups(int specialityId)
        {
            IList <Group>            grp  = Context.Groups.Where(t => t.SpecialityId == specialityId).ToList();
            IEnumerable <Speciality> spc  = Context.Specialities.ToList();
            ReasignViewModel         test = new ReasignViewModel()
            {
                Groups = grp, Specialities = spc
            };

            return(View(test));
        }
Example #6
0
        //Lecture
        public ActionResult Lectures(int disciplineId)
        {
            IList <Lecture>    lect = Context.Lectures.Where(t => t.DisciplineId == disciplineId).ToList();
            IList <Discipline> disc = Context.Disciplines.ToList();
            ReasignViewModel   test = new ReasignViewModel()
            {
                Lectures = lect, Disciplines = disc
            };

            return(View(test));
        }
Example #7
0
        //Module
        public ActionResult Modules(int lectureId)
        {
            var              discId = Context.Lectures.FirstOrDefault(t => t.Id == lectureId).DisciplineId;
            IList <Module>   mod    = Context.Modules.Where(t => t.LectureId == lectureId).ToList();
            IList <Lecture>  lect   = Context.Lectures.Where(t => t.DisciplineId == discId).ToList();
            ReasignViewModel test   = new ReasignViewModel()
            {
                Lectures = lect, Modules = mod
            };

            return(View(test));
        }
Example #8
0
        //DisciplineStudents
        public ActionResult DisciplineStudents(int disciplineId)
        {
            IList <Group>             grp      = Context.Groups.ToList();
            IEnumerable <Speciality>  spc      = Context.Specialities.ToList();
            IEnumerable <Student>     std      = Context.Students.OrderBy(t => t.GroupId).ThenBy(n => n.Surname).ToList();
            IList <StudentDiscipline> studDisc = Context.StudentDisciplines.Where(t => t.DisciplineId == disciplineId).ToList();
            IList <Discipline>        disc     = Context.Disciplines.Where(t => t.Id == disciplineId).ToList();

            foreach (var stdc in std)
            {
                if (studDisc.All(t => t.StudentId != stdc.Id))
                {
                    studDisc.Add(new StudentDiscipline()
                    {
                        Id           = 666,
                        StudentId    = stdc.Id,
                        DisciplineId = disciplineId,
                        IsSelected   = false
                    });
                }
                else
                {
                    try
                    {
                        studDisc.FirstOrDefault(t => t.StudentId == stdc.Id && t.DisciplineId == disciplineId).IsSelected =
                            true;
                    }
                    catch
                    {
                        studDisc.Add(new StudentDiscipline()
                        {
                            Id           = 666,
                            StudentId    = stdc.Id,
                            DisciplineId = disciplineId,
                            IsSelected   = false
                        });
                    }
                }
            }
            ReasignViewModel test = new ReasignViewModel()
            {
                Groups = grp, Specialities = spc, Students = std, Disciplines = disc, StudentDisciplines = studDisc
            };

            return(View(test));
        }
Example #9
0
        //Students
        public ActionResult Students(int groupId)
        {
            var                   specId  = Context.Groups.FirstOrDefault(t => t.Id == groupId).SpecialityId;
            List <int>            accList = new List <int>();
            IEnumerable <Student> std     = Context.Students.Where(t => t.GroupId == groupId).ToList();

            foreach (var student in std)
            {
                accList.Add(student.AccountId);
            }
            IEnumerable <Account> acc  = Context.Accounts.Where(t => accList.Contains(t.Id)).ToList();
            IList <Group>         grp  = Context.Groups.Where(t => t.SpecialityId == specId).ToList();
            ReasignViewModel      test = new ReasignViewModel()
            {
                Groups = grp, Accounts = acc, Students = std
            };

            return(View(test));
        }
Example #10
0
 public ActionResult NewStudentConnections(ReasignViewModel model)
 {
     try
     {
         if (model.StudentDisciplines != null)
         {
             _adding.AddNewStudentConnection(model);
             TempData["Success"] = "Зміни було успішно збережено!";
         }
     }
     catch (Exception)
     {
         HttpContext con = System.Web.HttpContext.Current;
         var         url = con.Request.Url.ToString();
         _adding.AddNewError(url, "NewStudentConnetctions");
         TempData["Fail"] = "Щось пішло не так. Перевірте правильність дій";
     }
     return(RedirectToAction("DisciplineStudents"));
 }
Example #11
0
        public async Task StartLecture(ReasignViewModel model)
        {
            var disc   = model.Disciplines[0].Id;
            var lect   = model.Lectures[0].Id;
            var date   = DateTime.UtcNow;
            var lector = await AccountCredentials.GetLector();

            var lectureHistory = _db.LecturesHistories.Add(new LecturesHistory
            {
                LectureId    = lect,
                DisciplineId = disc,
                StartTime    = date,
                IsFrozen     = false,
                LectorId     = lector.Id
            });
            await _db.SaveChangesAsync();

            _db.ModuleHistories.AddRange(
                from m in await _db.Modules.ToListAsync()
                where m.LectureId == lect
                select new ModuleHistory
            {
                IsPassed         = false,
                LectureHistoryId = lectureHistory.Id,
                ModuleId         = m.Id,
                StartTime        = null,
                LectorId         = lector.Id
            });

            _db.LectureHistoryGroups.AddRange(
                from g in model.Groups
                where g.IsSelected
                select new LectureHistoryGroup
            {
                GroupId          = g.Id,
                LectureHistoryId = lectureHistory.Id
            });

            await _db.SaveChangesAsync();
        }