public HubPageViewModel GetHubData(int userid) { HubPageViewModel defaultViewModel = new HubPageViewModel(); defaultViewModel.BookShelves = new HubPageViewModel.ShelvesInfo(); defaultViewModel.BookShelves.Shelves = db.Policas.Where(x => x.KorisnikID == userid).Select(y => new HubPageViewModel.ShelvesInfo.ShelfInfo { KorisnikID = y.KorisnikID, Naziv = y.Naziv, ShelfID = y.Id, BookCount = y.Knjigas.Count() }).ToList(); defaultViewModel.Profile = new HubPageViewModel.ProfileInfo(); defaultViewModel.Profile = db.Korisnics.Include("Prijateljstvos").Where(x => x.Id == userid).Select(z => new HubPageViewModel.ProfileInfo { KorisnikID = z.Id, username = z.username, Joined = z.created_at, Grad = z.Grad, FriendCount = db.Prijateljstvos.Where(p => p.Korisnik1ID == userid).Count(), Email = z.Email, ImePrezime = z.Ime + " " + z.Prezime }).FirstOrDefault(); HubPageViewModel.ShelvesInfo.ShelfInfo polica = defaultViewModel.BookShelves.Shelves.Where(x => x.Naziv == "Currently Reading").FirstOrDefault(); if (polica != null) { Polica p = db.Policas.Include("Knjigas").Where(c => c.Id == polica.ShelfID).FirstOrDefault(); List <Knjiga> curb = p.Knjigas; if (curb != null) { defaultViewModel.Profile.CurrentlyReadingBooks = new List <HubPageViewModel.ProfileInfo.BookInfo>(); defaultViewModel.Profile.CurrentlyReadingBooks = curb.Select(k => new HubPageViewModel.ProfileInfo.BookInfo { Autor = db.Autors.Find(k.AutorId).Ime + " " + db.Autors.Find(k.AutorId).Prezime, KnjigaID = k.Id, Naslov = k.Naslov, Slika = k.Slika }).ToList(); } else { defaultViewModel.Profile.CurrentlyReadingBooks = null; } } Helpers.Preporuka preporuka = new Helpers.Preporuka(); List <KnjigaVM> preporuceneKnjige = preporuka.GetPreporuceneKnjige(userid); defaultViewModel.Recommendations = new HubPageViewModel.RecommendationsInfo(); defaultViewModel.Recommendations.RecommendedBooks = preporuceneKnjige.Select(k => new HubPageViewModel.RecommendationsInfo.BookInfo { Autor = k.NazivAutora, KnjigaID = k.Id, Naslov = k.Naslov, Slika = k.Slika }).ToList(); foreach (var k in defaultViewModel.Recommendations.RecommendedBooks) { Knjiga kk = db.Knjigas.Include("Ocjenas").Where(x => x.Id == k.KnjigaID).FirstOrDefault(); k.ProsjecnaOcjena = (float)kk.Ocjenas.Average(a => a.OcjenaIznos); } List <int> ListaPrijatelja = db.Prijateljstvos.Where(x => x.Korisnik1ID == userid).Select(s => s.Korisnik2ID).ToList(); defaultViewModel.Feed = new HubPageViewModel.FeedInfo(); defaultViewModel.Feed.FeedItems = db.TimelineItems.OrderByDescending(r => r.EventDate).Where(g => ListaPrijatelja.Contains(g.KorisnikID)).Select(t => new HubPageViewModel.FeedInfo.FeedItemInfo { EventDescription = t.Korisnik.username + t.EventDescription + " " + t.Knjiga.Ocjenas.Where(o => o.KnjigaID == t.KnjigaID && o.KorisnikID == t.KorisnikID).FirstOrDefault().OcjenaIznos, FeedItemID = t.Id, Slika = t.Knjiga.Slika, EventInformation = t.Knjiga.Naslov, IsOcjena = t.IsOcjena, Autor = t.EventDate.ToString(), KnjigaID = t.KnjigaID, OcjenaID = t.Knjiga.Ocjenas.Where(o => o.KnjigaID == t.KnjigaID && o.KorisnikID == t.KorisnikID).FirstOrDefault().Id }).ToList(); return(defaultViewModel); }
public List <Knjiga> GetSlicneProizvode(int id) { Helpers.Preporuka preporuka = new Helpers.Preporuka(); return(preporuka.GetSlicneKnjige(id)); }