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); }
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)); }
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) { } }
public async Task <ActionResult> StartLecture(ReasignViewModel model) { if (model != null) { await _lectureHistoryHelper.StartLecture(model); return(RedirectToAction("activelecture", "admin")); } TempData["Fail"] = "Щось пішло не так. Перевірте правильність дій"; return(RedirectToAction("Index")); }
//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)); }
//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)); }
//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)); }
//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)); }
//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)); }
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")); }
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(); }