public IActionResult DiseaseAdd(HastalikTakibi.Models.DiseaseVm disease) { if (disease == null || string.IsNullOrEmpty(disease.Name)) { ViewBag.Error = "Lütfen zorunlu alanları doldurun"; return(View(disease)); } var diseaseDb = new Disease() { CreateTime = DateTime.Now, FirstSeenDate = disease.FirstSeenDate, Name = disease.Name }; if (disease.CategoryIdList != null) { diseaseDb.DiseaseCategory = new List <DiseaseCategory>(); foreach (var item in disease.CategoryIdList) { diseaseDb.DiseaseCategory.Add(new DiseaseCategory() { CreateTime = DateTime.Now, CategoryId = item, }); } } _hastlikTakipDbContext.Disease.Add(diseaseDb); _hastlikTakipDbContext.SaveChangesAsync().GetAwaiter().GetResult(); return(RedirectToAction("Index")); }
public IActionResult DiseaseUpdate(HastalikTakibi.Models.DiseaseVm disease) { var diseaseDb = _hastlikTakipDbContext.Disease.Where(a => a.Id == disease.Id).FirstOrDefault(); if (diseaseDb == null) { ViewBag.Error = "Hastalık Bulunamadı"; return(RedirectToAction("Index")); } if (disease == null || string.IsNullOrEmpty(disease.Name)) { ViewBag.Error = "Lütfen zorunlu alanları doldurun"; SetCategory(); disease.CategoryIdList = disease.CategoryIdList == null ? new List <int>() : disease.CategoryIdList; ViewBag.DisaseCategoryList = (from c in _hastlikTakipDbContext.Category where disease.CategoryIdList.Contains(c.Id) select new SelectListItem() { Value = c.Id.ToString(), Text = c.Name }).ToList(); return(View(disease)); } diseaseDb.Name = disease.Name; diseaseDb.FirstSeenDate = disease.FirstSeenDate; diseaseDb.LastUpdateTime = DateTime.Now; _hastlikTakipDbContext.Entry(diseaseDb).State = Microsoft.EntityFrameworkCore.EntityState.Modified; var diseaseCategoryDbList = _hastlikTakipDbContext.DiseaseCategory.Where(a => a.DisaeaseId == disease.Id).ToList(); foreach (var item in diseaseCategoryDbList) { if (!disease.CategoryIdList.Contains(item.Id)) { _hastlikTakipDbContext.Entry(item).State = Microsoft.EntityFrameworkCore.EntityState.Deleted; } else { item.LastUpdateTime = DateTime.Now; _hastlikTakipDbContext.Entry(item).State = Microsoft.EntityFrameworkCore.EntityState.Modified; disease.CategoryIdList.Remove(item.Id); } } foreach (var item in disease.CategoryIdList) { _hastlikTakipDbContext.Entry(new DiseaseCategory() { CreateTime = DateTime.Now, CategoryId = item, DisaeaseId = disease.Id }).State = Microsoft.EntityFrameworkCore.EntityState.Added; } _hastlikTakipDbContext.SaveChangesAsync().GetAwaiter().GetResult(); return(RedirectToAction("Index")); }