예제 #1
0
        public ActionResult AddBookToCart(Cart cart, int id)
        {
            string url = this.Request.UrlReferrer.AbsolutePath;

            CartServic cartService   = new CartServic();
            var        cartViewModel = cartService.GetCartViewModel();

            if (cart.books.Count < 5)
            {
                if (cart.books.Find(b => b.Id == id) == null)
                {
                    using (var dbContext = new MvclibraryEntities())
                    {
                        var books = dbContext.Books.ToList();

                        var book = books.Where(b => b.Id == id).FirstOrDefault();
                        cart.books.Add(book);
                    }
                }
                else
                {
                    TempData["Message"] = "Podana książka znajduje się już w koszyku";
                    TempData["Status"]  = "false";
                }
            }
            else
            {
                TempData["Message"] = "Nie można przekroczyć 5 książek w koszyku";
                TempData["Status"]  = "false";
            }
            cartViewModel.cart = cart;
            return(Redirect(url));
        }
예제 #2
0
        public ActionResult ClearCart(Cart cart)
        {
            string url = this.Request.UrlReferrer.AbsolutePath;

            CartServic cartService   = new CartServic();
            var        cartViewModel = cartService.GetCartViewModel();

            cart.books.Clear();
            cartViewModel.cart = cart;
            return(Redirect(url));
        }
예제 #3
0
        public ActionResult LendBooks(Cart cart)
        {
            string url = this.Request.UrlReferrer.AbsolutePath;

            CartServic cartService   = new CartServic();
            var        cartViewModel = cartService.GetCartViewModel();


            var userEmail = User.Identity.Name;

            using (var dbContext = new MvclibraryEntities())
            {
                var user = dbContext.User.Where(u => u.Email == userEmail).FirstOrDefault();

                var lends = dbContext.Lend.ToList();

                var userLends = lends.Where(l => l.UserId == user.Id && (l.State == "Odebrano" || l.State == "Na półce czytelnika")).ToList();

                if (userLends.Count + cart.books.Count <= user.BorrowLimit)
                {
                    foreach (var item in cart.books)
                    {
                        var lend = new Lend
                        {
                            BookId       = item.Id,
                            UserId       = user.Id,
                            DateBorrowed = DateTime.Now,
                            State        = "Na półce czytelnika",
                            DateReturn   = DateTime.Now.AddDays(14)
                        };
                        item.Status = "Wypożyczona";

                        dbContext.Entry(item).State = EntityState.Modified;
                        dbContext.Lend.Add(lend);
                    }
                    dbContext.SaveChanges();

                    TempData["Message"] = "Książki czekają na Twój odbiór";
                    TempData["Status"]  = "true";
                }
                else
                {
                    TempData["Message"] = "Masz już wypożyczone " + userLends.Count + " ksiązki. Twój limit wynosi " + user.BorrowLimit;
                    TempData["Status"]  = "false";
                }
            }

            cart.books.Clear();
            cartViewModel.cart = cart;
            return(Redirect(url));
        }
예제 #4
0
        public ActionResult RemoveBook(Cart cart, int id)
        {
            string url = this.Request.UrlReferrer.AbsolutePath;

            CartServic cartService   = new CartServic();
            var        cartViewModel = cartService.GetCartViewModel();

            var book = cart.books.FirstOrDefault(b => b.Id == id);

            if (book != null)
            {
                cart.books.Remove(book);
            }

            cartViewModel.cart = cart;
            return(Redirect(url));
        }