public void UploadFile(FileUploadVm model) { FileUploadModel fileUpload = new FileUploadModel(); byte[] uploadFile = new byte[model.File.InputStream.Length]; model.File.InputStream.Read(uploadFile, 0, uploadFile.Length); fileUpload.FileName = model.File.FileName; fileUpload.File = uploadFile; UploadFileToDb(fileUpload); }
public IActionResult UploadCourseGroup(FileUploadVm vm) { if (!Authenticate()) { return(RedirectToAction("Index", "Home")); } var user = GetCurrentlyLoggedInUser(); if (!user.IsAdmin) { return(RedirectToAction("Index", "Planner")); } if (!ModelState.IsValid) { return(View(vm)); } using (var context = new DegreePlannerContext()) using (var stream = vm.File.OpenReadStream()) using (var reader = new StreamReader(stream)) { string line; while ((line = reader.ReadLine()) != null) { var data = line.Split(','); var name = data[0]; var courseGroup = new CourseGroup() { Name = name, CourseCourseGroupLinks = new List <CourseCourseGroupLink>() }; for (var i = 1; i < data.Length; i++) { var link = new CourseCourseGroupLink(); var department = data[i].Substring(0, 4); var number = data[i].Substring(4); var course = CreateOrFetchCourse(context, department, number, out var gen); link.Course = course; courseGroup.CourseCourseGroupLinks.Add(link); } context.CourseGroups.Add(courseGroup); context.SaveChanges(); } } return(RedirectToAction("Index", "Planner")); }
public ActionResult FileUploadProcess(FileUploadVm model, FileUploadBusiness fileUploadBusiness) { fileUploadBusiness.UploadFile(model); return(RedirectToAction("Index")); }
public ActionResult FileUploadProcess() { var model = new FileUploadVm(); return(View(model)); }
public IActionResult UploadDegree(FileUploadVm vm) { if (!Authenticate()) { return(RedirectToAction("Index", "Home")); } var user = GetCurrentlyLoggedInUser(); if (!user.IsAdmin) { return(RedirectToAction("Index", "Planner")); } if (!ModelState.IsValid) { return(View(vm)); } var degree = new Degree { Name = vm.Name, Requirements = new List <DegreeElement>() }; using (var context = new DegreePlannerContext()) using (var stream = vm.File.OpenReadStream()) using (var reader = new StreamReader(stream)) { context.Degrees.Add(degree); context.SaveChanges(); string line; while ((line = reader.ReadLine()) != null) { var data = line.Split(','); var element = new DegreeElement(); element.Hours = int.Parse(data[0]); var courseGroupName = data[1]; var courseGroup = context.CourseGroups.FirstOrDefault(cg => cg.Name == courseGroupName); if (data.Length == 2) { if (courseGroup == null) { courseGroup = new CourseGroup() { Name = courseGroupName } } ; } else { if (courseGroup == null) { courseGroup = new CourseGroup() { Name = courseGroupName, CourseCourseGroupLinks = new List <CourseCourseGroupLink>() }; for (var i = 2; i < data.Length; i++) { var link = new CourseCourseGroupLink(); var department = data[i].Substring(0, 4); var number = data[i].Substring(4); var course = CreateOrFetchCourse(context, department, number, out var gen); link.Course = course; courseGroup.CourseCourseGroupLinks.Add(link); } } } element.Members = courseGroup; element.Degree = degree; context.DegreeElements.Add(element); context.SaveChanges(); } } return(RedirectToAction("Index", "Planner")); }
public IActionResult UploadCourseList(FileUploadVm vm) { if (!Authenticate()) { return(RedirectToAction("Index", "Home")); } var user = GetCurrentlyLoggedInUser(); if (!user.IsAdmin) { return(RedirectToAction("Index", "Planner")); } if (!ModelState.IsValid) { return(View(vm)); } using (var context = new DegreePlannerContext()) using (var stream = vm.File.OpenReadStream()) using (var reader = new StreamReader(stream)) { string line; while ((line = reader.ReadLine()) != null) { var data = line.Split(','); var department = data[0].Substring(0, 4); var catalogNumber = data[0].Substring(4); var course = CreateOrFetchCourse(context, department, catalogNumber, out var gen, true); var start = 1; var name = data[1]; if (name[0] == '"') { start = 2; while (!name.EndsWith("\"")) { name += data[start]; start++; } course.Name = name.Substring(1, name.Length - 2); } if (gen) { context.Courses.Add(course); } else { context.Courses.Update(course); } var save = gen; for (var i = start; i < data.Length; i++) { var prereqDepartment = data[i].Substring(0, 4); var prereqCatalog = data[i].Substring(4); var prereq = CreateOrFetchCourse(context, prereqDepartment, prereqCatalog, out var genPrereq, true); if (genPrereq || gen) { var link = new PrerequisiteLink() { Prerequisite = prereq, Course = course }; save = true; if (genPrereq) { context.Courses.Add(prereq); } context.PrerequisiteLinks.Add(link); } else if (!context.PrerequisiteLinks.Any(p => p.CourseID == course.CourseID && p.PrerequisiteID == prereq.CourseID)) { var link = new PrerequisiteLink() { Prerequisite = prereq, Course = course }; context.PrerequisiteLinks.Add(link); save = true; } } if (save) { context.SaveChanges(); } } context.SaveChanges(); } return(RedirectToAction("Index", "Planner")); }