public JsonResult SubjectsDet_Create([DataSourceRequest] DataSourceRequest request, SubjectModel subject, string SubjectID) { db.Configuration.ProxyCreationEnabled = false; if (SubjectID != "") { int id = Convert.ToInt32(SubjectID); if (ModelState.IsValid && id != null) { subject.SubjectsID = id; GradeSub gs = new GradeSub(); gs.SubjectsID = id; gs.GradeID = subject.GradeID; for (int i = 0; i < subject.Employees.Count; i++) { int empid = subject.Employees[i].EmployeeID; var data = db.GradeSubs.Include("Staff").FirstOrDefault(q => q.SubjectsID == id && q.GradeID == gs.GradeID && q.Staff.EmployeeID == empid); if (data == null) { gs.EmployeeID = subject.Employees[i].EmployeeID; subject.Employees[i] = db.Staffs.Single(q => q.EmployeeID == empid); db.Entry(gs).State = System.Data.Entity.EntityState.Added; db.SaveChanges(); } } } } return(Json(ModelState.IsValid ? true : ModelState.ToDataSourceResult())); }
public JsonResult SubjectsDet_Update([DataSourceRequest] DataSourceRequest request, SubjectModel subject, string SubjectID) { db.Configuration.ProxyCreationEnabled = false; if (SubjectID != "") { int id = Convert.ToInt32(SubjectID); if (ModelState.IsValid) { List <GradeSub> data = db.GradeSubs.Include("Staff").Where(s => s.GradeID == subject.GradeID && s.SubjectsID == id).ToList(); for (int i = 0; i < subject.Employees.Count; i++) { int empid = subject.Employees[i].EmployeeID; int index = data.FindIndex(s => s.Staff.EmployeeID == empid); if (index == -1) { GradeSub gs = new GradeSub(); gs.SubjectsID = subject.SubjectsID; gs.GradeID = subject.GradeID; gs.EmployeeID = subject.Employees[i].EmployeeID; subject.Employees[i] = db.Staffs.Single(q => q.EmployeeID == empid); db.Entry(gs).State = System.Data.Entity.EntityState.Added; db.SaveChanges(); } } foreach (GradeSub gs in data) { int empid = gs.EmployeeID; int index = subject.Employees.FindIndex(s => s.EmployeeID == empid); if (index == -1) { db.GradeSubs.Attach(gs); db.GradeSubs.Remove(gs); } } db.SaveChanges(); } } return(Json(ModelState.IsValid ? true : ModelState.ToDataSourceResult())); }