public override MProdukti Insert(ProduktiUpsertRequest request) { var entity = _mapper.Map <Database.Produkti>(request); _context.Set <Database.Produkti>().Add(entity); _context.SaveChanges(); foreach (var sastojci in request.Sastojci) { var produktiSastojci = new Database.ProduktiSastojci(); produktiSastojci.ProduktiId = entity.ProduktiId; produktiSastojci.Kolicina = 1; produktiSastojci.SastojciId = sastojci; _context.Set <Database.ProduktiSastojci>().Add(produktiSastojci); } foreach (var meni in request.Meni) { var meniProdukti = new Database.MeniProdukti(); meniProdukti.ProduktiId = entity.ProduktiId; meniProdukti.MeniId = meni; _context.Set <Database.MeniProdukti>().Add(meniProdukti); } _context.SaveChanges(); return(_mapper.Map <MProdukti>(entity)); }
public override MMeni Update(int id, MeniUpsertRequest request) { var entity = _context.Meni.Find(id); _mapper.Map(request, entity); _context.SaveChanges(); var lista = _context.MeniProdukti.Where(i => i.MeniId == id).Select(j => j.ProduktiId).ToList(); //meni sa svim produktima var zaObrisati = lista.Except(request.listaProizvoda); //ako je uradjen uncheck foreach (var x in zaObrisati) { if (lista.Contains(x)) { var produkt = _context.MeniProdukti.Where(i => i.ProduktiId == x).ToList(); foreach (var y in produkt) { _context.Set <Database.MeniProdukti>().Remove(y); } } } //ako su dodani dodatni foreach (var j in request.listaProizvoda) { if (!lista.Contains(j)) { //ako nije isti produkt onda var produkti = new Database.MeniProdukti(); produkti.ProduktiId = j; produkti.MeniId = entity.MeniId; _context.Set <Database.MeniProdukti>().Add(produkti); } //obrisati iz meniProdukti one koji se nalaze u listu a ne nalaze u requestu //check if lista exists in request } _context.SaveChanges(); return(_mapper.Map <MMeni>(entity)); }
public override MMeni Insert(MeniUpsertRequest request) { var entity = _mapper.Map <Database.Meni>(request); _context.Set <Database.Meni>().Add(entity); _context.SaveChanges(); foreach (var proizvodi in request.listaProizvoda) { var produkti = new Database.MeniProdukti(); produkti.ProduktiId = proizvodi; produkti.MeniId = entity.MeniId; _context.Set <Database.MeniProdukti>().Add(produkti); } _context.SaveChanges(); return(_mapper.Map <MMeni>(entity)); }
public override MProdukti Update(int id, ProduktiUpsertRequest request) { var entity = _context.Produkti.Find(id); _mapper.Map(request, entity); _context.SaveChanges(); //dodan produkt //sada dodati sastojke koje vec nema var lista = _context.ProduktiSastojci.Where(i => i.ProduktiId == id).Select(j => j.SastojciId).ToList(); //produkt sa svim sastojcima var zaObrisati = lista.Except(request.Sastojci); //ako je uradjen uncheck foreach (var x in zaObrisati) { if (lista.Contains(x)) { var sastojak = _context.ProduktiSastojci.Where(i => i.SastojciId == x).ToList(); foreach (var y in sastojak) { _context.Set <Database.ProduktiSastojci>().Remove(y); } } } foreach (var j in request.Sastojci) { if (!lista.Contains(j)) { //ako nije isti sastojak onda var produktiSastojci = new Database.ProduktiSastojci(); produktiSastojci.ProduktiId = entity.ProduktiId; produktiSastojci.Kolicina = 1; produktiSastojci.SastojciId = j; _context.Set <Database.ProduktiSastojci>().Add(produktiSastojci); } } // var lista2 = _context.MeniProdukti.Where(i => i.ProduktiId == id).Select(j => j.MeniId).ToList(); //Meniji na kojima je produkt var izRequesta = request.Meni.ToList(); //ovo su Ide-evi foreach (var meni in izRequesta) { var meniProdukti = new Database.MeniProdukti(); meniProdukti.ProduktiId = entity.ProduktiId; meniProdukti.MeniId = meni; _context.Set <Database.MeniProdukti>().Add(meniProdukti); }//dodavanje novih menija //sada brisanje starih var stari = lista2.Except(izRequesta).ToList(); foreach (var meni in stari) { var nadjeni = _context.MeniProdukti.Where(i => i.MeniId == meni).ToList(); foreach (var del in nadjeni) { if (del.ProduktiId == id) { _context.Set <Database.MeniProdukti>().Remove(del); } } } //var zaObrisati2 = lista2.Except(request.Meni); //izvući one koji se nalaze u listi ali ne u requestu i pripremiti za brisanje ////sada proci kroz listu i vidjeti da li sadrzi neki meni iz requesta //foreach (var x in zaObrisati2) //{ // if (lista2.Contains(x)) // {//ako lista2 uopće sadrži ovo što trebam obrisati, onda obrisati // var meni = _context.MeniProdukti.Where(i => i.MeniId == x).ToList(); // foreach (var y in meni) // { // _context.Set<Database.MeniProdukti>().Remove(y); // } // } //} //foreach (var j in request.Meni) //{ // if (!lista2.Contains(j)) // { // //ako nije isti meni onda // var meniProdukti = new Database.MeniProdukti(); // meniProdukti.ProduktiId = entity.ProduktiId; // meniProdukti.MeniId = j; // _context.Set<Database.MeniProdukti>().Add(meniProdukti); // } //} _context.SaveChanges(); return(_mapper.Map <MProdukti>(entity)); }