public Boolean SacuvajKategorije(KursManageVM vm, IEnumerable <int> nove, IEnumerable <int> postojece) { if (postojece != null) { // ima postojecih kategorija u db za ovaj kurs foreach (var id in nove.ToArray().Except(postojece.ToArray())) { _ctx.KategorizacijaDbSet.Add(new Kategorizacija { KursId = vm.KursId, PotkategorijaId = id }); } foreach (var id in postojece.ToArray().Except(nove.ToArray())) { Kategorizacija kategorija = _ctx.KategorizacijaDbSet.Where(w => w.Kurs.Id == vm.KursId && w.Potkategorija.Id == id).Single(); _ctx.KategorizacijaDbSet.Remove(kategorija); } } else { // nema postojecih kategorija u db za ovaj kurs (novi kurs) foreach (var id in nove.ToArray()) { _ctx.KategorizacijaDbSet.Add(new Kategorizacija { KursId = vm.KursId, PotkategorijaId = id }); } } return(true); }
public ActionResult KategorijeNav() { var Model = new KursManageVM { KursKategorijaList = _ctx.KategorijaDbSet.ToList(), KursPotkategorijaList = _ctx.PotkategorijaDbSet.ToList() }; return(PartialView(Model)); }
// TODO Doraditi sve atribute (Dodaj) public ActionResult Dodaj() { var model = new KursManageVM { KursDatumKreiranja = DateTime.Now, KursKategorijaList = _ctx.KategorijaDbSet.ToList(), KursPotkategorijaList = _ctx.PotkategorijaDbSet.ToList() }; return(View("Manage", model)); }
// TODO Metoda Snimi public ActionResult Snimi(KursManageVM vm) { Kurs kurs; List <int> postedInts = vm.KursKategorizacija; List <int> dbInts = _ctx.KategorizacijaDbSet.Where(w => w.Kurs.Id == vm.KursId).Select(s => s.Potkategorija.Id).ToList(); // TODO implementirati kompletnu validaciju if (!ModelState.IsValid) { vm.KursKategorijaList = _ctx.KategorijaDbSet.ToList(); vm.KursPotkategorijaList = _ctx.PotkategorijaDbSet.ToList(); vm.KursKategorizacija = (dbInts != null) ? dbInts : new List <int>(); return(View("Manage", vm)); } if (vm.KursId == 0) { kurs = new Kurs(); _ctx.KursDbSet.Add(kurs); } else { kurs = _ctx.KursDbSet.Find(vm.KursId); } // TODO doraditi atribute kurs.DatumKreiranja = vm.KursDatumKreiranja; kurs.Naziv = vm.KursNaziv; kurs.Opis = vm.KursOpis; kurs.VideoId = vm.KursVideoId; kurs.Nivo = vm.KursNivo.Value; string loggedInUserId = User.Identity.GetUserId(); kurs.InstruktorId = loggedInUserId; //atribut STATUS nije potrebno dodati SacuvajKategorije(vm, postedInts, dbInts); _ctx.SaveChanges(); return(RedirectToAction("Index")); }