public ActionResult Create(Program program) { if (ModelState.IsValid) { var result = (from c in db.Colleges join d in db.Departments on c.CollegeName equals d.CollegeName from cs in db.Colleges join p in db.Programs on cs.CollegeName equals p.CollegeName where p.ProgramName == program.ProgramName & p.ProgramId != program.ProgramId select new { ProgramName = program.ProgramName }).ToList().Count(); if (result == 0) { program.ProgramLeadDepartment = program.ProgramLeadDepartment.Replace("string:", "").Trim(); program.CollegeName = program.CollegeName.Replace("string:", "").Trim(); string[] coursesData = program.Courses.Split(';'); for(int i =0;i<coursesData.Length;i=i+4) { if((i+1)< coursesData.Length && (i+3) < coursesData.Length) { ProgramCourse pc = new ProgramCourse() { CollegeName = program.CollegeName, CourseName = coursesData[i + 1], CourseType = coursesData[i + 3], ProgramName = program.ProgramName }; db.ProgramCourses.Add(pc); } } db.Programs.Add(program); db.SaveChanges(); return RedirectToAction("Index"); } else { ModelState.AddModelError("ProgramName", "Program Name already exists in DB."); return View(program); } } return View(program); }
public ActionResult Edit(Program program) { if (ModelState.IsValid) { program.ProgramLeadDepartment = program.ProgramLeadDepartment.Replace("string:", "").Trim(); program.CollegeName = program.CollegeName.Replace("string:", "").Trim(); string[] coursesData = program.Courses.Split(';'); for (int i = 0; i < coursesData.Length; i = i + 6) { if ((i + 3) < coursesData.Length && (i + 5) < coursesData.Length) { int cId; var isNull = Int32.TryParse(coursesData[i + 1],out cId); var cName = coursesData[i + 3]; var cType = coursesData[i + 5]; if(!isNull) { ProgramCourse pc = new ProgramCourse() { CollegeName = program.CollegeName, CourseName = cName, CourseType = cType, ProgramName = program.ProgramName }; db.ProgramCourses.Add(pc); } else { ProgramCourse pCourse = db.ProgramCourses.Where<ProgramCourse>(x => x.PCId.Equals(cId)).FirstOrDefault<ProgramCourse>(); pCourse.CourseName = cName; pCourse.CourseType = cType; } } } db.Entry(program).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(program); }