//private CourseSection MapLineToCourseSection(string line)
        //{
        //    string[] column = line.Split(',');
        //    return new CourseSection { FacultyId = Convert.ToInt32(column[0]), Name = column[3], CRN = Convert.ToInt32(column[4])};
        //}


        public void ParseUploadFileToFacultyAndCourse(UploadCourseAndFacultyData facultyData)
        {
            IEnumerable <string> content = Upload.ReadAsList(facultyData.uploadFile);
            var faculties = content.Skip(1).Where(line => line.Length > 0).Select(line => MapLineToFaculty(line)).ToList();

            foreach (var faculty in faculties)
            {
                var matchedFaculty = _appDbContext.Faculty.Include(f => f.CourseSections).Where(f => f.Id == faculty.Id).FirstOrDefault();

                if (matchedFaculty != null)
                {
                    matchedFaculty.FirstName      = faculty.FirstName;
                    matchedFaculty.LastName       = faculty.LastName;
                    matchedFaculty.CourseSections = faculty.CourseSections;
                }
                else
                {
                    _appDbContext.Add(faculty);
                }
            }
            _appDbContext.SaveChanges();
        }
示例#2
0
 public IActionResult CourseAndFaculty(UploadCourseAndFacultyData courseAndFacultyData)
 {
     _courseAndFacultyService.ParseUploadFileToFacultyAndCourse(courseAndFacultyData);
     //_courseAndFacultyService.ParseUploadFileToCourseSection(courseAndFacultyData); // legacy code: parse course individually
     return(RedirectToAction("Success"));
 }