public ActionResult Import(Guid id) { var cur = Db.Curricula.SingleOrDefault(x => x.Id == id); var model = new CurriculumImportModel { Curriculum = cur }; return(View(model)); }
public ActionResult Import(CurriculumImportModel model, string orgName, string currName) { string tempFile = Path.GetTempFileName(); // Speichern der Config-Dateien model.AttachmentStructure?.SaveAs(tempFile); var org = Db.Organisers.SingleOrDefault(x => x.ShortName.Equals(orgName)); var curr = org.Curricula.SingleOrDefault(x => x.ShortName.Equals(currName)); var lines = System.IO.File.ReadAllLines(tempFile, Encoding.Default); var i = 0; foreach (var line in lines) { if (i > 0) { var words = line.Split(';'); var moduleName = words[0].Trim(); var weight = double.TryParse(words[1], out var result) ? result : 1; var subjectName = words[2].Trim(); var subjectTerm = int.TryParse(words[3], out var result2) ? result2 : 0; var subjectEcts = double.TryParse(words[4], out var result3) ? result3 : 0; var optionNumber = words[5].Trim(); var optionTags = words[6].Trim(); var module = curr.Modules.SingleOrDefault(x => x.Name.Equals(moduleName)); if (module == null) { module = new CertificateModule { Name = moduleName, Weight = weight }; curr.Modules.Add(module); } var subject = module.Subjects.FirstOrDefault(x => x.Name.Equals(subjectName)); if (subject == null) { subject = new CertificateSubject { Name = subjectName, Term = subjectTerm, Ects = subjectEcts }; module.Subjects.Add(subject); } var option = subject.ContentModules.SingleOrDefault(x => x.Number.Equals(optionNumber)); if (option == null) { option = new ModuleAccreditation { Number = optionNumber, IsMandatory = true, }; subject.ContentModules.Add(option); } } i++; } Db.SaveChanges(); return(RedirectToAction("Index", new { id = model.Curriculum.Id })); }