public AssoEvent_Locale(LocaleEvent localeEvent) { EventId = localeEvent.EventId; }
public ActionResult AssoEdit(short infoId, short localeId, string submit, List <AssoMaj> majs, List <AssoEvent_Locale> events) { if (ModelState.IsValid) { #region Add majorities List <byte> currentMajId = db.Majorities.Where(x => x.LocaleId == localeId).Select(x => x.RaceId).ToList(); if (majs != null) { foreach (AssoMaj maj in majs) { //if the association already exists if (currentMajId.Contains(maj.RaceId)) { Majority toEdit = db.Majorities.Where(x => x.RaceId == maj.RaceId && x.LocaleId == localeId).First(); toEdit.IsFirst = maj.IsFirst; db.Entry(toEdit).State = EntityState.Modified; db.SaveChanges(); currentMajId.Remove(maj.RaceId); } else { Majority toAdd = new Majority { LocaleId = localeId, IsFirst = maj.IsFirst, RaceId = maj.RaceId }; db.Majorities.Add(toAdd); db.SaveChanges(); } } } if (currentMajId.Count != 0) { foreach (byte id in currentMajId) { Majority gone = db.Majorities.Where(x => x.LocaleId == localeId && x.RaceId == id).FirstOrDefault(); db.Majorities.Remove(gone); db.SaveChanges(); } } #endregion #region Add LocaleEvents List <short> currentEventId = db.LocaleEvents.Where(x => x.LocaleId == localeId).Select(x => x.EventId).ToList(); if (events != null) { foreach (AssoEvent_Locale assoEvent in events) { //if the association already exists if (currentEventId.Contains(assoEvent.EventId)) { LocaleEvent toEdit = db.LocaleEvents.Where(x => x.LocaleId == localeId && x.EventId == assoEvent.EventId).First(); //if I ever add more columns to LocaleEvent, edit them here //db.Entry(toEdit).State = EntityState.Modified; //db.SaveChanges(); currentEventId.Remove(assoEvent.EventId); } else { LocaleEvent toAdd = new LocaleEvent { LocaleId = localeId, EventId = assoEvent.EventId }; db.LocaleEvents.Add(toAdd); } } } if (currentEventId.Count != 0) { foreach (short id in currentEventId) { LocaleEvent gone = db.LocaleEvents.Where(x => x.LocaleId == localeId && x.EventId == id).FirstOrDefault(); db.LocaleEvents.Remove(gone); } } db.SaveChanges(); #endregion return(Json(true)); } //having a lot of trouble with the return so the ajax right now ViewBag.Majs = db.Races.OrderBy(r => r.RaceName).ToList(); ViewBag.Events = db.Events.OrderBy(e => e.Name).ToList(); var locale = db.Locales.Find(localeId); AssoLocaleVM model = new AssoLocaleVM { InfoId = infoId, LocaleId = localeId, Submit = submit, AssoMajs = majs, AssoEvents = events, Name = locale.Name }; return(View(model)); }
public ActionResult AssoEdit(short infoId, short eventId, string submit, List <AssoLocale_Event> locales, List <AssoOrg_Event> orgs) { if (ModelState.IsValid) { #region Add Locales List <short> currentLocaleId = db.LocaleEvents.Where(x => x.EventId == eventId).Select(x => x.LocaleId).ToList(); if (locales != null) { foreach (AssoLocale_Event le in locales) { //if the association already exists if (currentLocaleId.Contains(le.LocaleId)) { LocaleEvent toEdit = db.LocaleEvents.Where(x => x.LocaleId == le.LocaleId && x.EventId == eventId).First(); //if I ever add more columns to LocaleEvent, edit them here //db.Entry(toEdit).State = EntityState.Modified; //db.SaveChanges(); currentLocaleId.Remove(le.LocaleId); } else { LocaleEvent toAdd = new LocaleEvent { EventId = eventId, LocaleId = le.LocaleId }; db.LocaleEvents.Add(toAdd); } } } if (currentLocaleId.Count != 0) { foreach (short id in currentLocaleId) { LocaleEvent gone = db.LocaleEvents.Where(x => x.EventId == eventId && x.LocaleId == id).FirstOrDefault(); db.LocaleEvents.Remove(gone); } } db.SaveChanges(); #endregion #region Add Orgs List <short> currentOrgId = db.OrgEvents.Where(x => x.EventId == eventId).Select(x => x.OrgId).ToList(); if (orgs != null) { foreach (AssoOrg_Event assoOrg in orgs) { //if the association already exists if (currentOrgId.Contains(assoOrg.OrgId)) { OrgEvent toEdit = db.OrgEvents.Where(x => x.OrgId == assoOrg.OrgId && x.EventId == eventId).First(); toEdit.Blurb = assoOrg.Blurb; db.Entry(toEdit).State = EntityState.Modified; db.SaveChanges(); currentOrgId.Remove(assoOrg.OrgId); } else { OrgEvent toAdd = new OrgEvent { EventId = eventId, OrgId = assoOrg.OrgId, Blurb = assoOrg.Blurb }; db.OrgEvents.Add(toAdd); } } } if (currentOrgId.Count != 0) { foreach (short id in currentOrgId) { OrgEvent gone = db.OrgEvents.Where(x => x.EventId == eventId && x.OrgId == id).FirstOrDefault(); db.OrgEvents.Remove(gone); } } db.SaveChanges(); #endregion return(Json(true)); } //if model fails ViewBag.Locales = db.Locales.OrderBy(l => l.Name).ToList(); ViewBag.Orgs = db.Orgs.OrderBy(l => l.Name).ToList(); var taevent = db.Events.Find(eventId); //if I actually was handling if the model failed (as currently I'm using the bandaid solution of just preventing the submition ) this would not cut it. It does not account for orgs or locales being null AssoEventVM model = new AssoEventVM { InfoId = infoId, EventId = eventId, Submit = submit, Name = taevent.Name, AssoOrgs = orgs, AssoLocales = locales }; return(View(model)); }