public async Task <IActionResult> Details(int id) { HttpContext.Session.SetInt32("Index", 0); var bookFromDb = await _db.Books.Where(u => u.Id == id).Include(u => u.Publisher).Include(u => u.Author).FirstOrDefaultAsync(); var claimIdentity = (ClaimsIdentity)User.Identity; if (claimIdentity.Claims.Count() > 0) { var claimUser = claimIdentity.FindFirst(ClaimTypes.NameIdentifier); var user = await _db.ApplicationUsers.Where(u => u.Id == claimUser.Value).FirstOrDefaultAsync(); var chaptersPurchased = await(from a in _db.Purchaseds join b in _db.Chapters on a.ChapterId equals b.Id where a.ApplicationUserId == user.Id select b).ToListAsync(); foreach (var chapter in chaptersPurchased) { if (chapter.BookId == id) { BooksVM.AlreadyBought = true; } } var readingListOfUser = await _db.ReadingLists.Where(u => u.ApplicationUserId == user.Id).ToListAsync(); foreach (var readingList in readingListOfUser) { ReadingListViewModel readingListViewModel = new ReadingListViewModel(); readingListViewModel.ReadingList = readingList; var bookAlreadyInList = await _db.BookInLists.Where(u => u.BookId == id && u.ReadingListId == readingList.Id).FirstOrDefaultAsync(); if (bookAlreadyInList != null) { readingListViewModel.AlreadyIn = true; } else { readingListViewModel.AlreadyIn = false; } BooksVM.ReadingListsVM.Add(readingListViewModel); } } var chapterOfBook = await _db.Chapters.Where(u => u.BookId == id && u.Approved == true).ToListAsync(); var reviewOfBook = await _db.Reviews.Where(u => u.BookId == id).Include(u => u.ApplicationUser).ToListAsync(); var commentOfBook = await _db.Comments.Where(u => u.BookId == id).Include(u => u.ApplicationUser).ToListAsync(); var authorOfBook = await _db.Authors.Where(u => u.Id == bookFromDb.AuthorId).Include(u => u.Country).FirstOrDefaultAsync(); BooksVM.Chapters = chapterOfBook; BooksVM.Book = bookFromDb; BooksVM.Reviews = reviewOfBook; BooksVM.Comments = commentOfBook; BooksVM.Author = authorOfBook; return(View(BooksVM)); }
public ReadingListsController(ApplicationDbContext context) { _context = context; ReadingListsVM = new ReadingListViewModel() { Books = new List <Book>(), ReadingList = new ReadingList(), Error = null }; }
public async Task <IActionResult> ReadingWishListAsync() { IdentityUser user = await _userManager.GetUserAsync(User); ReadingListViewModel readingListViewModel = new ReadingListViewModel(); readingListViewModel.Books = _context.UsersBooks.Where(p => p.User == user).Where(b => b.HasRead == false); return(View("ReadingWishList", readingListViewModel)); }
// GET: ReadingList public async Task <ActionResult> Index() { ReadingListViewModel readingListContent = new ReadingListViewModel(); readingListContent.LibraryBooks = await ReadingListRepository <Recommendation> .GetBooks(d => d.type == "recommendation"); ReadingListRepository <Book> .Initialize(); readingListContent.MyBooks = (IEnumerable <Book>) await ReadingListRepository <Book> .GetBooksForUser(b => b.reader == Settings.readerName); return(View(readingListContent)); }
// GET: ReadingList public async Task <ActionResult> Index() { ReadingListViewModel readingListContent = new ReadingListViewModel(); //get recommendations HttpHelper recommedData = new HttpHelper("api/Books/Recommendations"); String recommendDataResponse = await recommedData.GetResponse(); readingListContent.LibraryBooks = JsonConvert.DeserializeObject <IEnumerable <Recommendation> >(recommendDataResponse); //get user books HttpHelper userData = new HttpHelper("api/Books/user"); String userDataResponse = await userData.GetResponse(); readingListContent.MyBooks = JsonConvert.DeserializeObject <IEnumerable <Book> >(userDataResponse); return(View(readingListContent)); }
public MainPage() { InitializeComponent(); //MainCarouselView.ItemsSource = new List<ReadingList> //{ // new ReadingList { AccountId = "010101", Address="Sta. Rosa", Id=1, MeterId="A.R. 5000121", Name="Jeandee Mae V. Santos", Route="1", BackgroundColor = "#0288D1" }, // new ReadingList { AccountId = "010102", Address="Sta. Rosa", Id=1, MeterId="A.R. 5000122", Name="Keu Llin", Route="2", BackgroundColor = "#E65100" }, // new ReadingList { AccountId = "010103", Address="Sta. Rosa", Id=1, MeterId="A.R. 5000123", Name="Testing Only", Route="3", BackgroundColor = "#0288D1" } //}; BindingContext = new ReadingListViewModel(); _menuItemsView = new[] { HomeIcon, HomeLabel, (View)ReportIcon, ReportLabel, DownloadIcon, DownloadLabel, UploadIcon, UploadLabel, SettingsIcon, SettingsLabel }; MainCarouselView.Position = selectedIndex; header.BackgroundColor = Color.FromHex("#0288D1"); MainCarouselView.PositionSelected += (object sender, SelectedPositionChangedEventArgs e) => { selectedIndex = Convert.ToInt32(e.SelectedPosition.ToString()); }; MainCarouselView.ItemSelected += (object sender, SelectedItemChangedEventArgs e) => { //var item = e.SelectedItem as ReadingList; var vm = BindingContext as ReadingListViewModel; var item = e.SelectedItem as ReadingList; header.BackgroundColor = Color.FromHex(item.BackgroundColor); bottom.BackgroundColor = Color.FromHex(item.BackgroundColor); //this.DisplayAlert("Event fired", "SelectedIndex:" + "\t" + selectedIndex + "\n" + "SelectedItem:" + "\t" + item.Name, "Done"); }; }
public async Task <IActionResult> Details(int id) { List <int> booksSeen = HttpContext.Session.Get <List <int> >("BookSeenSession"); if (booksSeen == null) { booksSeen = new List <int>(); } else { foreach (var item in booksSeen) { BooksVM.BooksSeen.Add(await _db.Books.Where(u => u.Id == item).FirstOrDefaultAsync()); } } var bookSeen = await _db.Books.Where(u => u.Id == id).FirstOrDefaultAsync(); if (!booksSeen.Contains(bookSeen.Id)) { booksSeen.Add(bookSeen.Id); } HttpContext.Session.Set("BookSeenSession", booksSeen); var bookFromDb = await _db.Books.Where(u => u.Id == id).Include(u => u.Publisher).Include(u => u.Author).FirstOrDefaultAsync(); bookFromDb.Accesscount++; var claimIdentity = (ClaimsIdentity)User.Identity; if (claimIdentity.Claims.Count() > 0) { var claimUser = claimIdentity.FindFirst(ClaimTypes.NameIdentifier); var user = await _db.ApplicationUsers.Where(u => u.Id == claimUser.Value).FirstOrDefaultAsync(); var chaptersPurchased = await(from a in _db.Purchaseds join b in _db.Chapters on a.ChapterId equals b.Id where a.ApplicationUserId == user.Id select b).ToListAsync(); foreach (var chapter in chaptersPurchased) { if (chapter.BookId == id) { BooksVM.AlreadyBought++; } } var readingListOfUser = await _db.ReadingLists.Where(u => u.ApplicationUserId == user.Id).ToListAsync(); foreach (var readingList in readingListOfUser) { ReadingListViewModel readingListViewModel = new ReadingListViewModel(); readingListViewModel.ReadingList = readingList; var bookAlreadyInList = await _db.BookInLists.Where(u => u.BookId == id && u.ReadingListId == readingList.Id).FirstOrDefaultAsync(); if (bookAlreadyInList != null) { readingListViewModel.AlreadyIn = true; } else { readingListViewModel.AlreadyIn = false; } BooksVM.ReadingListsVM.Add(readingListViewModel); } } var chapterOfBook = await _db.Chapters.Where(u => u.BookId == id && u.Approved == true).ToListAsync(); var reviewOfBook = await _db.Reviews.Where(u => u.BookId == id).Include(u => u.ApplicationUser).ToListAsync(); var commentOfBook = await _db.Comments.Where(u => u.BookId == id).Include(u => u.ApplicationUser).OrderByDescending(u => u.Date).ToListAsync(); var authorOfBook = await _db.Authors.Where(u => u.Id == bookFromDb.AuthorId).Include(u => u.Country).FirstOrDefaultAsync(); if (reviewOfBook.Count > 0) { BooksVM.Rating = (int)(reviewOfBook.Sum(u => u.Star) / reviewOfBook.Count); } BooksVM.Chapters = chapterOfBook; BooksVM.Book = bookFromDb; BooksVM.Reviews = reviewOfBook; BooksVM.Comments = commentOfBook; BooksVM.Author = authorOfBook; await _db.SaveChangesAsync(); return(View(BooksVM)); }
public ReadingListPage() { InitializeComponent(); BindingContext = viewModel = new ReadingListViewModel(); }