//Drugi sprint public IActionResult Dodaj() { NekretninaDodajVm model = new NekretninaDodajVm { Kategorije = db.Kategorije.Select(k => new SelectListItem { Value = k.KategorijaID.ToString(), Text = k.KategorijaNaziv }).ToList(), Lokacija = db.Lokacije.Select(k => new SelectListItem { Value = k.LokacijaID.ToString(), Text = k.Naziv }).ToList(), Grad = db.Gradovi.Select(k => new SelectListItem { Value = k.GradID.ToString(), Text = k.Naziv }).ToList(), Drzava = db.Drzave.Select(k => new SelectListItem { Value = k.DrzavaID.ToString(), Text = k.Naziv }).ToList(), Karakteristike = db.Karakteristike.Select(k => new SelectListItem { Value = k.KarakteristikeID.ToString(), Text = k.Naziv }).ToList() }; return(View(model)); }
public IActionResult Detalji(int NekretninaID) { Nekretnina x = db.Nekretnine .Include(g => g.Kategorija) .Include(t => t.Lokacija) .Include(k => k.Lokacija.Grad) .Include(t => t.Lokacija.Grad.Drzava) .Where(x => x.NekretninaID == NekretninaID).FirstOrDefault(); NekretninaDodajVm model = new NekretninaDodajVm { NekretninaID = NekretninaID, Naziv = x.Naziv, Opis = x.Opis, Kvadratura = x.Kvadratura, Cijena = x.Cijena, BrojSoba = x.BrojSoba, LokacijaID = x.LokacijaID, GradID = x.Lokacija.Grad.GradID, DrzavaID = x.Lokacija.Grad.Drzava.DrzavaID, KategorijeID = x.KategorijaID, Kategorije = db.Kategorije.Select(k => new SelectListItem { Value = k.KategorijaID.ToString(), Text = k.KategorijaNaziv }).ToList(), Lokacija = db.Lokacije.Select(k => new SelectListItem { Value = k.LokacijaID.ToString(), Text = k.Naziv }).ToList(), Grad = db.Gradovi.Select(k => new SelectListItem { Value = k.GradID.ToString(), Text = k.Naziv }).ToList(), Drzava = db.Drzave.Select(k => new SelectListItem { Value = k.DrzavaID.ToString(), Text = k.Naziv }).ToList(), Karakteristike = db.NekretninaKarakteristike .Where(i => i.NekretninaID == NekretninaID) .Select(k => new SelectListItem { Value = k.Karakteristike.KarakteristikeID.ToString(), Text = k.Karakteristike.Naziv }).ToList(), Slike = db.Slike.Where(k => k.NekretninaID == NekretninaID).ToList() }; return(View(model)); }
public IActionResult Uredi(int NekretninaID) { if (NekretninaID == 0) { return(StatusCode(400)); } Nekretnina x = db.Nekretnine .Include(g => g.Kategorija) .Include(t => t.Lokacija) .Include(k => k.Lokacija.Grad) .Include(t => t.Lokacija.Grad.Drzava) .Include(t => t.Slike) .Where(x => x.NekretninaID == NekretninaID).FirstOrDefault(); if (x == null) { return(StatusCode(404)); } var selected = db.NekretninaKarakteristike.Where(i => i.NekretninaID == x.NekretninaID).Select(i => i.KarakteristikeID).ToList(); NekretninaDodajVm model = new NekretninaDodajVm { NekretninaID = NekretninaID, Naziv = x.Naziv, Opis = x.Opis, Kvadratura = x.Kvadratura, Cijena = x.Cijena, BrojSoba = x.BrojSoba, LokacijaID = x.LokacijaID, GradID = x.Lokacija.Grad.GradID, DrzavaID = x.Lokacija.Grad.Drzava.DrzavaID, KategorijeID = x.KategorijaID, Kategorije = db.Kategorije.Select(k => new SelectListItem { Value = k.KategorijaID.ToString(), Text = k.KategorijaNaziv }).ToList(), Lokacija = db.Lokacije.Select(k => new SelectListItem { Value = k.LokacijaID.ToString(), Text = k.Naziv }).ToList(), Grad = db.Gradovi.Select(k => new SelectListItem { Value = k.GradID.ToString(), Text = k.Naziv }).ToList(), Drzava = db.Drzave.Select(k => new SelectListItem { Value = k.DrzavaID.ToString(), Text = k.Naziv }).ToList(), Karakteristike = db.Karakteristike .Select(k => new SelectListItem { Value = k.KarakteristikeID.ToString(), Text = k.Naziv, Selected = selected.Contains(k.KarakteristikeID) }).ToList(), Slike = db.Slike.Where(k => k.NekretninaID == NekretninaID).ToList() }; return(View("Dodaj", model)); }
public IActionResult Snimi(NekretninaDodajVm input) { Nekretnina x; if (input.NekretninaID == 0) { //ako je dodavanje x = new Nekretnina(); //db.Nekretnine.Add(x); if (!ModelState.IsValid) { return(Redirect("Dodaj")); } List <Slike> fileDetails = new List <Slike>(); foreach (var slike in Request.Form.Files) { if (slike != null && slike.Length > 0) { var fileName = Path.GetFileName(slike.FileName); Slike fileDetail = new Slike() { MyImage = fileName, Ekstenzija = Path.GetExtension(fileName), SlikeID = Guid.NewGuid() }; fileDetails.Add(fileDetail); string uploadsFolder = Path.Combine(host.WebRootPath, "img"); var path = Path.Combine(uploadsFolder, fileDetail.SlikeID + fileDetail.Ekstenzija); slike.CopyTo(new FileStream(path, FileMode.Create)); } } x.Slike = fileDetails; db.Nekretnine.Add(x); //db.SaveChanges(); } else { //ako je uređivanje x = db.Nekretnine .Include(i => i.Lokacija) .Include(i => i.Lokacija.Grad) .Include(i => i.Lokacija.Grad.Drzava) .Where(i => i.NekretninaID == input.NekretninaID) .FirstOrDefault(); if (!ModelState.IsValid) { return(Redirect("Uredi?NekretninaID=" + input.NekretninaID)); } List <Slike> fileDetails = new List <Slike>(); foreach (var slike in Request.Form.Files) { if (slike != null && slike.Length > 0) { var fileName = Path.GetFileName(slike.FileName); Slike fileDetail = new Slike() { MyImage = fileName, Ekstenzija = Path.GetExtension(fileName), SlikeID = Guid.NewGuid(), NekretninaID = input.NekretninaID //nekretnina za koju se mijenja slika }; fileDetails.Add(fileDetail); string uploadsFolder = Path.Combine(host.WebRootPath, "img"); var path = Path.Combine(uploadsFolder, fileDetail.SlikeID + fileDetail.Ekstenzija); slike.CopyTo(new FileStream(path, FileMode.Create)); db.Entry(fileDetail).State = EntityState.Added; //db.Slike.Add(fileDetail); } } db.Entry(x).State = EntityState.Modified; db.SaveChanges(); } x.NekretninaID = input.NekretninaID; x.KategorijaID = input.KategorijeID; x.LokacijaID = input.LokacijaID; x.BrojSoba = input.BrojSoba ?? 0; x.Cijena = input.Cijena ?? 0; x.Kvadratura = input.Kvadratura ?? 0; x.Naziv = input.Naziv; x.Opis = input.Opis; db.SaveChanges(); Lokacija y = db.Lokacije.Find(input.LokacijaID); y.GradID = input.GradID; db.SaveChanges(); Grad z = db.Gradovi.Find(y.GradID); z.DrzavaID = input.DrzavaID; db.SaveChanges(); var nekretninaKarakteristike = db.NekretninaKarakteristike .Include(i => i.Karakteristike) .Include(i => i.Nekretnina) .Where(i => i.NekretninaID == input.NekretninaID) .Select(i => i.KarakteristikeID) .ToList(); var inputedKarakteristike = input.KarakteristikeID.ToList(); if (input.NekretninaID != 0 && inputedKarakteristike != null) { //prvo obrisati višak var visakNekretnina = nekretninaKarakteristike.Except(inputedKarakteristike); foreach (var brisi in visakNekretnina) { var zaBrisanje = db.NekretninaKarakteristike.Where(i => i.KarakteristikeID == brisi && i.NekretninaID == input.NekretninaID).FirstOrDefault(); db.Remove(zaBrisanje); } db.SaveChanges(); //sada proci kroz sve inpute i provjeravati da li su karakteristike vec unesene, ako nisu unijeti ih, ako jesu - nista,neka ih foreach (var k in inputedKarakteristike) { if (!nekretninaKarakteristike.Contains(k)) { NekretninaKarakteristike nova = new NekretninaKarakteristike { NekretninaID = input.NekretninaID, KarakteristikeID = k }; db.NekretninaKarakteristike.Add(nova); } } db.SaveChanges(); } else { foreach (var k in inputedKarakteristike) { NekretninaKarakteristike nova = new NekretninaKarakteristike { NekretninaID = x.NekretninaID, KarakteristikeID = k }; db.NekretninaKarakteristike.Add(nova); } db.SaveChanges(); } TempData["WarningMessage"] = "Uspješno ste snimili nekretninu"; return(Redirect("/Nekretnina/Prikazi")); }