/// <summary> /// Signs in a student, optionally updating the database if it has updated fields. /// </summary> /// <returns>The SignIn page</returns> public ActionResult SignIn(string ID, string name, string major, string machineNumber) { /* Sanitize: Name*/ if (Request.Params.AllKeys.Contains ("name") && Request.Params ["name"].Contains (" ")) { /* Sanitize: Major */ if (Request.Params.AllKeys.Contains ("major")) { /*Sanitize: MachineNumber */ if (Request.Params.AllKeys.Contains ("machineNumber")) { StudentDatabase db = new StudentDatabase (); db.Connect (); db.SignIn( int.Parse(Request.Params["ID"]), //ID Request.Params["name"].Split(' ')[0], //First Request.Params["name"].Split(' ')[1], //Last Request.Params["major"], // Major int.Parse(Request.Params["machineNumber"]), //MachineNumber (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds); //TimeIn is now db.Disconnect (); return View ("~/Views/Home/Index.cshtml", new Warning("")); } } } return View ("~/Views/SignIn/Index.cshtml", "Warning: Improper Value Detected"); }
void StudentFunction() { StudentDatabase studentData = new StudentDatabase(); StudentLogic studentLogic = new StudentLogic(); Console.WriteLine("\t1. Add Students details. "); Console.WriteLine("\t2. Get student detail by ID."); Console.WriteLine("\t3. Exit."); Console.Write("Enter Choice: "); int Choice = Convert.ToInt32(Console.ReadLine()); switch (Choice) { case 1: // call to GiveStudentDetail to enter student's details Student student = studentLogic.GetStudentDetailsFromUser(); // call to AddStudent method to store entered details in Database studentData.AddStudent(student); break; case 2: // call to GetStudent method to fetch data from Database studentLogic.CheckStudentDetailsFromDatabase(); break; case 3: System.Environment.Exit(0); break; default: Console.WriteLine("Please enter Correct choice!!!"); break; } }
/// <summary> /// Signs in a student, optionally updating the database if it has updated fields. /// </summary> /// <returns>The SignIn page</returns> public ActionResult SignIn(string ID, string name, string major, string machineNumber) { /* Sanitize: Name*/ if (Request.Params.AllKeys.Contains("name") && Request.Params ["name"].Contains(" ")) { /* Sanitize: Major */ if (Request.Params.AllKeys.Contains("major")) { /*Sanitize: MachineNumber */ if (Request.Params.AllKeys.Contains("machineNumber")) { StudentDatabase db = new StudentDatabase(); db.Connect(); db.SignIn( int.Parse(Request.Params["ID"]), //ID Request.Params["name"].Split(' ')[0], //First Request.Params["name"].Split(' ')[1], //Last Request.Params["major"], // Major int.Parse(Request.Params["machineNumber"]), //MachineNumber (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds); //TimeIn is now db.Disconnect(); return(View("~/Views/Home/Index.cshtml", new Warning(""))); } } } return(View("~/Views/SignIn/Index.cshtml", "Warning: Improper Value Detected")); }
/// <summary> /// Return the Sign out page /// </summary> /// <returns>The sign out.</returns> public ActionResult RequestSignOut() { StudentDatabase db = new StudentDatabase (); db.Connect (); return View ("~/Views/SignOut/Index.cshtml", db.SignedInStudents()); }
public IActionResult OnPost() { if (!ModelState.IsValid) { return(Page()); } else { staff = StudentDatabase.Login(LoginStaff.Username, LoginStaff.Password); if (staff.staffId != 0) { if (staff.Administration == true) // hvis brugeren hentet fra SQL er i administration, så sættes det til True i session. { HttpContext.Session.SetString("Administration", "TRUE"); } if (staff.Teacher == true) // hvis brugeren hentet fra SQL er underviser, så sættes det til True i session. { HttpContext.Session.SetString("Teacher", "TRUE"); } HttpContext.Session.SetString("LoggedIn", "TRUE"); return(RedirectToPage("/Students/StudentList")); // Efter login foretages redirect til studentlist. } else { TempData["LoginMessage"] = "Invalid login"; // Hvis login fejler, sættes en midlertidig besked som vises på login siden bagefter. return(Page()); } } }
/// <summary> /// Return the Sign out page /// </summary> /// <returns>The sign out.</returns> public ActionResult RequestSignOut() { StudentDatabase db = new StudentDatabase(); db.Connect(); return(View("~/Views/SignOut/Index.cshtml", db.SignedInStudents())); }
public ActionResult Index() { StudentDatabase db = new StudentDatabase (); db.Connect (); string pw = System.IO.File.ReadAllLines ("/databases/password")[0]; if (Request.Params.AllKeys.Contains ("password") && Request.Params ["password"].Equals (pw)) { return View (db.SessionHistory ()); } else return View ("~/Views/Validator/Index.cshtml", new ValidationRequest ("/History", "password")); }
} // Der bliver et enumerable object array til at opbevare students, bliver til foreach i html koden. public IActionResult OnGet() { if (HttpContext.Session.GetString("Administration") == "TRUE" || HttpContext.Session.GetString("Teacher") == "TRUE") { Students = StudentDatabase.GetStudents(SearchTerm); // Der foretages GetStudents på baggrund af searchTerm, som default alle studerende. return(Page()); } else { return(RedirectToPage("/Staff/StaffLogin")); } }
public IActionResult OnGet() { if (HttpContext.Session.GetString("Administration") == "TRUE") // Login tjek { Subjects = StudentDatabase.GetSubjects(SearchTerm); // return(Page()); } else { return(RedirectToPage("/Staff/StaffLogin")); } }
public IActionResult OnGet() { if (HttpContext.Session.GetString("Administration") == "TRUE") // Der foretages login tjek { AllStaff = StudentDatabase.GetStaff(SearchTerm); // Alle ansatte der matcher searchterm hentes, som default % (alle) return(Page()); } else { return(RedirectToPage("./StaffLogin")); } }
/// <summary> /// Gets some information about the student from the database (if any exists), /// and sends it as JSON to the requestor. /// </summary> /// <returns>The JSON information about the student, including Name (first last) and major</returns> public string GetStudent() { int requestID = int.Parse (Request.Params ["studentID"]); StudentDatabase db = new StudentDatabase (); db.Connect (); Student requestedStudent = db.RetrieveStudent (requestID); db.Disconnect (); return requestedStudent.ToJSON (); }
public IActionResult OnPost() { if (!ModelState.IsValid) // Data valideres, hvis der er fejl så returneres Edit siden { return(Page()); } else // Hvis data valideres uden fejl gemmes dataen. { StudentDatabase.EditGrade(Grade); } TempData["Message"] = "Grade saved"; return(RedirectToPage("./GradeList", new { studentId = Grade.StudentId })); }
/// <summary> /// Gets some information about the student from the database (if any exists), /// and sends it as JSON to the requestor. /// </summary> /// <returns>The JSON information about the student, including Name (first last) and major</returns> public string GetStudent() { int requestID = int.Parse(Request.Params ["studentID"]); StudentDatabase db = new StudentDatabase(); db.Connect(); Student requestedStudent = db.RetrieveStudent(requestID); db.Disconnect(); return(requestedStudent.ToJSON()); }
/// <summary> /// Signs a student out of the lab, both removing them from the loggedIn table /// and adding their session to the history table /// </summary> /// <returns>The out.</returns> public ActionResult SignOut() { StudentDatabase db = new StudentDatabase(); int IDnumber = int.Parse(Request.Params ["ID"]); db.Connect(); db.SignOut(IDnumber); IEnumerable <Session> students = db.SignedInStudents(); db.Disconnect(); return(View("~/Views/Home/Index.cshtml", new Warning(""))); }
public IActionResult OnPost() { if (!ModelState.IsValid) { return(Page()); } else { StudentDatabase.AddGrade(Grade); } TempData["Message"] = "Grade saved"; return(RedirectToPage("./GradeList", new { studentId = Grade.GradeId })); }
public IActionResult OnGet(int gradeId) { if (HttpContext.Session.GetString("Administration") == "TRUE") { Subjects = StudentDatabase.GetAllSubjects(); var subjectList = new SelectList(Subjects, "SubjectId", "SubjectName"); SubjectList = subjectList; Grade = StudentDatabase.GetGradeById(gradeId); return(Page()); } else { return(RedirectToPage("./StaffLogin")); } }
public IActionResult OnGet(int SubjectId) { if (HttpContext.Session.GetString("Administration") == "TRUE") // Login tjek { Subject = StudentDatabase.GetSubjectById(SubjectId); if (Subject == null || SubjectId == 0) // Hvis subject er null er Id er 0 redirect til subjectlist { return(RedirectToPage("/Subjects/SubjectList")); } return(Page()); } else { return(RedirectToPage("./StaffLogin")); } }
public ActionResult Index() { if (Request.Params.AllKeys.Contains("ID")) { StudentDatabase db = new StudentDatabase(); db.Connect(); int ID = 000000; ID = int.Parse(Request.Params["ID"]); return(View("~/Views/History/Index.cshtml", db.SessionHistory(ID))); } else { return(View("~/Views/Home/Index.cshtml", new Warning("You must specify which ID you want"))); } }
public IActionResult OnGet(int studentId) { if (HttpContext.Session.GetString("Administration") == "TRUE") // Login tjek { Grades = StudentDatabase.GetGrades(studentId); // Alle karakterer der er tilknyttet en given studerende hentes Student = StudentDatabase.GetStudentById(studentId); // Den gældende studerende hentes. Subjects = StudentDatabase.GetAllSubjects(); // Alle f*g hentes var subjectList = new SelectList(Subjects, "SubjectId", "SubjectName"); SubjectList = subjectList; return(Page()); } else { return(RedirectToPage("./StaffLogin")); } }
} // Bruges til at gemme data samt opbygge detail siden. public IActionResult OnGet(int studentId) { // Der tjekkes hvorvidt der er blevet logget ind og brugeren enten er administrator eller underviser. Hvis ikke foretages der redirect til login siden. // Der bruges typen IActionResult så der kan bruges logik ift. til hvilken side der returneres. if (HttpContext.Session.GetString("Administration") == "TRUE" || HttpContext.Session.GetString("Teacher") == "TRUE") { Student = StudentDatabase.GetStudentById(studentId); // Den studerende hentes på baggrund af Id. if (Student == null || studentId == 0) { return(RedirectToPage("/Students/StudentList")); // Hvis der ikke findes en studerende med det Id, sendes man til studenlist. } return(Page()); } else { return(RedirectToPage("/Staff/StaffLogin")); } }
public ActionResult Index() { string pw = System.IO.File.ReadAllLines("/databases/password")[0]; if (Request.Params.AllKeys.Contains("password") && Request.Params ["password"].Equals(pw)) { StudentDatabase db = new StudentDatabase(); db.Connect(); return(View(db.SignedInStudents())); } else { return(View("~/Views/Validator/Index.cshtml", new ValidationRequest("/List", "password"))); } }
public IActionResult OnPost() { if (!ModelState.IsValid) { return(Page()); } if (Subject.SubjectId > 0) // Hvis subjectId ikke er null og højere end 0, opdateres faget. { StudentDatabase.UpdateSubject(Subject); } else // Hvis subjectId ikke er sat oprettes et nyt f*g. { StudentDatabase.CreateSubject(Subject); } TempData["Message"] = "Subject saved"; return(RedirectToPage("./SubjectDetail", new { subjectId = Subject.SubjectId })); }
public IActionResult OnPost() { if (!ModelState.IsValid) { return(Page()); } if (staff.staffId > 0) // Hvis staffId er højere end 0 er der tale om at en ansat skal opdateres { StudentDatabase.UpdateStaff(staff); } else // Ellers oprettes en ny ansat i databasen. { StudentDatabase.CreateStaff(staff); } TempData["Message"] = "Staff saved"; return(RedirectToPage("./StaffDetail", new { staffId = staff.staffId })); }
public IActionResult OnPost() { if (!ModelState.IsValid) { return(Page()); } if (Student.StudentId > 0) // Hvis studentId er højere end 0 er der tale om en eksisterende bruger der skal opdateres. { StudentDatabase.UpdateStudent(Student); } else // Hvis studentId er 0 eller ikke sat må det være en ny bruger. Den oprettes i Nextcloud og StudentDB. { Nextcloud.AddUserToNextcloud(Student.NextcloudUsername, Student.FirstName, Student.LastName, Student.NextcloudOneTimePassword); StudentDatabase.CreateStudent(Student); } TempData["Message"] = "Student saved"; return(RedirectToPage("./StudentDetail", new { studentId = Student.StudentId })); }
} // Er nødt til at kolde Models.Staff da jeg har været så klog at kalde mappen i pages staff også. public IActionResult OnGet(int staffId) { if (HttpContext.Session.GetString("Administration") == "TRUE") // Der foretages login tjek { Staff = StudentDatabase.GetStaffById(staffId); // Staff hentes fra databasen if (Staff == null) // Hvis der ikke kunne findes en ansat redirectes man tilbage til stafflist. { return(RedirectToPage("./StaffList")); } else // Hvis der blev fundet en ansat vises detail siden. { return(Page()); } } else { return(RedirectToPage("./StaffLogin")); } }
public IActionResult OnGet(int?staffId) { if (HttpContext.Session.GetString("Administration") == "TRUE") // Der foretages login tjek { if (staffId.HasValue) // Hvis der koms staffId med hentes staff fra StudentDB { staff = StudentDatabase.GetStaffById(staffId.Value); } else // Hvis ikke oprettes et nyt staff objekt { staff = new Models.Staff(); } if (staff == null) // Hvis staff er null på dette tidspunkt sendes man til notfound siden. { return(RedirectToPage("/NotFound")); } return(Page()); } else { return(RedirectToPage("./StaffLogin")); } }
public IActionResult OnGet(int?subjectId) { if (HttpContext.Session.GetString("Administration") == "TRUE") // Der foretages login tjek { if (subjectId.HasValue) // Hvis der kommer et subjectId { Subject = StudentDatabase.GetSubjectById(subjectId.Value); } else // Hvis ikke der kom studentId med { Subject = new Subject(); } if (Subject == null) // Hvis der ikke er noget subject redirectes til notfound. { RedirectToPage("/NotFound"); } return(Page()); } else { return(RedirectToPage("./StaffLogin")); } }
public IActionResult OnGet(int?studentId) { if (HttpContext.Session.GetString("Administration") == "TRUE") // Der foretages login tjek { if (studentId.HasValue) // Hvis der kom studentId med i get requesten, bliver denne forsøgt hentet fra studentdb. { Student = StudentDatabase.GetStudentById(studentId.Value); } else // Hvis der ikke var et student Id oprettes der er en nyt. { Student = new Student(); } if (Student == null) // Hvis student er null når koden når hertil, bliver man sendt til NotFound siden. { RedirectToPage("/NotFound"); } return(Page()); } else { return(RedirectToPage("./StaffLogin")); } }
private static void Main(string[] args) { var studentDb = new StudentDatabase("127.0.0.1", "Stundenplan"); studentDb.Seed(); // Löscht die DB und befüllt sie mit Musterdaten. var schuelerCollection = studentDb.Db.GetCollection <Schueler>(nameof(Schueler)); Console.WriteLine("BEISPIEL 1: ZÄHLEN VON SCHÜLERN EINER KLASSE *********************"); studentDb.EnableLogging = true; int count = schuelerCollection.AsQueryable().Count(s => s.KlasseId == "5AHIF"); Console.WriteLine($"Die 5AHIF hat {count} Schüler."); Console.WriteLine("BEISPIEL 2: ZÄHLEN VON SCHÜLERN ALLER KLASSEN ********************"); var schueleranz = schuelerCollection .AsQueryable() .GroupBy(s => s.KlasseId) .Select(g => new { Id = g.Key, Count = g.Count() }) .OrderBy(g => g.Count).ThenBy(g => g.Id) .ToDictionary(g => g.Id, g => g.Count); foreach (var s in schueleranz) { Console.WriteLine($"{s.Value} Schüler in der {s.Key} gefunden."); } Console.WriteLine("BEISPIEL 3: ÄLTESTER SCHÜLER PRO KLASSE *************************"); // Es kann sein, dass mehrere Schüler am ältesten sind (wenn sie am selben Tag Geburtstag haben). // Folgender Ausdruck wird nicht unterstützt (Unable to determine the serialization information for the outer key selector) //var aelteste = schuelerCollection // .AsQueryable() // .GroupBy(s => s.KlasseId) // .Select(g => new // { // KlasseId = g.Key, // Gebdat = g.Min(s => s.Gebdat) // }) // .Join(schuelerCollection.AsQueryable(), s => new { s.KlasseId, s.Gebdat }, s => new { s.KlasseId, s.Gebdat }, (s1, s2) => s2) // .ToList(); // Man könnte 2x AsQueryable().ToList() verwenden, jedoch wird dann die gesamte Collection // übertragen. Daher senden wir eine selbst definierte Pipeline. var pipeline = PipelineDefinition <Schueler, ClassStatDto> .Create( @"{ '$group': { '_id': '$KlasseId', 'Klasse': { '$first': '$KlasseId' }, 'MinGebdat': { '$min': '$Gebdat' } } }", @"{ '$lookup': { 'from': 'Schueler', 'let': { 'klasse': '$_id', 'minGebdat': '$MinGebdat' }, 'pipeline': [ { '$match': { '$expr': { '$and': [ { '$eq': [ '$$klasse', '$KlasseId' ] }, { '$eq': [ '$$minGebdat', '$Gebdat' ] } ] } } } ], 'as': 'Schueler' } }", @"{ '$sort': { 'Klasse': 1 } }"); var result = schuelerCollection.Aggregate(pipeline).ToList(); foreach (var r in result) { Console.WriteLine($"Die ältesten Schüler der {r.Klasse} sind: "); foreach (var s in r.Schueler) { Console.WriteLine($" {s.Zuname} {s.Vorname}, geb. am {s.Gebdat:dd.MM.yyyy}"); } } }
public void OnPostDelete(Student student) // Hvis der trykkes på slet knappen, foretages delete og efterfølgende redirect til Studentlist. { StudentDatabase.DeleteStudent(student); RedirectToPage("/Students/StudentList"); }