public List <MUposlenik> GetSlicniInstruktori(RecommenderSearchRequest search)

        {
            UcitajInstruktore(search.InstruktorId);//svi osim odabranog
            var utisciOdabranogInstruktora = _context.Utisak.Where(x => x.UposlenikId == search.InstruktorId).OrderBy(x => x.KandidatId).ToList();
            var zajednickeOcene1           = new List <Utisak>();
            var zajednickeOcene2           = new List <Utisak>();
            var slicniInstruktori          = new List <MUposlenik>();

            foreach (var inst in utisciZaDrugeInstruktore)
            {
                foreach (var utisci in utisciOdabranogInstruktora)
                {
                    if (inst.Value.Where(x => x.KandidatId == utisci.KandidatId).Count() > 0)
                    {
                        zajednickeOcene1.Add(utisci);
                        zajednickeOcene2.Add(inst.Value.Where(x => x.KandidatId == utisci.KandidatId).First());
                    }
                }
                double slicnost         = GetSlicnost(zajednickeOcene1, zajednickeOcene2);
                var    slicanInstruktor = InstruktorGetById(inst.Key);
                if (slicnost > 0.6)
                {
                    slicniInstruktori.Add(slicanInstruktor);
                }
                zajednickeOcene1.Clear();
                zajednickeOcene2.Clear();
            }
            return(slicniInstruktori);
        }
Exemplo n.º 2
0
        private void GetOstaleProdukte(int produktId, int restoranId)
        {
            RecommenderSearchRequest request = new RecommenderSearchRequest {
                ProduktId = produktId
            };

            List <MProdukti> produktiList = Get(request);
            List <Review>    reviews;
            //isfiltirana lista, po restoranu
            var meniProdukti = _meniProduktiService.Get(new MeniProduktiSearchRequest {
                RestoranId = restoranId
            });

            foreach (var item in produktiList)
            {
                if (meniProdukti.Select(i => i.ProduktiId).Contains(item.ProduktiId))
                {
                    //ocjene koje nisu taj produkt*
                    reviews = _context.Review.Where(x => x.ProduktiId == item.ProduktiId && x.ProduktiId != null).OrderBy(x => x.KorisnikId).ToList();

                    if (reviews.Count > 0)
                    {
                        nisuTajProdukt.Add(item.ProduktiId, reviews);
                    }
                }
            }
        }
Exemplo n.º 3
0
        public List <MProdukti> Get(RecommenderSearchRequest search)
        {
            var query = _context.Set <Database.Produkti>().AsQueryable();

            query = query.Where(i => i.ProduktiId != search.ProduktId);


            var list = query.ToList();

            return(_mapper.Map <List <MProdukti> >(list));
        }
Exemplo n.º 4
0
        public List <MProdukti> GetSlicniProdukti(RecommenderSearchRequest request)
        {
            GetOstaleProdukte(request.ProduktId, request.RestoranId); //ocjene koje nisu taj produkt

            //ocjene koje jesu taj produkt
            List <Review> jesuTajProdukt = _context.Review.Where(x => x.ProduktiId == request.ProduktId && x.ProduktiId != null).OrderBy(x => x.KorisnikId).ToList();

            List <Review> ocjene1 = new List <Review>();
            List <Review> ocjene2 = new List <Review>();


            List <MProdukti> slicniProdukti = new List <MProdukti>();

            foreach (var n in nisuTajProdukt)
            {
                foreach (var j in jesuTajProdukt)
                {
                    if (n.Value.Where(x => x.KorisnikId == j.KorisnikId).Count() > 0)
                    {
                        ocjene1.Add(j);
                        ocjene2.Add(n.Value.Where(x => x.KorisnikId == j.KorisnikId).First());
                    }
                }

                double sim = IzracunajSlicnost(ocjene1, ocjene2);

                if (sim > 0.7)
                {
                    var slican = GetById(n.Key);

                    slicniProdukti.Add(slican);
                }

                ocjene1.Clear();
                ocjene2.Clear();
            }

            return(slicniProdukti);
        }
Exemplo n.º 5
0
 public List <MProdukti> GetSlicniProdukti([FromQuery] RecommenderSearchRequest search)
 {
     return(_recommenderService.GetSlicniProdukti(search));
 }
Exemplo n.º 6
0
 public List <MUposlenik> Get([FromQuery] RecommenderSearchRequest search)
 {
     return(_recommenderService.GetSlicniInstruktori(search));
 }