public void UcitajProizvode(int proizvodId) { if (proizvodId == 0) { List <Database.Proizvod> sviProizvodi = _context.Proizvod.ToList(); foreach (var prz in sviProizvodi) { OnlineGym_Model.Proizvod tempProizvod = _mapper.Map <OnlineGym_Model.Proizvod>(prz); ostaliProizvodi.Add(tempProizvod); } } else { List <Database.Proizvod> listaProizvoda = _context.Proizvod.Where(p => p.ProizvodId != proizvodId).ToList(); var query = _context.Set <Database.Proizvod>().AsQueryable(); query = query.Where(x => x.ProizvodId != proizvodId); var list = query.ToList(); List <Database.RecenzijeProizvoda> ocjene; foreach (Database.Proizvod p in listaProizvoda) { ocjene = _context.RecenzijeProizvoda.Where(r => r.ProizvodId == p.ProizvodId).OrderBy(r => r.ClanId).ToList(); if (ocjene.Count > 0) { proizvodi.Add(p.ProizvodId, ocjene); } } } }
public List <OnlineGym_Model.Proizvod> Get(OnlineGym_Model.Proizvod proizvod) { if (proizvod.ProizvodId != 0) { UcitajProizvode(proizvod.ProizvodId); List <Database.RecenzijeProizvoda> ocjenePosmatranogProizvoda = _context.RecenzijeProizvoda.Where(p => p.ProizvodId == proizvod.ProizvodId).OrderBy(p => p.ClanId).ToList(); List <Database.RecenzijeProizvoda> zajednickeOcjene1 = new List <Database.RecenzijeProizvoda>(); List <Database.RecenzijeProizvoda> zajednickeOcjene2 = new List <Database.RecenzijeProizvoda>(); List <OnlineGym_Model.Proizvod> preporuceniProizvodi = new List <OnlineGym_Model.Proizvod>(); foreach (var p in proizvodi) { foreach (Database.RecenzijeProizvoda o in ocjenePosmatranogProizvoda) { if (p.Value.Where(x => x.ClanId == o.ClanId).Count() > 0) { zajednickeOcjene1.Add(o); zajednickeOcjene2.Add(p.Value.Where(x => x.ClanId == o.ClanId).First()); } } double slicnost = GetSlicnost(zajednickeOcjene1, zajednickeOcjene2); if (slicnost > 0.5) { var entityTemp = _context.Proizvod.Find(p.Key); OnlineGym_Model.Proizvod ProizvodTemp = _mapper.Map <OnlineGym_Model.Proizvod>(entityTemp); preporuceniProizvodi.Add(ProizvodTemp); } zajednickeOcjene1.Clear(); zajednickeOcjene2.Clear(); } return(preporuceniProizvodi); } else { List <OnlineGym_Model.Proizvod> preporuceniProizvodii = new List <OnlineGym_Model.Proizvod>(); var query = _context.Set <Database.Proizvod>().AsQueryable(); query = query.Where(x => x.ProizvodId != proizvod.ProizvodId && x.ProsjecnaOcjena > 4); var list = query.ToList(); foreach (Database.Proizvod item in list) { OnlineGym_Model.Proizvod temp = _mapper.Map <OnlineGym_Model.Proizvod>(item); preporuceniProizvodii.Add(temp); } return(preporuceniProizvodii); } }