private void updateCoursesService(string[] selectedServices, CONTRACTE contracte) { var servType = from lib in db.LIBRARIE where lib.L_TIP == "SERVICIU" select lib; var selectedServicesHS = new HashSet <string>(selectedServices); foreach (var s in servType) { SERVICII_CONTRACT cntr = new SERVICII_CONTRACT(); cntr.SC_C_ID = contracte.C_ID; cntr.SC_S_ID = Convert.ToInt32(s.L_ID); if (selectedServicesHS.Contains(s.L_ID.ToString())) { db.SERVICII_CONTRACT.Add(cntr); } else { //var idSel = from ids in db.SERVICII_CONTRACT // where ids.SC_C_ID == contracte.C_ID && ids.SC_S_ID == Convert.ToInt32(s.L_ID) // select ids.SC_ID; db.SERVICII_CONTRACT.Remove(cntr); } } db.SaveChanges(); }
public ActionResult Create(CONTRACTE contracte, FormCollection formCollection, string[] selectedServices) { if (ModelState.IsValid) { db.CONTRACTE.Add(contracte); db.SaveChanges(); if (selectedServices != null) { foreach (string s in selectedServices) { SERVICII_CONTRACT cntr = new SERVICII_CONTRACT(); cntr.SC_C_ID = contracte.C_ID; cntr.SC_S_ID = Convert.ToInt32(s); db.SERVICII_CONTRACT.Add(cntr); } db.SaveChanges(); } return(RedirectToAction("Index")); } ViewBag.C_PERSOANA_ID = new SelectList(db.PERSOANE, "P_ID", "P_NUME", contracte.C_PERSOANA_ID); var servType = from lib in db.LIBRARIE where lib.L_TIP == "SERVICIU" select lib; ViewBag.ListaServicii = servType.ToList(); var idType = from lib in db.LIBRARIE where lib.L_TIP == "MONEDA" select lib; ViewBag.C_MONEDA = new SelectList(idType, "L_ID", "L_NUME", contracte.C_MONEDA); return(View(contracte)); }
public ActionResult Edit(CONTRACTE contracte, FormCollection formCollection, string[] selectedServices) { if (ModelState.IsValid) { db.Entry(contracte).State = EntityState.Modified; db.SaveChanges(); //updateCoursesService(selectedServices, contracte); var oldServ = from ss in db.SERVICII_CONTRACT where ss.SC_C_ID == contracte.C_ID select ss; foreach (var ss in oldServ) { SERVICII_CONTRACT cc = db.SERVICII_CONTRACT.Find(ss.SC_ID); db.SERVICII_CONTRACT.Remove(cc); } foreach (string s in selectedServices) { SERVICII_CONTRACT cntr = new SERVICII_CONTRACT(); cntr.SC_C_ID = contracte.C_ID; cntr.SC_S_ID = Convert.ToInt32(s); db.SERVICII_CONTRACT.Add(cntr); } //if (db.Entry(contracte).State == EntityState.Modified) db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.C_PERSOANA_ID = new SelectList(db.PERSOANE, "P_ID", "P_NUME", contracte.C_PERSOANA_ID); //ViewBag.C_MONEDA = new SelectList(idType, "L_ID", "L_NUME", contracte.C_MONEDA); return(View(contracte)); }
public IHttpActionResult PutCONTRACTE(int id, CONTRACTE cONTRACTE) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != cONTRACTE.C_ID) { return(BadRequest()); } var oldSerList = db.SERVICII_CONTRACT.Where(w => w.SC_C_ID == id).Select(s => s.SC_S_ID).ToArray();; var newSerList = cONTRACTE.SERVICII_CONTRACT.Select(s => s.SC_S_ID).ToArray(); var toAdd = newSerList.Except(oldSerList); //var toDelete = oldSerList.Except(newSerList).Select(s=>s.SC_S_ID).ToArray(); var toDelete = oldSerList.Except(newSerList); cONTRACTE.PERSOANE = null; cONTRACTE.LIBRARIE = null; cONTRACTE.SERVICII_CONTRACT = null; db.Entry(cONTRACTE).State = EntityState.Modified; try { //add new services var addService = new SERVICII_CONTRACT(); foreach (var sc in toAdd) { addService = new SERVICII_CONTRACT(); addService.SC_C_ID = id; addService.SC_S_ID = sc; db.SERVICII_CONTRACT.Add(addService); } //delete services foreach (var scd in toDelete) { db.SERVICII_CONTRACT.Remove(db.SERVICII_CONTRACT.Where(w => w.SC_S_ID == scd && w.SC_C_ID == id).FirstOrDefault()); } db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!CONTRACTEExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }