public async Task <ActionResult> Create([Bind(Include = "Id,Ad,Aciklama,YanEtkiler,NasilKullanilir,DikkatEdilecekler,EtkenMaddelerId")] IlacViewModel vm)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.EtkenMaddeListe = await db.EtkenMadde.Select(x => new SelectListItem {
                    Text = x.Ad, Value = x.Id.ToString()
                }).ToListAsync();

                return(View(vm));
            }
            if (db.Ilac.Where(x => x.Ad == vm.Ad.ToLower()).Count() > 0)
            {
                ModelState.AddModelError("Ad", "Bu isimde bir ilac zaten var.");
                ViewBag.EtkenMaddeListe = await db.EtkenMadde.Select(x => new SelectListItem {
                    Text = x.Ad, Value = x.Id.ToString()
                }).ToListAsync();

                return(View(vm));
            }
            var m = new Ilac
            {
                Id                = vm.Id,
                Ad                = vm.Ad,
                Aciklama          = vm.Aciklama,
                YanEtkiler        = vm.YanEtkiler,
                NasilKullanilir   = vm.NasilKullanilir,
                DikkatEdilecekler = vm.DikkatEdilecekler,
                AnalizYapildiMi   = false
            };

            db.Ilac.Add(m);
            await db.SaveChangesAsync();

            if (vm.EtkenMaddelerId != null && vm.EtkenMaddelerId.Count > 0)
            {
                foreach (var item in vm.EtkenMaddelerId)
                {
                    db.IlacEtkenMadde.Add(new IlacEtkenMadde {
                        EtkenMaddeId = item, IlacId = m.Id
                    });
                }
                await db.SaveChangesAsync();
            }
            return(RedirectToAction("Index"));
        }
Пример #2
0
        public async Task <ActionResult> Create([Bind(Include = "Id,Ad,Aciklama,EtkilesenEtkenMaddelerId")] EtkenMaddeViewModel vm)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.EtkenMaddeListe = await db.EtkenMadde.Select(x => new SelectListItem {
                    Text = x.Ad, Value = x.Id.ToString()
                }).ToListAsync();

                return(View(vm));
            }
            if (db.EtkenMadde.Where(x => x.Ad == vm.Ad.ToLower()).Count() > 0)
            {
                ModelState.AddModelError("Ad", "Bu isimde bir etken madde zaten var.");
                ViewBag.EtkenMaddeListe = await db.EtkenMadde.Select(x => new SelectListItem {
                    Text = x.Ad, Value = x.Id.ToString()
                }).ToListAsync();

                return(View(vm));
            }
            var m = new EtkenMadde
            {
                Ad       = vm.Ad.ToLower(),
                Aciklama = vm.Aciklama,
            };

            db.EtkenMadde.Add(m);
            await db.SaveChangesAsync();

            if (vm.EtkilesenEtkenMaddelerId != null && vm.EtkilesenEtkenMaddelerId.Count() > 0)
            {
                foreach (var item in vm.EtkilesenEtkenMaddelerId)
                {
                    db.EtkenMaddeEtkilesim.Add(new EtkenMaddeEtkilesim {
                        EtkenMaddeId1 = m.Id, EtkenMaddeId2 = item
                    });
                }
                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"));
        }