private bool IsAuthenticated() { if (Session["currentUser"] != null) { BaroDB db = new BaroDB(); Student student = db.SearchStudentByStudentNumber(((OAuth.CurrentUser)Session["currentUser"]).ID); if (student != null) { return(true); } Teacher teacher = db.SearchTeacherByTeacherNumber(((OAuth.CurrentUser)Session["currentUser"]).ID); if (teacher != null) { if (teacher.Role == TeacherAccess.admin) { return(true); } } } return(false); }
public ActionResult SelectStudent() //Student selecteren { if (!IsAuthenticated()) { return(RedirectToAction("Index", "Main")); } Student student = _db.SearchStudentByStudentNumber(((OAuth.CurrentUser)(Session["currentUser"])).ID); var data = from spg in _db.StudentProjectGroups where spg.Student.Studentnr == student.Studentnr join spg2 in _db.StudentProjectGroups on spg.ProjectGroup.Id equals spg2.ProjectGroup.Id where spg2.ProjectGroup.Project.EndDate > DateTime.Now && spg2.ProjectGroup.Project.StartDate < DateTime.Now join s in _db.Students on spg2.Student.Studentnr equals s.Studentnr select new { Student = s, ProjectGroup = spg2.ProjectGroup, Project = spg2.ProjectGroup.Project }; List <SelectStudentModel> model; try { model = (List <SelectStudentModel>)(data.ToList().ToNonAnonymousList(typeof(SelectStudentModel))); } catch { return(View(new List <SelectStudentModel>())); } TimeSpan time = DateTime.Now - model.First().Project.StartDate; int week = (int)Math.Floor(time.TotalDays / 7) + 1; int projId = model.First().Project.Id; var data2 = from sg in _db.StudentGrades where sg.Reviewer.Studentnr == student.Studentnr && sg.Project.Id == projId join rd in _db.ReviewDates on sg.ReviewDate.Id equals rd.Id where rd.Weeknr == week join s in _db.Students on sg.Student.Studentnr equals s.Studentnr select s; List <Student> reviewedStudents = data2.ToList(); var data3 = from rd in _db.ReviewDates where rd.Weeknr == week select rd; List <ReviewDates> reviewDates = data3.ToList(); int elements = model.Count(); for (int i = model.Count() - 1; i >= 0; i--) { model.ElementAt(i).Week = week; if (model.ElementAt(i).Student.Studentnr == student.Studentnr) { model.Remove(model.ElementAt(i)); elements--; } } foreach (Student s in reviewedStudents) { for (int i = model.Count() - 1; i >= 0; i--) //2nd loop because of errors { if (model.ElementAt(i).Student.Studentnr == s.Studentnr) { model.Remove(model.ElementAt(i)); elements--; } } } if (reviewDates.Count == 0) { model = new List <SelectStudentModel>(); } Session["SelectStudentModel"] = model; return(View(model)); }
public ActionResult ExternalLoginCallback(string returnUrl) { var avansOAuth = (AvansOAuthClient)OAuthWebSecurity.GetOAuthClientData("avans").AuthenticationClient; AuthenticationResult result; try { result = avansOAuth.VerifyAuthentication(HttpContext); } catch { return(RedirectToAction("ExternalLoginFailure")); } if (!result.IsSuccessful) { return(RedirectToAction("ExternalLoginFailure")); } if (Session["currentUser"] == null) { BaroDB db = new BaroDB(); Student student = db.SearchStudentByStudentNumber(int.Parse(result.ProviderUserId)); if (student != null) { string name = student.FirstName + " " + student.LastName; Session["currentUser"] = new OAuth.CurrentUser { ID = student.Studentnr, DisplayName = name, Access = access.student }; } Teacher teacher = db.SearchTeacherByTeacherNumber(int.Parse(result.ProviderUserId)); //Teacher teacher = db.SearchTeacherByTeacherNumber(13); //Voor testen, login als leraar ondanks je student nr. if (teacher != null) { string name = teacher.FirstName + " " + teacher.LastName; switch (teacher.Role) { case TeacherAccess.mentor: Session["currentUser"] = new OAuth.CurrentUser { ID = teacher.DocentNumber, DisplayName = name, Access = access.mentor }; break; case TeacherAccess.tutor: Session["currentUser"] = new OAuth.CurrentUser { ID = teacher.DocentNumber, DisplayName = name, Access = access.tutor }; break; case TeacherAccess.projectDocent: Session["currentUser"] = new OAuth.CurrentUser { ID = teacher.DocentNumber, DisplayName = name, Access = access.projectDocent }; break; case TeacherAccess.admin: Session["currentUser"] = new OAuth.CurrentUser { ID = teacher.DocentNumber, DisplayName = name, Access = access.admin }; break; } } if (Session["currentUser"] != null) { return(RedirectToLocal(returnUrl)); } } return(RedirectToAction("ExternalLoginFailure")); }