public IActionResult PreporuceniProizvod(int id)
        {
            var narudzbe        = _narudzbeService.Get().ToList();
            var narudzbeDetails = _narudzbeDetailsService.Get().ToList();

            List <ProizvodVM> listaKupljenihProizvoda = new List <ProizvodVM>();

            foreach (var item in narudzbe)
            {
                foreach (var detail in narudzbeDetails)
                {
                    if (item.KorisnikId != id || detail.NarudzbaId != item.NarudzbaId)
                    {
                        continue;
                    }

                    if (!listaKupljenihProizvoda.Contains(detail.Proizvod))
                    {
                        listaKupljenihProizvoda.Add(detail.Proizvod);
                    }
                }
                //Zaustavljamo dodavanje kupljenih elemenata nakon sto dodamo 3 na listu
                if (listaKupljenihProizvoda.Count >= 3)
                {
                    break;
                }
            }

            List <ProizvodVM> preporuceni        = new List <ProizvodVM>();
            List <ProizvodVM> preporuceniDodatni = new List <ProizvodVM>();

            foreach (var item in listaKupljenihProizvoda)
            {
                var preporuceniList = _proizvodiService.GetPreporuceniProizvodi(item.ProizvodId);
                //Uzima prvi element, tj. element sa najvisim koeficijentom slicnosti i ukoliko nije vec kupljen ili vec preporucen stavi ga na listu preporucenih
                if (preporuceniList.Count > 0 && !listaKupljenihProizvoda.Contains(preporuceniList[0]) && !preporuceni.Contains(preporuceniList[0]))
                {
                    preporuceni.Add(preporuceniList[0]);
                }

                //Uzimamo preporucene koji imaju manji koef. slicnosti kao rezervu prije dodjeljivanja random proizvoda u slucaju manjka podataka za generisanje
                if (preporuceniList.Count > 1)
                {
                    if (preporuceniList[1] != null && !listaKupljenihProizvoda.Contains(preporuceniList[1]) && !preporuceni.Contains(preporuceniList[1]))
                    {
                        preporuceniDodatni.Add(preporuceniList[1]);
                    }
                    if (preporuceniList[2] != null && preporuceniList.Count > 0 && !listaKupljenihProizvoda.Contains(preporuceniList[2]) && !preporuceni.Contains(preporuceniList[2]))
                    {
                        preporuceniDodatni.Add(preporuceniList[2]);
                    }
                }
            }

            if (preporuceni.Count < 3)
            {
                foreach (var item in preporuceniDodatni)
                {
                    preporuceni.Add(item);
                }
            }

            //Ukoliko nemamo najmanje 3 preporucena elementa niti dodatna(ugl. radi manjka podataka), dodjeljujemo random proizvod koji nije kupljen ili vec preporucen
            if (preporuceni.Count < 3)
            {
                var proizvodi = _proizvodiService.Get().ToList();

                foreach (var item in proizvodi)
                {
                    if (!listaKupljenihProizvoda.Contains(item) && !preporuceni.Contains(item))
                    {
                        preporuceni.Add(item);
                    }

                    if (preporuceni.Count >= 3)
                    {
                        break;
                    }
                }
            }

            return(Ok(preporuceni));
        }
 public List <OnlineGym_Model.Narudzbe> Get([FromQuery] NarudzbaSearchRequest request)
 {
     return(_service.Get(request));
 }