Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            var org      = GetMyOrganisation();
            var semester = SemesterService.GetSemester(DateTime.Today);

            var model = new SemesterImportModel
            {
                Semester    = semester,
                FirstDate   = semester.StartCourses.ToShortDateString(),
                LastDate    = semester.EndCourses.ToShortDateString(),
                Organiser   = org,
                SemesterId  = semester.Id,
                OrganiserId = org.Id,
                Existing    = GetCourseCount(org.Id, semester.Id)
            };

            ViewBag.Semester = Db.Semesters
                               .Where(x => x.EndCourses >= DateTime.Today && x.Groups.Any())
                               .OrderBy(s => s.StartCourses)
                               .Select(c => new SelectListItem
            {
                Text  = c.Name,
                Value = c.Id.ToString(),
            });


            return(View(model));
        }
Esempio n. 2
0
        public ActionResult SelectFiles(SemesterImportModel model)
        {
            // Die Dateien löschen
            string tempDir = GetTempPath(model.OrganiserId, model.SemesterId);

            Directory.Delete(tempDir, true);

            return(View(model));
        }
Esempio n. 3
0
        // GET: Admin/Repair
        /// <summary>
        ///
        /// </summary>
        public ActionResult ChangeDoz()
        {
            var model = new SemesterImportModel();

            model.OrganiserId = Guid.Empty;
            model.SemesterId  = Guid.Empty;
            model.FormatId    = "CSV";

            return(View());
        }
Esempio n. 4
0
        public ActionResult Upload(SemesterImportModel model)
        {
            string tempDir = GetTempPath(model.OrganiserId, model.SemesterId);

            // Speichern der Untis Dateien
            foreach (var attachment in model.Attachments)
            {
                if (attachment != null)
                {
                    var fileName = Path.GetFileName(attachment.FileName);

                    var tempFileName = Path.Combine(tempDir, fileName);

                    attachment.SaveAs(tempFileName);
                }
            }

            // Speichern der Config-Dateien
            model.AttachmentDays?.SaveAs(Path.Combine(tempDir, "configDays.txt"));
            model.AttachmentHours?.SaveAs(Path.Combine(tempDir, "configHours.txt"));
            model.AttachmentGroups?.SaveAs(Path.Combine(tempDir, "configGroups.txt"));

            // Dateien prüfen
            var reader = new FileReader();

            reader.ReadFiles(tempDir);

            var importer = new SemesterImport(reader.Context, model.SemesterId, model.OrganiserId);

            // Gruppen müssen existieren! => Fehler, wenn nicht
            importer.CheckGroups();

            // Räume sollten existieren => Warnung
            // Zuordnungen zu Räumen sollten existieren => Warnung
            importer.CheckRooms();

            // Dozenten sollten existieren => Warnung
            importer.CheckLecturers();

            importer.CheckCourses();

            importer.CheckRestriktions();

            reader.Context.AddErrorMessage("Zusammenfassung", string.Format("Von {0} Kursen werden {1} importiert",
                                                                            reader.Context.Kurse.Count, reader.Context.Kurse.Count(x => x.IsValid)), false);


            model.Context = reader.Context;

            return(View(model));
        }
Esempio n. 5
0
        public ActionResult ChangeDozIds()
        {
            var org      = GetMyOrganisation();
            var semester = SemesterService.GetSemester(DateTime.Today);

            var model = new SemesterImportModel
            {
                Semester    = semester,
                Organiser   = org,
                SemesterId  = semester.Id,
                OrganiserId = org.Id,
                Existing    = 0,
                FormatId    = "dozId"
            };


            return(View(model));
        }
Esempio n. 6
0
        public ActionResult ChangeDoz(SemesterImportModel model)
        {
            string tempDir  = Path.GetTempPath();
            string tempFile = Path.GetTempFileName();

            // Speichern der Config-Dateien
            model.AttachmentDays?.SaveAs(tempFile);


            var lines = System.IO.File.ReadAllLines(tempFile, Encoding.Default);

            var org = Db.Organisers.SingleOrDefault(x => x.ShortName.Equals("FK 11"));



            var i = 0;

            foreach (var line in lines)
            {
                if (i > 0)
                {
                    var words = line.Split(';');
                    var newId = words[0].Trim();
                    var oldId = words[1].Trim();

                    var member = org.Members.SingleOrDefault(x => x.ShortName.Equals(oldId));
                    if (member != null)
                    {
                        member.ShortName = newId;
                    }
                }


                i++;
            }

            Db.SaveChanges();


            return(RedirectToAction("Index", "Dashboard"));
        }
Esempio n. 7
0
        public ActionResult ChangeDozIds(SemesterImportModel model)
        {
            // den IMport mit Check durchführen
            string tempDir = GetTempPath(model.OrganiserId, model.SemesterId);

            // Speichern der Config-Dateien
            if (model.AttachmentDays != null)
            {
                model.AttachmentDays.SaveAs(Path.Combine(tempDir, "dozId.csv"));
            }

            var org = GetOrganiser(model.OrganiserId);

            var importService = new MemberUpdateService(org.ShortName);

            importService.ReadFile(tempDir, "dozId.csv");

            model.Context = importService.Context;


            return(View("DozIdReport", model));
        }
Esempio n. 8
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult Select(string format)
        {
            var org      = GetMyOrganisation();
            var semester = SemesterService.GetSemester(DateTime.Today);

            var model = new SemesterImportModel
            {
                Semester    = semester,
                Organiser   = org,
                SemesterId  = semester.Id,
                OrganiserId = org.Id,
                Existing    = GetCourseCount(org.Id, semester.Id, format),
                FormatId    = format
            };


            ViewBag.Semester = Db.Semesters.OrderByDescending(c => c.StartCourses).Select(c => new SelectListItem
            {
                Text  = c.Name,
                Value = c.Id.ToString(),
            });

            return(View(model));
        }
Esempio n. 9
0
        public ActionResult Upload(SemesterImportModel model)
        {
            string tempDir = GetTempPath(model.OrganiserId, model.SemesterId);

            // Speichern der Config-Dateien
            if (model.AttachmentDays != null)
            {
                model.AttachmentDays.SaveAs(Path.Combine(tempDir, "import.json"));
            }

            BaseImportContext ctx = null;

            if (model.FormatId.Equals("CIE"))
            {
                // Dateien prüfen
                var reader = new DataServices.IO.Cie.FileReader();
                reader.ReadFiles(tempDir);
                var importer = new DataServices.IO.Cie.SemesterImport(reader.Context, model.SemesterId);

                // Die Fakultät muss existieren
                importer.CheckFaculty();

                // Räume sollten existieren => Warnung
                // Zuordnungen zu Räumen sollten existieren => Warnung
                importer.CheckRooms();

                // Dozenten sollten existieren => Warnung
                importer.CheckLecturers();

                reader.Context.AddErrorMessage("Zusammenfassung", string.Format("Von {0} Kursen werden {1} importiert",
                                                                                reader.Context.Model.Courses.Count, reader.Context.ValidCourses.Count), false);

                ctx = reader.Context;
            }
            else
            {
                // Dateien prüfen
                var reader = new DataServices.IO.Json.FileReader();
                reader.ReadFiles(tempDir);
                var importer = new DataServices.IO.Json.SemesterImport(reader.Context, model.SemesterId, model.OrganiserId);

                // Die Fakultät muss existieren
                importer.CheckFaculty();

                // Räume sollten existieren => Warnung
                // Zuordnungen zu Räumen sollten existieren => Warnung
                importer.CheckRooms();

                // Dozenten sollten existieren => Warnung
                importer.CheckLecturers();

                reader.Context.AddErrorMessage("Zusammenfassung", string.Format("Von {0} Kursen werden {1} importiert",
                                                                                reader.Context.Model.Courses.Count, reader.Context.ValidCourses.Count), false);

                ctx = reader.Context;
            }

            model.Context   = ctx;
            model.Organiser = GetMyOrganisation();
            model.Semester  = SemesterService.GetSemester(model.SemesterId);


            return(View(model));
        }