public async Task <ActionResult> Edit([Bind(Include = "Id,Ad,Aciklama,EtkilesenEtkenMaddelerId")] EtkenMaddeViewModel vm) { if (!ModelState.IsValid) { ViewBag.EtkenMaddeListe = new MultiSelectList(db.EtkenMadde.Select(x => new SelectListItem { Text = x.Ad, Value = x.Id.ToString() }), "Value", "Text", vm.EtkilesenEtkenMaddelerId); return(View(vm)); } EtkenMadde m = await db.EtkenMadde.FindAsync(vm.Id); if (m == null) { return(HttpNotFound()); } if (db.EtkenMadde.Where(x => x.Ad == vm.Ad.ToLower() && x.Id != vm.Id).Count() > 0) { ModelState.AddModelError("Ad", "Bu isimde bir etken madde zaten var."); ViewBag.EtkenMaddeListe = new MultiSelectList(db.EtkenMadde.Select(x => new SelectListItem { Text = x.Ad, Value = x.Id.ToString() }), "Value", "Text", vm.EtkilesenEtkenMaddelerId); return(View(vm)); } m.Ad = vm.Ad; m.Aciklama = vm.Aciklama; var eskiEtkilesenEtkenMaddeler = await db.EtkenMaddeEtkilesim.Where(x => x.EtkenMaddeId1 == m.Id || x.EtkenMaddeId2 == m.Id).ToListAsync(); if (eskiEtkilesenEtkenMaddeler == null || eskiEtkilesenEtkenMaddeler.Count == 0) { foreach (var item in vm.EtkilesenEtkenMaddelerId) { db.EtkenMaddeEtkilesim.Add(new EtkenMaddeEtkilesim { EtkenMaddeId1 = m.Id, EtkenMaddeId2 = item }); } } else { if (vm.EtkilesenEtkenMaddelerId == null || vm.EtkilesenEtkenMaddelerId.Count() == 0) { db.EtkenMaddeEtkilesim.RemoveRange(eskiEtkilesenEtkenMaddeler); } else { List <int> eskiEtkilesenEtkenMaddelerId = new List <int>(); foreach (var item in eskiEtkilesenEtkenMaddeler) { if (item.EtkenMaddeId1 == vm.Id) { eskiEtkilesenEtkenMaddelerId.Add(item.EtkenMaddeId2); } else if (item.EtkenMaddeId2 == vm.Id) { eskiEtkilesenEtkenMaddelerId.Add(item.EtkenMaddeId1); } } var yeniEtkilesenEtkenMaddeFark = vm.EtkilesenEtkenMaddelerId.Except(eskiEtkilesenEtkenMaddelerId); if (yeniEtkilesenEtkenMaddeFark != null && yeniEtkilesenEtkenMaddeFark.Count() > 0) { foreach (var item in yeniEtkilesenEtkenMaddeFark) { db.EtkenMaddeEtkilesim.Add(new EtkenMaddeEtkilesim { EtkenMaddeId1 = m.Id, EtkenMaddeId2 = item }); } } var eskiEtkilesenEtkenMaddeFark = eskiEtkilesenEtkenMaddelerId.Except(vm.EtkilesenEtkenMaddelerId); if (eskiEtkilesenEtkenMaddeFark != null && eskiEtkilesenEtkenMaddeFark.Count() > 0) { db.EtkenMaddeEtkilesim.RemoveRange(eskiEtkilesenEtkenMaddeler.Where(x => eskiEtkilesenEtkenMaddeFark.Contains(x.EtkenMaddeId1) || eskiEtkilesenEtkenMaddeFark.Contains(x.EtkenMaddeId2))); } } } db.Entry(m).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> Edit([Bind(Include = "Id,Ad,Aciklama,YanEtkiler,NasilKullanilir,DikkatEdilecekler,EtkenMaddelerId")] IlacViewModel vm) { if (!ModelState.IsValid) { ViewBag.EtkenMaddeListe = new MultiSelectList(db.EtkenMadde.Select(x => new SelectListItem { Text = x.Ad, Value = x.Id.ToString() }), "Value", "Text", vm.EtkenMaddelerId); return(View(vm)); } Ilac m = await db.Ilac.FindAsync(vm.Id); if (m == null) { return(HttpNotFound()); } if (db.Ilac.Where(x => x.Ad == vm.Ad.ToLower() && x.Id != vm.Id).Count() > 0) { ModelState.AddModelError("Ad", "Bu isimde bir ilac zaten var."); ViewBag.EtkenMaddeListe = new MultiSelectList(db.EtkenMadde.Select(x => new SelectListItem { Text = x.Ad, Value = x.Id.ToString() }), "Value", "Text", vm.EtkenMaddelerId); return(View(vm)); } m.Ad = vm.Ad; m.Aciklama = vm.Aciklama; m.YanEtkiler = vm.YanEtkiler; m.NasilKullanilir = vm.NasilKullanilir; m.DikkatEdilecekler = vm.DikkatEdilecekler; m.IlacEtkenMadde = await db.IlacEtkenMadde.Where(x => x.IlacId == m.Id).ToListAsync(); var eskiEtkenMaddelerId = m.IlacEtkenMadde.Select(x => x.EtkenMadde.Id).ToList(); if (eskiEtkenMaddelerId == null || eskiEtkenMaddelerId.Count() == 0) { foreach (var item in vm.EtkenMaddelerId) { db.IlacEtkenMadde.Add(new IlacEtkenMadde { IlacId = m.Id, EtkenMaddeId = item }); } } else { if (vm.EtkenMaddelerId == null || vm.EtkenMaddelerId.Count() == 0) { db.IlacEtkenMadde.RemoveRange(m.IlacEtkenMadde); } else { var yeniEtkenMaddeFarkId = vm.EtkenMaddelerId.Except(eskiEtkenMaddelerId); if (yeniEtkenMaddeFarkId != null && yeniEtkenMaddeFarkId.Count() > 0) { foreach (var item in yeniEtkenMaddeFarkId) { db.IlacEtkenMadde.Add(new IlacEtkenMadde { IlacId = m.Id, EtkenMaddeId = item }); } } var eskiEtkenMaddeFarkId = eskiEtkenMaddelerId.Except(vm.EtkenMaddelerId); if (eskiEtkenMaddeFarkId != null && eskiEtkenMaddeFarkId.Count() > 0) { db.IlacEtkenMadde.RemoveRange(m.IlacEtkenMadde.Where(x => eskiEtkenMaddeFarkId.Contains(x.EtkenMaddeId))); } } } db.Entry(m).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> AnalizYap(int id) { Ilac im = await db.Ilac.FindAsync(id); if (im == null) { return(HttpNotFound()); } var CheckYeniEtkilesenIlaclarId = Request.Form.GetValues("CheckBoxEtkilesilenler"); List <int> yeniEtkilesenIlaclarId = new List <int>(); if (CheckYeniEtkilesenIlaclarId != null) { foreach (var item in CheckYeniEtkilesenIlaclarId) { yeniEtkilesenIlaclarId.Add(Convert.ToInt32(item)); } } var eskiEtkilesenIlaclar = await db.IlacEtkilesim.Where(x => x.IlacId1 == id || x.IlacId2 == id).ToListAsync(); if (eskiEtkilesenIlaclar == null || eskiEtkilesenIlaclar.Count == 0) { foreach (var item in yeniEtkilesenIlaclarId) { db.IlacEtkilesim.Add(new IlacEtkilesim { IlacId1 = id, IlacId2 = item }); } } else { if (yeniEtkilesenIlaclarId == null || yeniEtkilesenIlaclarId.Count() == 0) { db.IlacEtkilesim.RemoveRange(eskiEtkilesenIlaclar); } else { List <int> eskiEtkilesenIlaclarId = new List <int>(); foreach (var item in eskiEtkilesenIlaclar) { if (item.IlacId1 == id) { eskiEtkilesenIlaclarId.Add(item.IlacId2); } else if (item.IlacId2 == id) { eskiEtkilesenIlaclarId.Add(item.IlacId1); } } var yeniIlaclarFark = yeniEtkilesenIlaclarId.Except(eskiEtkilesenIlaclarId); if (yeniIlaclarFark != null && yeniIlaclarFark.Count() > 0) { foreach (var item in yeniIlaclarFark) { db.IlacEtkilesim.Add(new IlacEtkilesim { IlacId1 = id, IlacId2 = item }); } } var eskiIlaclarFark = eskiEtkilesenIlaclarId.Except(yeniEtkilesenIlaclarId); if (eskiIlaclarFark != null && eskiIlaclarFark.Count() > 0) { db.IlacEtkilesim.RemoveRange(eskiEtkilesenIlaclar.Where(x => eskiIlaclarFark.Contains(x.IlacId1) || eskiIlaclarFark.Contains(x.IlacId2))); } } } im.AnalizYapildiMi = true; db.Entry(im).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); }