public ActionResult RegisterToSubjectStudent(string subjectID, string subjectTitle) { //εγγραφή φοιτητή σε μάθημα var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var userId = User.Identity.GetUserId <int>(); var user = userManager.FindById(userId); Subjects subject = db.Subjects.Find(subjectID); //βρίσκουμε το id του συγκεκριμένου μαθήματος string prevValue = subject.regStudent; //βρίσκουμε τους ήδη εγγεγραμμένους φοιτητές σε αυτό το μάθημα if (prevValue == null) { subject.regStudent = user.UserName; //αν δεν υπάρχουν εγγεγραμμένοι φοιτητές, βάζουμε κατευθείαν ως πρώτο φοιτήτή τον συνδεδεμένο χρήστη } else { subject.regStudent = prevValue + "," + user.UserName; //αν υπάρχουν κι ΄΄αλλοι εγγεγραμμένοι φοιτητές, προσθέτουμε πρώτα εκείνους και μετά τον συνδεδεμένο φοιτητή, } //χωρίζοντάς του με ένα κόμμα db.SaveChanges(); return(RedirectToAction("MySubjectsStudent")); //ανακατεύθυνση στην αρχική σελίδα }
public ActionResult MySubjectsStudent() { //παίρνουμε τα στοιχεία του χρήστη με τη βοήθεια του AspNet Identity της Microsoft var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var user = userManager.FindById(System.Web.HttpContext.Current.User.Identity.GetUserId <int>()); return(View(db.Subjects.Where(t => t.regStudent.Contains(user.UserName)))); //ο χρήστης μεταβαίνει στην αρχική του σελίδα που αποτελείται από τα μαθήματα στα οποία είναι εγγεγραμμένος }
public ActionResult UnregisterFromSubjectStudentConfirmed(string subjectID) { //παίρνουμε τα στοιχεία του χρήστη με τη βοήθεια του AspNet Identity της Microsoft var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var user = userManager.FindById(System.Web.HttpContext.Current.User.Identity.GetUserId <int>()); Subjects subject = db.Subjects.Find(subjectID); string regStudents = subject.regStudent; char[] separator = { ',', ' ' }; //ορίζουμε ως διαχωριστικό το , // ορίζουμε τη λίστα που θα περιέχει τους εγγεγραμμένους φοιτητές List <string> regStudentsList = new List <string>(); string[] registeredStudents = regStudents.Split(separator); //διαχωρίζουμε το string βάσει του κόμματος, χρησιμοποιώντας τη μέθοδο Split, και τα προσθέτουμε σε μια λίστα από strings //προσθέτουμε κάθε ΑΜ στη λίστα των φοιτητών που ορίσαμε παραπάνω foreach (var item in registeredStudents) { regStudentsList.Add(item); } //αν ο συνδεδεμένος χρήστης ανήκει στους εγγεγραμμένος φοιτητές, τότε τον αφαιρούμε από τη λίστα if (regStudentsList.Contains(user.UserName)) { regStudentsList.Remove(user.UserName); } else { return(HttpNotFound()); } //ορίζουμε το string που θα περιέχει όλους τους υπόλοιπους φοιτητές που είναι εγγεγραμμένοι στο μάθημα string newRegStudents = ""; foreach (var item in regStudentsList) { if (newRegStudents == "") { newRegStudents = item; } else { newRegStudents = newRegStudents + "," + item; } } subject.regStudent = newRegStudents; //αποθηκεύουμε το νέο string στη βάση δεδομένων db.SaveChanges(); return(RedirectToAction("MySubjectsStudent")); }
public ActionResult EditProfileProfessor(string message) { ViewBag.Message = message; //χρησιμοποιώντας το AspNet Identity της Microsoft, παίρνουμε τα στοιχεία του συνδεδεμενου χρήστη και μεταβαίνει στην αντίστοιχη σελίδα για να επεξεργαστεί το προφίλ του var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var userId = User.Identity.GetUserId <int>(); var user = userManager.FindById(userId); return(View(user)); }
public ActionResult MyLabsStudent() { var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var userId = User.Identity.GetUserId <int>(); var user = userManager.FindById(userId); string userID = user.UserName; return(View(db.Enrollments.Where(t => t.teamMembers.Contains(user.UserName)))); //εμφανίζουμε τιςεγγραφές στα εργαστήρια στα οποία εχει εγγραφεί ο συνδεδεμένος χρήστης }
public ActionResult EditProfileAdmin(string message) { ViewBag.Message = message; //ο χρήστης που είναι συνδεδεμένος τη δεδομένη στιγμή, μπορεί να επεξεργαστεί τις πληροφορίες του προφίλ του var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var userId = User.Identity.GetUserId <int>(); var user = userManager.FindById(userId); return(View(user)); }
public override void OnResultExecuting(ResultExecutingContext filterContext) { if (HttpContext.Current.Request.IsAuthenticated) { var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var user = userManager.FindById(HttpContext.Current.User.Identity.GetUserId <int>()); filterContext.Controller.ViewBag.UserName = user.UserName; } else { filterContext.Controller.ViewBag.UserName = "******"; } }
public ActionResult Index(string message) { //σε περίπτωση που ο χρήστης δεν είχε αποσυνδεθεί από την τελευταία του είσοδο, μετα΄φέρεται στην αρχική του σελίδα ανάλογα με την ιδιότητά του //διαφορετικά του εμφανίζεται η σελίδα του login για να κάνει είσοδο if (Request.IsAuthenticated) { var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var user = userManager.FindById(System.Web.HttpContext.Current.User.Identity.GetUserId <int>()); return(redirectLoggedInUser(user)); } ViewBag.Message = message; return(View()); }
public ActionResult UnregisterFromSubjectStudent(string subjectID) { //παίρνουμε τα στοιχεία του χρήστη με τη βοήθεια του AspNet Identity της Microsoft var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var user = userManager.FindById(System.Web.HttpContext.Current.User.Identity.GetUserId <int>()); Subjects subject = db.Subjects.Find(subjectID); if (subject == null) { return(HttpNotFound()); } return(View(subject)); }
public ActionResult AddMyTeamStudent([Bind(Include = "primKeyID, subjectID, labID, teamID, selectedExamSlot, team, teamMembers, subjectTitle, labTitle, labDate, labTime")] Enrollments enrollments, int primKeyID, string labID, string subID, List <string> team) { var hubContext = GlobalHost.ConnectionManager.GetHubContext <NotificationHub>(); //δημιουργία μεταβλητής για σύνδεση με το hub που χρησιμοποιούμε για τις ειδοποιήσεις SignalR var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext())); var user = userManager.FindById(System.Web.HttpContext.Current.User.Identity.GetUserId <int>()); string userID = user.UserName; LabsAnnouncements lab = db.LabsAnnouncements.Find(labID); //προσθέτουμε τα μέλη της ομάδας στη βάση δεδομένων στα Enrollments και στα Subjects enrollments.teamMembers = enrollments.team[0]; for (int i = 1; i <= enrollments.team.Count() - 1; i++) { enrollments.teamMembers = enrollments.teamMembers + "," + enrollments.team[i]; } if (lab.regStudents == null) { lab.regStudents = enrollments.teamMembers; } else { lab.regStudents = lab.regStudents + "," + enrollments.teamMembers; } db.Entry(lab).State = EntityState.Modified; db.SaveChanges(); ExamSlotsAvailability availabilitySlot = db.ExamSlotsAvailability.Find(primKeyID); availabilitySlot.registeredTeamsNumber = enrollments.teamID; //ο αριθμός των εγγεγραμμένων ομάδων ισούται με το team ID της ομάδας ξεχωριστά σε κάθε slot LabsAvailability availability = db.LabsAvailability.Find(labID); if (availabilitySlot.registeredTeamsNumber >= availability.availableComputers) { availabilitySlot.available = false; //εάν ο αριθμός των εγγεγραμμένων ομάδων είναι >= του αριθμού των διαθέσιμων υπολογιστών του εργαστηρίου, τότε δεν ελιναι πλέον διαθέσιμο } enrollments.primKeyID = primKeyID; if (ModelState.IsValid) { team.Remove(userID); //αφαιρούμε τον συνδεδεμένο χρήστη από την ομάδα για να μην πάει και σε εκείνον ειδοποίηση ότι γράφτηκε στην ομάδα του, παρά μόνο στα υπόλοιπα //μέλη της ομάδας του //σε κάθε μέλος της ομάδας, μέσω του hub πο δημιουργήσαμε προηγουμένως, πηγαίνει ειδοποίηση ότι ο συνδεδεμένος χρήστης τους έγραψε στην ομάδα του στο συγκεκριμένο εργαστήριο hubContext.Clients.Users(team).addNewMessageToPage("Ο χρήστης με ΑΜ " + userID + " σας πρόσθεσε στην ομάδα του στο εργαστήριο με τίτλο " + lab.labTitle); //προσθέτουμε τα μέλη της ομάδας στους εγγεγραμμένους φοιτητές του εργαστηρίου LabsAnnouncements labRegistered = db.LabsAnnouncements.Find(labID); if (labRegistered.regStudents == null) { labRegistered.regStudents = enrollments.teamMembers; } else { labRegistered.regStudents = labRegistered.regStudents + enrollments.teamMembers; } db.Enrollments.Add(enrollments); //αποθήκευση εγγραφής στη βάση δεδομένων db.SaveChanges(); return(RedirectToAction("MyLabsStudent", enrollments)); //ανακατεύθυνση στα εργαστήρια στα οποία συμμετέχει ο συνδεδεμένος φοιτητής } return(View(enrollments)); }