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);
        }
Exemple #2
0
        public List <Knjiga> GetSlicneProizvode(int id)
        {
            Helpers.Preporuka preporuka = new Helpers.Preporuka();

            return(preporuka.GetSlicneKnjige(id));
        }