/// <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)); }
public ActionResult SelectFiles(SemesterImportModel model) { // Die Dateien löschen string tempDir = GetTempPath(model.OrganiserId, model.SemesterId); Directory.Delete(tempDir, true); return(View(model)); }
// 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()); }
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)); }
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)); }
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")); }
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)); }
/// <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)); }
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)); }