public IActionResult Dodaj(int NekretninaID)
        {
            //ovo je kada biramo iz Uredi ili Detalji Nekretnine
            Nekretnina x         = db.Nekretnine.Find(NekretninaID);
            Oglas      postojiLi = db.Oglas.Where(i => i.NekretninaID == NekretninaID).FirstOrDefault();

            if (postojiLi != null)
            {
                TempData["WarningMessage"] = "Nekretnina je već objavljena!";
                return(Redirect("/Nekretnina/Prikazi"));
            }
            else
            {
                OglasiDodajVM model = new OglasiDodajVM
                {
                    NekretninaID = x.NekretninaID,
                    Nekretnine   = db.Nekretnine.Where(i => i.NekretninaID == NekretninaID).Select(k => new Microsoft.AspNetCore.Mvc.Rendering.SelectListItem {
                        Value = k.NekretninaID.ToString(),
                        Text  = k.Naziv
                    }).ToList(),
                    Aktivan     = true,
                    DatumObjave = DateTime.Now,


                    UposlenikKorisnickoIme = HttpContext.GetLogiraniKorisnik().KorisnickoIme,
                    vrstaOglasa            = db.VrsteOglasa.Select(i => new Microsoft.AspNetCore.Mvc.Rendering.SelectListItem
                    {
                        Value = i.VrstaOglasaID.ToString(),
                        Text  = i.Naziv
                    }).ToList()
                };
                return(View(model));
            }
        }
        public static void updateNekretninaDuze(int id, NekrIznDuzeAddUpdate n)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Nekretnina nek = s.Query <Nekretnina>().Where(a => a.Id == id).FirstOrDefault();
                NekretninaIznajmljivanjeDuze nd = (NekretninaIznajmljivanjeDuze)nek;
                nd.GradLokacija       = n.GradLokacija;
                nd.Ulica              = n.Ulica;
                nd.Broj               = n.Broj;
                nd.BrojParcele        = n.BrojParcele;
                nd.KatastarskaOpstina = n.KatastarskaOpstina;
                nd.Tip              = n.Tip;
                nd.Kvadratura       = n.Kvadratura;
                nd.DatumIzgradnje   = n.DatumIzgradnje;
                nd.Cena             = n.Cena;
                nd.SpratBrSpratova  = n.SpratBrSpratova;
                nd.Opis             = n.Opis;
                nd.IdUgovora        = n.IdUgovora;
                nd.MaxMeseci        = n.MaxMeseci;
                nd.FizickaLicaFirme = n.FizickaLicaFirme;
                nd.Vlasnik          = s.Load <Klijent>(n.Vlasnik);
                nd.ZaduzenAgent     = s.Load <Agent>(n.ZaduzenAgent);

                s.Update(nd);

                s.Flush();
                s.Close();
            }
            catch (Exception exc)
            {
            }
        }
Exemple #3
0
        private void btnDodajFoto_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count == 0)
            {
                MessageBox.Show("Odaberite nekretninu!");
                return;
            }

            int nekId = Int32.Parse(listView1.SelectedItems[0].SubItems[0].Text);

            try
            {
                if (ofdDodajSlike.ShowDialog() == DialogResult.OK)
                {
                    ISession    s     = DataLayer.GetSession();
                    Nekretnina  n     = s.Load <Nekretnina>(nekId);
                    string      path  = ofdDodajSlike.FileName;
                    byte[]      slika = Encoding.ASCII.GetBytes(path);
                    Fotografija f     = new Fotografija()
                    {
                        Sadrzaj           = slika,
                        PripadaNekretnini = n
                    };
                    s.Save(f);
                    s.Flush();
                    s.Close();
                }
            }
            catch (Exception ec)
            {
                MessageBox.Show(ec.Message);
            }
        }
 public checkNekretnina(Nekretnina n, BitmapImage slika1)
 {
     InitializeComponent();
     imgSlika.Source = slika1;
     txtOpis.Text = n.Opis;
     nekretnina = n;
 }
Exemple #5
0
        private void btnFotografije_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count == 0)
            {
                MessageBox.Show("Odaberite nekretninu!");
                return;
            }

            int nekId = Int32.Parse(listView1.SelectedItems[0].SubItems[0].Text);

            try
            {
                ISession s = DataLayer.GetSession();

                Nekretnina n = s.Load <Nekretnina>(nekId);
                if (n.Fotografije.Count == 0)
                {
                    s.Close();
                    MessageBox.Show("Nema fotografija za prikaz!");
                    return;
                }

                NekretninaFotografije nf = new NekretninaFotografije(n);
                nf.Show();
                s.Close();
            }
            catch (Exception ec)
            {
                MessageBox.Show(ec.Message);
            }
        }
        public static void updateNekretninaProdaja(int id, NekretninaProdajaAddUpdate n)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Nekretnina        nek = s.Query <Nekretnina>().Where(a => a.Id == id).FirstOrDefault();
                NekretninaProdaja np  = (NekretninaProdaja)nek;
                np.GradLokacija       = n.GradLokacija;
                np.Ulica              = n.Ulica;
                np.Broj               = n.Broj;
                np.BrojParcele        = n.BrojParcele;
                np.KatastarskaOpstina = n.KatastarskaOpstina;
                np.Tip             = n.Tip;
                np.Kvadratura      = n.Kvadratura;
                np.DatumIzgradnje  = n.DatumIzgradnje;
                np.Cena            = n.Cena;
                np.SpratBrSpratova = n.SpratBrSpratova;
                np.Opis            = n.Opis;
                np.IdUgovora       = n.IdUgovora;
                np.Vlasnik         = s.Load <Klijent>(n.Vlasnik);
                np.ZaduzenAgent    = s.Load <Agent>(n.ZaduzenAgent);

                s.Update(np);

                s.Flush();
                s.Close();
            }
            catch (Exception exc)
            {
            }
        }
        public static void updateNekretninaKrace(int id, NekrIznKraceAddUpdate n)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Nekretnina nek = s.Query <Nekretnina>().Where(a => a.Id == id).FirstOrDefault();
                NekretninaIznajmljivanjeKrace nk = (NekretninaIznajmljivanjeKrace)nek;
                nk.GradLokacija       = n.GradLokacija;
                nk.Ulica              = n.Ulica;
                nk.Broj               = n.Broj;
                nk.BrojParcele        = n.BrojParcele;
                nk.KatastarskaOpstina = n.KatastarskaOpstina;
                nk.Tip             = n.Tip;
                nk.Kvadratura      = n.Kvadratura;
                nk.DatumIzgradnje  = n.DatumIzgradnje;
                nk.Cena            = n.Cena;
                nk.SpratBrSpratova = n.SpratBrSpratova;
                nk.Opis            = n.Opis;
                nk.IdUgovora       = n.IdUgovora;
                nk.DatumOd         = n.DatumOd;
                nk.DatumDo         = n.DatumDo;
                nk.Godina          = n.Godina;
                nk.Vlasnik         = s.Load <Klijent>(n.Vlasnik);
                nk.ZaduzenAgent    = s.Load <Agent>(n.ZaduzenAgent);

                s.Update(nk);

                s.Flush();
                s.Close();
            }
            catch (Exception exc)
            {
            }
        }
        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 Create([Bind("Sifra,Vrsta,Lokacija,Kvadratura,ZKCist,PristupniPut,BrojSoba,ZaduzeniAgent")] Nekretnina nekretnina)
 {
     if (ModelState.IsValid)
     {
         nekretnine.Add(nekretnina);
         return(RedirectToAction(nameof(Index)));
     }
     return(View(nekretnina));
 }
        public IActionResult Obrisi(int NekretninaID)
        {
            Nekretnina zaBrisanje = db.Nekretnine.Find(NekretninaID);
            Oglas      oglas      = db.Oglas.Where(i => i.NekretninaID == zaBrisanje.NekretninaID).FirstOrDefault();


            var    obilasci = db.Obilasci.Where(i => i.NekretninaID == zaBrisanje.NekretninaID).ToList();
            var    noti     = db.Notifikacije.ToList();
            Ugovor ugovore  = db.Ugovori.Where(i => i.NekretninaID == zaBrisanje.NekretninaID).FirstOrDefault();
            Uplata uplata   = db.Uplate.Where(i => i.NekretninaID == zaBrisanje.NekretninaID).FirstOrDefault();

            if (zaBrisanje != null)
            {
                if (ugovore != null || uplata != null)
                {
                    TempData["warningMessage"] = "Ovu nekretninu je nemoguće obrisati!";
                    return(RedirectToAction("Prikazi"));
                }
                else
                {
                    if (obilasci != null)
                    {
                        //prodji kroz sve notifikacije sa tim obilaskom i obriši ih

                        foreach (var o in obilasci)
                        {
                            foreach (var n in noti)
                            {
                                if (n.ObilazakID == o.ObilazakID)
                                {
                                    db.Notifikacije.Remove(n);
                                    db.SaveChanges();
                                }
                            }
                        }
                        //prodji kroz sve obilaske te  nekretnine i obriši ih
                        foreach (var o in obilasci)
                        {
                            db.Obilasci.Remove(o);
                            db.SaveChanges();
                        }
                    }

                    if (oglas != null)
                    {
                        db.Remove(oglas);
                        db.SaveChanges();
                    }

                    db.Remove(zaBrisanje);
                    db.SaveChanges();
                }
            }

            return(RedirectToAction("Prikazi"));
        }
Exemple #11
0
        private void btnProdato_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count == 0)
            {
                MessageBox.Show("Odaberite nekretninu!");
                return;
            }

            string str = listView1.SelectedItems[0].SubItems[6].Text;

            if (str.Equals("iznajmljivanje"))
            {
                MessageBox.Show("Nekretnina nije na prodaju!");
                return;
            }

            int nekrId = Int32.Parse(listView1.SelectedItems[0].SubItems[0].Text);

            try
            {
                ISession s = DataLayer.GetSession();

                Nekretnina     n = s.Load <Nekretnina>(nekrId);
                IList <Ugovor> u = s.QueryOver <Ugovor>()
                                   .Where(ug => ug.PripadaNekretnini.Id == nekrId)
                                   .List <Ugovor>();

                int vlId = n.Vlasnik.Id;

                if (u.Count == 0)
                {
                    MessageBox.Show("Ne mozete prodati nekretninu bez ugovora!");
                    return;
                }

                s.Delete(n);
                s.Flush();

                Klijent k = s.Load <Klijent>(vlId);
                if (k.NekretnineVlasnik.Count == 0)
                {
                    k.Prodavac = "Ne";
                    s.Update(k);
                }

                s.Flush();
                s.Close();
            }
            catch (Exception ec)
            {
                MessageBox.Show(ec.Message);
            }

            this.PopulateInfos();
        }
        public IHttpActionResult Post(Nekretnina nekretnina)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _repository.Add(nekretnina);
            nekretnina = _repository.GetById(nekretnina.Id); //ovo su dodela za id
            return(CreatedAtRoute("DefaultApi", new { id = nekretnina.Id }, nekretnina));
        }
 private void btnUcitajNekretninu_Click(object sender, EventArgs e)
 {
     try {
         ISession   sesija = DataLayer.GetSession();
         Nekretnina nova   = sesija.Load <PoslovnaNekretnina>(4);
         MessageBox.Show(nova.Ime_ulice);//Koch Haven
     }catch (Exception ec)
     {
         MessageBox.Show(ec.Message);
     }
 }
Exemple #14
0
        public async Task <IHttpActionResult> GetNekretnina(int id)
        {
            Nekretnina nekretnina = await db.Nekretnina.FindAsync(id);

            if (nekretnina == null)
            {
                return(NotFound());
            }

            return(Ok(nekretnina));
        }
 public void popuni(Nekretnina n)
 {
     txtLokacija.Text = n.Lokacija;
     txtOpis.Text = n.Opis;
     cbbTipNekretnine.SelectedItem = n.TipNekretnine;
     tbxCijena.Text = n.Cijena.ToString();
     cbbKlijenti.SelectedItem = n.klijent;
     cbxRezervisanost.IsChecked = n.DaLiJeRezervisana;
     slike = n.Slike;
     if (slike.Count > 0)
         imgNekretnine.Source = slike[0];
 }
        public void Update(Nekretnina nekretnina)
        {
            db.Entry(nekretnina).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                throw;
            }
        }
Exemple #17
0
        public NekretninaFotografije(Nekretnina nekr) : this()
        {
            n = nekr;
            btnPrethodna.Visible = false;
            if (n.Fotografije.Count == 1)
            {
                btnSledeca.Visible = false;
            }
            byte[] blob = n.Fotografije[index].Sadrzaj;
            string path = Encoding.ASCII.GetString(blob);

            pictureBox1.Image = Image.FromFile(path);
        }
        public static void SaveNekretnina(Nekretnina n)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                s.Save(n);
                s.Flush();

                s.Close();
            }
            catch (Exception ec)
            {
                MessageBox.Show(ec.Message);
            }
        }
Exemple #19
0
        private void btnNoviUgovor_Click(object sender, EventArgs e)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                ProdajniUgovor ugovor = new ProdajniUgovor()
                {
                    ImePrezimeNotara = "Slavica Djukic",
                    AdresaNotara     = "Bulevar Nemanjica BB",
                    Datum            = DateTime.Now,
                    NaknadaAgencija  = 500,
                    BonusAgent       = 40,
                    Cena             = 30000,
                    NaknadaNotar     = 150
                };

                Nekretnina      nekretnina        = s.Load <Nekretnina>(6);
                Klijent         prodavac          = s.Load <Klijent>(3);
                PravniZastupnik zastupnikProdavac = s.Load <PravniZastupnik>(4);
                Klijent         kupac             = s.Load <Klijent>(7);
                PravniZastupnik zastupnikKupac    = s.Load <PravniZastupnik>(6);

                ugovor.PripadaNekretnini          = nekretnina;
                ugovor.Vlasnik                    = prodavac;
                ugovor.ZastupnikVlasnik           = zastupnikProdavac;
                ugovor.ZastupnikKupacIznajmljivac = zastupnikKupac;
                ugovor.KupacIznajmljivac          = kupac;

                nekretnina.Ugovor = ugovor;
                prodavac.PotpisaniProdavac.Add(ugovor);
                kupac.PotpisaniKupac.Add(ugovor);
                zastupnikProdavac.AngazovaoProdavac.Add(ugovor);
                zastupnikKupac.AngazovaoKupac.Add(ugovor);

                s.Save(ugovor);
                s.Flush();
                MessageBox.Show("Uspesno dodat novi ugovor!");

                s.Close();
            }
            catch (Exception ec)
            {
                MessageBox.Show(ec.Message);
            }
        }
        public static void removeNekretnina(int id)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Nekretnina n = s.Load <Nekretnina>(id);

                s.Delete(n);

                s.Flush();
                s.Close();
            }
            catch (Exception exc)
            {
            }
        }
        private void btnVezaManytoOne_Click(object sender, EventArgs e)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                //Ucitavaju se podaci o prodavnici za zadatim brojem
                Nekretnina n = s.Load <Nekretnina>(7);

                MessageBox.Show(n.Prodavac.ID.ToString());
                MessageBox.Show(n.Kvart.Gradska_zona);
                MessageBox.Show(n.Starost().ToString());


                s.Close();
            }
            catch (Exception ec)
            {
                MessageBox.Show(ec.Message);
            }
        }
Exemple #22
0
        private void nekretnineListView_ItemActivate_1(object sender, EventArgs e)
        {
            dijeloviNekretnineListView.Items.Clear();

            for (int i = 0; i < nekretnineListView.Items.Count; i++)
            {
                if (nekretnineListView.Items[i].Selected == true)
                {
                    foreach (Nekretnina n in nekretnine)
                    {
                        if (n.Naziv == nekretnineListView.Items[i].Text)
                        {
                            try
                            {
                                odabranaNekretnina = n;

                                ListViewItem temp = new ListViewItem();
                                DAO          dao  = new DAO("localhost", "ikzavrsni", "root", "root");

                                int idNekretnine = dao.VratiIdNekretnine(n.Naziv, n.Adresa, n.Grad);
                                dijeloviNekretnina = dao.PretraziDioNekretnine(idNekretnine);

                                foreach (DioNekretnine dn in dijeloviNekretnina)
                                {
                                    temp = dijeloviNekretnineListView.Items.Add(dn.Naziv);
                                    temp.SubItems.Add(dn.Status);
                                    temp.SubItems.Add(dn.IznosNajma.ToString());
                                }
                                return;
                            }
                            catch (Exception izuzetak)
                            {
                                toolStripStatusLabel1.Text = izuzetak.Message;
                            }
                        }
                    }
                }
            }
        }
        public async Task <List <Nekretnina> > GetPreporuceneNekretnine(int nekretninaId)
        {
            List <Nekretnina> _preporuceneNekretnine = new List <Nekretnina>();

            Nekretnina posmatranaNekretnina = new Nekretnina();

            posmatranaNekretnina = await _nekretninaService.GetById <Nekretnina>(nekretninaId);

            NekretninaSearchRequest nekretninaSearchRequest = new NekretninaSearchRequest();

            nekretninaSearchRequest.GradId = posmatranaNekretnina.GradId;

            OcjenaSearchRequest ocjenaSearchRequest = new OcjenaSearchRequest();

            List <Nekretnina> nekretnine = await _nekretninaService.Get <List <Model.Models.Nekretnina> >(nekretninaSearchRequest);

            foreach (var nekretnina in nekretnine)
            {
                if (nekretnina.NekretninaId != nekretninaId)
                {
                    ocjenaSearchRequest.NekretninaId = nekretnina.NekretninaId;
                    List <Ocjena> ocjeneNekretnine = await _ocjeneService.Get <List <Ocjena> >(ocjenaSearchRequest);

                    double prosjekOcjena = 0;
                    foreach (var o in ocjeneNekretnine)
                    {
                        prosjekOcjena += o.Ocjena1;
                    }

                    prosjekOcjena = prosjekOcjena / ocjeneNekretnine.Count;

                    if (prosjekOcjena >= 2.5 && nekretnina.NekretninaId != nekretninaId)
                    {
                        _preporuceneNekretnine.Add(nekretnina);
                    }
                }
            }
            return(_preporuceneNekretnine);
        }
        private void spasiNekretninu_Click(object sender, EventArgs e)
        {
            try
            {
                DAO dao = new DAO("localhost", "ikzavrsni", "root", "root");
                n = new Nekretnina(nazivTextBox.Text, adresaTextBox.Text, lokacijaTextBox.Text, gradTextBox.Text, biljeskeRichTextBox.Text);

                Bitmap slika = (Bitmap)slikaNekretninePictureBox.Image;
                n.Slika = slika;

                if (brojKvadrataNumericUpDown.Text != "")
                {
                    n.BrojKvadrata = Convert.ToInt32(brojKvadrataNumericUpDown.Text);
                }

                if (godinaIzgradnjeNumericUpdown.Text != "")
                {
                    n.GodinaIzgradnje = Convert.ToInt32(godinaIzgradnjeNumericUpdown.Text);
                }

                if (nabavnaCijenaNumericUpDown.Text != "")
                {
                    n.NabavnaCijena = Convert.ToDouble(nabavnaCijenaNumericUpDown.Text);
                }

                dao.UnesiNekretninu(n);
                dao.ZatvoriKonekciju();

                statusStrip1.BackColor          = Color.White;
                toolStripStatusLabel1.ForeColor = Color.Green;
                toolStripStatusLabel1.Text      = "Podaci su spašeni.";
            }
            catch (Exception)
            {
                statusStrip1.BackColor          = Color.White;
                toolStripStatusLabel1.ForeColor = Color.Red;
                toolStripStatusLabel1.Text      = "Podaci nisu spašeni!";
            }
        }
        public IHttpActionResult Put(int id, Nekretnina nekretnina)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != nekretnina.Id)
            {
                return(BadRequest());
            }

            try
            {
                _repository.Update(nekretnina);
            }
            catch
            {
                throw;
            }

            return(Ok(nekretnina));
        }
Exemple #26
0
        private void btnObrisi_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count == 0)
            {
                MessageBox.Show("Odaberite nekretninu!");
                return;
            }

            int nekrId = Int32.Parse(listView1.SelectedItems[0].SubItems[0].Text);

            try
            {
                ISession s = DataLayer.GetSession();

                Nekretnina n    = s.Load <Nekretnina>(nekrId);
                int        vlId = n.Vlasnik.Id;

                s.Delete(n);
                s.Flush();

                Klijent k = s.Load <Klijent>(vlId);
                if (k.NekretnineVlasnik.Count == 0)
                {
                    k.Prodavac = "Ne";
                    s.Update(k);
                }

                s.Flush();
                s.Close();
            }
            catch (Exception ec)
            {
                MessageBox.Show(ec.Message);
            }

            this.PopulateInfos();
        }
 private void dioZaIznajmljivanjeTabPage_Enter(object sender, EventArgs e, Nekretnina n)
 {
 }
Exemple #28
0
 public IzmjenaNekretnine(Nekretnina nekretnina)
 {
     InitializeComponent();
     n = nekretnina;
 }
 public void Delete(Nekretnina nekretnina)
 {
     db.Nekretnina.Remove(nekretnina);
     db.SaveChanges();
 }
        private void btnOK_Click(object sender, RoutedEventArgs e)
        {
            if (validirajLokacije() == true && validirajCijenu() == true)
            {
                List<Nekretnina.EnumTipNekretnine> l =
                    Enum.GetValues(typeof(Nekretnina.EnumTipNekretnine)).Cast<Nekretnina.EnumTipNekretnine>().ToList();
                Nekretnina.EnumTipNekretnine e1 = l[cbbTipNekretnine.SelectedIndex];
                if (tbxCijena.Text == "") tbxCijena.Text = "0.0";
                decimal dec = Convert.ToDecimal(tbxCijena.Text);
                Nekretnina n = new Nekretnina(txtLokacija.Text, txtOpis.Text, e1,
                    dec, 0, cbxRezervisanost.IsChecked == true, null);
                n.Slike = slike;
                n.klijent = cbbKlijenti.SelectedItem as Klijent;

                nekretnine.Add(n);

                DAO.NekretninaDAO daon = new DAO.NekretninaDAO();
                daon.Create(n);

                foreach (BitmapImage i in slike)
                {
                    SlikeNekretnina sn = new SlikeNekretnina(n, i);

                    DAO.SlikeNekretninaDAO daosn = new DAO.SlikeNekretninaDAO();
                    daosn.Create(sn);
                }

                this.Close();
            }
            else pocrveni(borLokacija);
        }
        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 UnosDijelaNekretnine(Nekretnina n)
 {
     InitializeComponent();
     nekretnina = n;
 }
        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"));
        }