/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult DeleteCourse(Guid id) { var timeTableService = new TimeTableInfoService(Db); timeTableService.DeleteCourse(id); // Kehre zurück zur Seite der Aktivität return(RedirectToAction("NoGroups")); }
/// <summary> /// Löscht alle Kurse aus dem angegebenen Semester, die aus gpUntis importiert wurden /// </summary> /// <param name="semId"></param> /// <param name="orgId"></param> public void DeleteSemester(Guid semId, Guid orgId) { var db = new TimeTableDbContext(); var semService = new SemesterService(); var timeTableService = new TimeTableInfoService(db); var msg = "Sammle Daten"; var perc1 = 0; Clients.Caller.updateProgress(msg, perc1); var semester = semService.GetSemester(semId); if (semester == null) { msg = "Semester existiert nicht"; perc1 = 100; Clients.Caller.updateProgress(msg, perc1); return; } var courses = db.Activities.OfType <Course>().Where(c => c.Organiser.Id == orgId && // Veranstalter (c.SemesterGroups.Any(g => // Mit Semestergruppe g.Semester.Id == semId && g.CapacityGroup.CurriculumGroup.Curriculum.Organiser.Id == orgId) || !c.SemesterGroups.Any() // oder ohne Zuordnung ) && (!string.IsNullOrEmpty(c.ExternalSource) && c.ExternalSource.Equals("GPUNTIS"))) // aus GPUNTIS .ToList(); msg = string.Format("Lösche {0} von {1} Kursen", courses.Count, courses.Count); perc1 = 0; Clients.Caller.updateProgress(msg, perc1); var n = courses.Count; var i = 0; foreach (var course in courses) { i++; msg = string.Format("Lösche {0}", course.Name); perc1 = (i * 100) / n; Clients.Caller.updateProgress(msg, perc1); timeTableService.DeleteCourse(course.Id); } msg = "Alle Kurse gelöscht"; perc1 = 100; Clients.Caller.updateProgress(msg, perc1); }
/// <summary> /// /// </summary> /// <returns></returns> public ActionResult Programs() { var user = AppUser; var _service = new TimeTableInfoService(Db); var progs = _service.GetCurriculums(); ViewBag.Curriculums = progs; ViewBag.Semester = SemesterService.GetSemester(DateTime.Today); ViewBag.Faculties = Db.Organisers.Select(f => new SelectListItem { Text = f.ShortName, Value = f.ShortName, }); /* * ViewBag.Semesters = Db.Semesters.Select(s => new SelectListItem * { * Text = s.Name, * Value = s.Name * }); */ var semester = SemesterService.GetSemester(DateTime.Today); ViewBag.Semesters = new List <SelectListItem>() { new SelectListItem { Text = semester.Name, Value = semester.Name } }; ViewBag.Curricula = Db.Curricula.Where(c => c.Organiser.ShortName.Equals("FK 09")).Select(c => new SelectListItem { Text = c.ShortName + " (" + c.Name + ")", Value = c.Id.ToString(), }); /* das lassen wir weg, bis zur Neuimplementierung der Seite * var curr = string.IsNullOrEmpty(user.Curriculum) ? * Db.Curricula.First() : * Db.Curricula.SingleOrDefault(c => c.ShortName.Equals(user.Curriculum)); */ var curr = Db.Curricula.First(); if (curr != null) { var semesterGroups = Db.SemesterGroups.Where(g => g.Semester.Id == semester.Id && g.CapacityGroup.CurriculumGroup.Curriculum.Id == curr.Id) .OrderBy(g => g.CapacityGroup.CurriculumGroup.Name).ToList(); var semGroups = semesterGroups.Select(semGroup => new SelectListItem { Text = semGroup.FullName, Value = semGroup.Id.ToString() }).ToList(); ViewBag.Groups = semGroups; } GroupSelectionViewModel model = new GroupSelectionViewModel { Faculty = "FK 01", Curriculum = curr.ShortName, Group = "", Semester = semester.Name }; return(View(model)); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult ClearOrg(Guid id) { var org = Db.Organisers.SingleOrDefault(x => x.Id == id); var service = new TimeTableInfoService(Db); var currs = org.Curricula.ToList(); var semGroups = Db.SemesterGroups.Where(x => x.CapacityGroup.CurriculumGroup.Curriculum.Organiser.Id == id).ToList(); foreach (var semesterGroup in semGroups) { var occGroups = semesterGroup.OccurrenceGroups.ToList(); foreach (var occurrenceGroup in occGroups) { semesterGroup.OccurrenceGroups.Remove(occurrenceGroup); Db.OccurrenceGroups.Remove(occurrenceGroup); } var sub = semesterGroup.Subscriptions.ToList(); foreach (var subscription in sub) { Db.Subscriptions.Remove(subscription); } Db.SemesterGroups.Remove(semesterGroup); } Db.SaveChanges(); foreach (var curriculum in currs) { service.DeleteCurriculum(curriculum); } var acts = org.Activities.ToList(); foreach (var activity in acts) { service.DeleteActivity(activity); } var members = org.Members.ToList(); foreach (var member in members) { if (!member.IsAdmin) { Db.Members.Remove(member); } } var rooms = org.RoomAssignments.ToList(); foreach (var room in rooms) { // wenn der Raum nur eine Zuordnung ha, dann löschen if (room.Room.Assignments.Count == 1) { Db.Rooms.Remove(room.Room); } Db.RoomAssignments.Remove(room); } Db.SaveChanges(); return(RedirectToAction("Index")); }
/// <summary> /// Löscht alle Kurse aus dem angegebenen Semester, die aus gpUntis importiert wurden /// </summary> /// <param name="semId"></param> /// <param name="orgId"></param> /// <param name="formatId"></param> public void DeleteSemester(Guid semId, Guid orgId, string formatId) { var db = new TimeTableDbContext(); var semService = new SemesterService(); var timeTableService = new TimeTableInfoService(db); var msg = "Sammle Daten"; var perc1 = 0; Clients.Caller.updateProgress(msg, perc1); var semester = semService.GetSemester(semId); if (semester == null) { msg = "Semester existiert nicht"; perc1 = 100; Clients.Caller.updateProgress(msg, perc1); return; } List <Activity> courses = null; if (formatId.Equals("CIE")) { courses = db.Activities.Where(c => (c.SemesterGroups.Any(g => // Mit Semestergruppe g.Semester.Id == semId) || !c.SemesterGroups.Any() // oder ohne Zuordnung ) && (!string.IsNullOrEmpty(c.ExternalSource) && c.ExternalSource.Equals(formatId))) // die formatID gibt die Quelle an .ToList(); } else { courses = db.Activities.Where(c => c.Organiser.Id == orgId && // Veranstalter (c.SemesterGroups.Any(g => // Mit Semestergruppe g.Semester.Id == semId && g.CapacityGroup.CurriculumGroup.Curriculum.Organiser.Id == orgId) || !c.SemesterGroups.Any() // oder ohne Zuordnung ) && (!string.IsNullOrEmpty(c.ExternalSource) && c.ExternalSource.Equals(formatId))) // die formatID gibt die Quelle an .ToList(); } msg = $"Lösche {courses.Count} von {courses.Count} Kursen"; perc1 = 0; Clients.Caller.updateProgress(msg, perc1); var n = courses.Count; var i = 0; foreach (var course in courses) { i++; msg = $"Lösche {course.Name}"; perc1 = (i * 100) / n; Clients.Caller.updateProgress(msg, perc1); timeTableService.DeleteActivity(course.Id); } msg = "Alle Kurse gelöscht"; perc1 = 100; Clients.Caller.updateProgress(msg, perc1); }