Example #1
0
        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));
        }
Example #2
0
 public ReadingListsController(ApplicationDbContext context)
 {
     _context       = context;
     ReadingListsVM = new ReadingListViewModel()
     {
         Books       = new List <Book>(),
         ReadingList = new ReadingList(),
         Error       = null
     };
 }
Example #3
0
        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));
        }
Example #4
0
        // 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));
        }
Example #5
0
        // 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");
            };
        }
Example #7
0
        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));
        }
Example #8
0
 public ReadingListPage()
 {
     InitializeComponent();
     BindingContext = viewModel = new ReadingListViewModel();
 }