Example #1
0
        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"));
        }
Example #3
0
 public ActionResult FileUploadProcess(FileUploadVm model, FileUploadBusiness fileUploadBusiness)
 {
     fileUploadBusiness.UploadFile(model);
     return(RedirectToAction("Index"));
 }
Example #4
0
        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"));
        }