Пример #1
0
        /// <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"));
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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));
        }
Пример #4
0
        /// <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"));
        }
Пример #5
0
        /// <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);
        }