public HubPageViewModel.ProfileInfo GetProfileData(int id, int userid)
        {
            HubPageViewModel.ProfileInfo profil = db.Korisnics.Where(x => x.Id == id).Select(z => new HubPageViewModel.ProfileInfo
            {
                KorisnikID  = z.Id,
                username    = z.username,
                Joined      = z.created_at,
                Grad        = z.Grad,
                FriendCount = z.Prijateljstvos.Count(),
                ImePrezime  = z.Ime + " " + z.Prezime,
                Email       = z.Email
            }).FirstOrDefault();

            int br = db.Prijateljstvos.Where(x => x.Korisnik1ID == userid && x.Korisnik2ID == id).Count();

            profil.IsFriend = br > 0;

            List <HubPageViewModel.ShelvesInfo.ShelfInfo> police = db.Policas.Where(x => x.KorisnikID == id).Select(p => new HubPageViewModel.ShelvesInfo.ShelfInfo
            {
                BookCount  = p.Knjigas.Count(),
                KorisnikID = p.KorisnikID,
                Naziv      = p.Naziv,
                ShelfID    = p.Id
            }).ToList();

            HubPageViewModel.ShelvesInfo.ShelfInfo polica = police.Where(x => x.Naziv == "Currently Reading").FirstOrDefault();
            if (polica != null)
            {
                Polica        gk   = db.Policas.Include("Knjigas").Where(c => c.Id == polica.ShelfID).FirstOrDefault();
                List <Knjiga> curb = gk.Knjigas;
                if (curb != null)
                {
                    profil.CurrentlyReadingBooks = new List <HubPageViewModel.ProfileInfo.BookInfo>();
                    profil.CurrentlyReadingBooks = curb.Select(k => new HubPageViewModel.ProfileInfo.BookInfo
                    {
                        Autor    = "Neki Autor",
                        KnjigaID = k.Id,
                        Naslov   = k.Naslov,
                        Slika    = k.Slika
                    }).ToList();
                }
                else
                {
                    profil.CurrentlyReadingBooks = null;
                }
            }
            else
            {
                profil.CurrentlyReadingBooks = null;
            }

            return(profil);
        }
 private void GridView_ItemClick(object sender, ItemClickEventArgs e)
 {
     HubPageViewModel.ShelvesInfo.ShelfInfo p = (HubPageViewModel.ShelvesInfo.ShelfInfo)e.ClickedItem;
     if (p.BookCount > 0)
     {
         Frame.Navigate(typeof(PolicaDetalji), p.ShelfID);
     }
     else
     {
         MessageDialog msg = new MessageDialog("Prazna polica!");
         msg.ShowAsync();
     }
 }
        private void ListView_ItemClick(object sender, ItemClickEventArgs e)
        {
            HubPageViewModel.ShelvesInfo.ShelfInfo item = (HubPageViewModel.ShelvesInfo.ShelfInfo)e.ClickedItem;

            HttpResponseMessage response = btnService.GetResponse(item.ShelfID + "/" + KnjigaID);

            if (response.IsSuccessStatusCode)
            {
                MessageDialog msg = new MessageDialog("Knjiga uspješno dodana u policu!");
                msg.ShowAsync();
            }
            Hide();
        }
        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);
        }