Exemplo n.º 1
0
        //Funkcija koja se poziva iz web dijela aplikacije
        public List <Nekretnine> GetSlicneProizvode(int nekretninaID, int korisnikID)
        {
            UcitajProizvode(nekretninaID);

            List <Ocjene> ocjene = con.Ocjene.Where(x => x.NekretninaID == nekretninaID).OrderBy(x => x.KupacID).ToList();

            List <Ocjene> zajednickeOcjene1 = new List <Ocjene>();
            List <Ocjene> zajednickeOcjene2 = new List <Ocjene>();

            List <Nekretnine> preporuceno = new List <Nekretnine>();

            //Prva petlja - lista svih proizvoda (ne uključujući onaj koji je proslijeđen u funkciju)
            foreach (var item in tempUsluge)
            {
                foreach (Ocjene o in ocjene)  //Sve ocjene aktivnog proizvoda
                {
                    //Provjeriti da li je naredni proizvod (iz liste proizvodi) ocijenio isti kupac
                    if (item.Value.Where(x => x.KupacID == o.KupacID).Count() > 0)
                    {
                        zajednickeOcjene1.Add(o);
                        zajednickeOcjene2.Add(item.Value.Where(x => x.KupacID == o.KupacID).First());
                    }
                }

                //Za računanje sličnosti se uzimaju samo zajedničke ocjene, odnosno ocjene istih kupaca za oba proizvoda
                double slicnost = GetSlicnost(zajednickeOcjene1, zajednickeOcjene2);
                if (slicnost > 0.6) //Granična vrijednost (treshold)
                {
                    preporuceno.Add(DANekretnine.SelectById(item.Key));
                }

                zajednickeOcjene1.Clear();
                zajednickeOcjene2.Clear();
            }

            List <Ocjene> ocjenePacijenta = con.Ocjene.Where(x => x.KupacID == korisnikID).ToList();

            foreach (Ocjene oc in ocjenePacijenta)
            {
                Nekretnine idNekretnine = oc.Nekretnine;
                preporuceno.Remove(idNekretnine);
            }

            //Lista preporučenih proizvoda
            return(preporuceno);
        }
        public void ProcessRequest(HttpContext context)
        {
            if (context.Request["id"] != null)
            {
                int nekretninaID = Convert.ToInt32(context.Request["id"]);

                if (nekretninaID > 0)
                {
                    Nekretnine n = DANekretnine.SelectById(nekretninaID);

                    if (n.SlikaThumb != null)
                    {
                        context.Response.ContentType = "image/jpg";
                        context.Response.BinaryWrite(n.SlikaThumb);
                    }
                }
            }
        }
        protected void btnKorpa_Click(object sender, EventArgs e)
        {
            if (Page.User.Identity.IsAuthenticated)
            {
                if (narudzba == null)
                {
                    narudzba         = new Narudzbe();
                    narudzba.Datum   = DateTime.Now;
                    narudzba.KupacID = Convert.ToInt32(Page.User.Identity.Name);
                    Random rnd  = new Random();
                    int    prvi = rnd.Next(1, 445);
                    narudzba.BrojNarudzbe = Convert.ToString(prvi);
                    narudzba.Status       = true;
                    narudzba.Otkazano     = false;
                }

                foreach (NarudzbaStavke s in narudzba.NarudzbaStavke)
                {
                    if (s.NekretninaID == nekretninaID)
                    {
                        s.Kolicina += 1;
                        return;
                    }
                }

                NarudzbaStavke narudzbaStavke = new NarudzbaStavke();
                narudzbaStavke.NekretninaID = nekretninaID;
                narudzbaStavke.Nekretnine   = DANekretnine.SelectById(nekretninaID);
                narudzbaStavke.Kolicina     = 1;

                narudzba.NarudzbaStavke.Add(narudzbaStavke);

                if (narudzba != null)
                {
                    ((HyperLink)(this.Master.FindControl("linkKorpa"))).Text = string.Format("{0}", "Korpa (" + narudzba.NarudzbaStavke.Count + ")");
                }
            }

            else
            {
                Response.Redirect("/KorisniciSistema/Prijava.aspx");
            }
        }