public ActionResult DodajLokal(EditLokalViewModel model, HttpPostedFileBase file) { if (model.Lokal.LokalId > 0) { // modyfikacja produktu db.Entry(model.Lokal).State = EntityState.Modified; var CheckedKategorie = model.Kategorie1; CheckedKategorie.AddRange(model.Kategorie2); CheckedKategorie.AddRange(model.Kategorie3); CheckedKategorie.AddRange(model.Kategorie4); var lokalekategorie = db.LokaleKategorie.ToList(); foreach (var lk in lokalekategorie) { foreach (var item in CheckedKategorie.Where(x => (x.Checked == false))) { if (lk.LokalId == model.Lokal.LokalId && item.Id == lk.KategoriaId) { LokalKategoria lokalUsun = db.LokaleKategorie.Find(lk.LokalKategoriaId); db.LokaleKategorie.Remove(lokalUsun); db.SaveChanges(); } } } foreach (var item in CheckedKategorie.Where(x => x.Checked)) { foreach (var lk in lokalekategorie) { if (item.Id == lk.KategoriaId && model.Lokal.LokalId == lk.LokalId) { item.Checked = false; } } } foreach (var item in CheckedKategorie.Where(x => x.Checked)) { var lokalKategoria = new LokalKategoria(); lokalKategoria.KategoriaId = item.Id; lokalKategoria.LokalId = model.Lokal.LokalId; db.LokaleKategorie.Add(lokalKategoria); } db.SaveChanges(); return(RedirectToAction("DodajLokal", new { lokalId = model.Lokal.LokalId, potwierdzenie = true })); } else { // Sprawdzenie, czy użytkownik wybrał plik if (file != null && file.ContentLength > 0) { if (ModelState.IsValid) { // Generowanie pliku var fileExt = Path.GetExtension(file.FileName); var filename = Guid.NewGuid() + fileExt; var path = Path.Combine(Server.MapPath(AppConfig.ObrazkiLokaliFolderWzgledny), filename); file.SaveAs(path); model.Lokal.NazwaPlikuObrazka = filename; model.Lokal.DataDodania = DateTime.Now; model.Lokal.UserId = User.Identity.GetUserId(); model.Lokal.Ukryty = true; model.Lokal.StatusLokalu = StatusLokalu.Nowy; model.Lokal.Wyswietlenia = 0; db.Lokale.Add(model.Lokal); var CheckedKategorie = model.Kategorie1; CheckedKategorie.AddRange(model.Kategorie2); CheckedKategorie.AddRange(model.Kategorie3); CheckedKategorie.AddRange(model.Kategorie4); foreach (var item in CheckedKategorie.Where(x => x.Checked)) { var lokalKategoria = new LokalKategoria(); lokalKategoria.KategoriaId = item.Id; lokalKategoria.LokalId = model.Lokal.LokalId; db.LokaleKategorie.Add(lokalKategoria); } db.SaveChanges(); return(RedirectToAction("DodajLokal", new { potwierdzenie = true })); } else { //var kategorie = db.Kategorie.ToList(); model.Kategorie1 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Rodzaj).ToList().Select(x => new KategoriaViewModel(x)).ToList(); model.Kategorie2 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Kuchnia).ToList().Select(x => new KategoriaViewModel(x)).ToList(); model.Kategorie3 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Danie).ToList().Select(x => new KategoriaViewModel(x)).ToList(); model.Kategorie4 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Inne).ToList().Select(x => new KategoriaViewModel(x)).ToList(); //var miejscowosci = db.Miejscowosci.ToList(); //model.Miejscowosci = miejscowosci; return(View(model)); } } else { ModelState.AddModelError("", "Nie wskazano pliku"); //var kategorie = db.Kategorie.ToList(); model.Kategorie1 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Rodzaj).ToList().Select(x => new KategoriaViewModel(x)).ToList(); model.Kategorie2 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Kuchnia).ToList().Select(x => new KategoriaViewModel(x)).ToList(); model.Kategorie3 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Danie).ToList().Select(x => new KategoriaViewModel(x)).ToList(); model.Kategorie4 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Inne).ToList().Select(x => new KategoriaViewModel(x)).ToList(); //var miejscowosci = db.Miejscowosci.ToList(); //model.Miejscowosci = miejscowosci; return(View(model)); } } }
public ActionResult DodajLokal(int?lokalId, bool?potwierdzenie) { Lokal lokal; var result = new EditLokalViewModel(); if (lokalId.HasValue) { ViewBag.EditMode = true; lokal = db.Lokale.Find(lokalId); var kategorie = db.Kategorie.Where(x => x.LokalKategoria.Any(b => (lokalId == b.LokalId))).ToList(); result.Kategorie1 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Rodzaj).ToList().Select(x => new KategoriaViewModel(x)).ToList(); foreach (var k1 in result.Kategorie1) { foreach (var k2 in kategorie) { if (k1.Id == k2.KategoriaId) { k1.Checked = true; } } } result.Kategorie2 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Kuchnia).ToList().Select(x => new KategoriaViewModel(x)).ToList(); foreach (var k1 in result.Kategorie2) { foreach (var k2 in kategorie) { if (k1.Id == k2.KategoriaId) { k1.Checked = true; } } } result.Kategorie3 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Danie).ToList().Select(x => new KategoriaViewModel(x)).ToList(); foreach (var k1 in result.Kategorie3) { foreach (var k2 in kategorie) { if (k1.Id == k2.KategoriaId) { k1.Checked = true; } } } result.Kategorie4 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Inne).ToList().Select(x => new KategoriaViewModel(x)).ToList(); foreach (var k1 in result.Kategorie4) { foreach (var k2 in kategorie) { if (k1.Id == k2.KategoriaId) { k1.Checked = true; } } } } else { ViewBag.EditMode = false; lokal = new Lokal(); result.Kategorie1 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Rodzaj).ToList().Select(x => new KategoriaViewModel(x)).ToList(); result.Kategorie2 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Kuchnia).ToList().Select(x => new KategoriaViewModel(x)).ToList(); result.Kategorie3 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Danie).ToList().Select(x => new KategoriaViewModel(x)).ToList(); result.Kategorie4 = db.Kategorie.Where(a => !a.Ukryty && a.Typ == Typ.Inne).ToList().Select(x => new KategoriaViewModel(x)).ToList(); } //result.Miejscowosci = db.Miejscowosci.ToList(); result.Lokal = lokal; result.Potwierdzenie = potwierdzenie; return(View(result)); }