コード例 #1
0
        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();
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }