public bool SaveEnrollment(Enrollment item) { bool saved = false; var db = new MP.Activity.ActivitiesEntities(); //db.Entry(item).State = item.Id == 0 ? // System.Data.Entity.EntityState.Added : // System.Data.Entity.EntityState.Modified; //db.SignUp.Attach(item); if (item.Id == 0) { db.Enrollment.Add(item); } else { var enrollment = db.Enrollment.SingleOrDefault(s => s.Id == item.Id); if (enrollment != null) { db.Entry(enrollment).CurrentValues.SetValues(item); //if (sign.Slots != null) //{ // //get added slots // var dbslots = sign.Slots.ToList(); // var myslots = item.Slots.ToList(); // var addslots = myslots.Where(s => !dbslots.Exists(ds => ds.Id == s.Id)); // addslots.ToList().ForEach(s => db.Entry(s).State = System.Data.Entity.EntityState.Added); // var removeslots = dbslots.Where(s => !myslots.Exists(ds => ds.Id == s.Id)); // removeslots.ToList().ForEach(s => db.Entry(s).State = System.Data.Entity.EntityState.Deleted); // foreach (Period slot in addslots.ToList()) // { // sign.Slots.Add(slot); // //slot.SignUp1.Add(item); // } //} } } db.SaveChanges(); return(saved); }
public bool SaveActivity(Activity item) { bool saved = false; var db = new MP.Activity.ActivitiesEntities(); //db.Entry(item).State = item.Id == 0 ? // System.Data.Entity.EntityState.Added : // System.Data.Entity.EntityState.Modified; //db.SignUp.Attach(item); if (item.Id == 0) { db.Activity.Add(item); } else { var activity = db.Activity.SingleOrDefault(s => s.Id == item.Id); if (activity != null) { db.Entry(activity).CurrentValues.SetValues(item); if (activity.Period1 != null) { //get added slots var dbslots = activity.Period1.ToList(); var myslots = item.Period1.ToList(); var addslots = myslots.Where(s => !dbslots.Exists(ds => ds.Id == s.Id)); addslots.ToList().ForEach(s => db.Entry(s).State = System.Data.Entity.EntityState.Added); var removeslots = dbslots.Where(s => !myslots.Exists(ds => ds.Id == s.Id)); removeslots.ToList().ForEach(s => db.Entry(s).State = System.Data.Entity.EntityState.Deleted); foreach (Period slot in addslots.ToList()) { activity.Period1.Add(slot); //slot.SignUp1.Add(item); } } // //foreach (Period slot in sign.Slots) // //{ // // db.Entry(slot).CurrentValues.SetValues(); // //} // //sign.Slots.ToList().ForEach(s => // // db.Entry(s).CurrentValues.SetValues(); // //); //} } //db.Entry(item).State = System.Data.Entity.EntityState.Modified; } db.SaveChanges(); return(saved); }