Example #1
0
        public virtual CartModel GetCartByUserID(Guid userID)
        {
            var result = new CartModel();

            result.BookList = new List <CartXBookModel>();
            result.Books    = new List <BookModel>();

            using (TitanbraryContainer ctx = new TitanbraryContainer())
            {
                var cart = ctx.Carts.Where(c => c.UserID == userID && c.Completed == false).FirstOrDefault();

                if (cart == null)
                {
                    return(null);
                }

                result.CartID       = cart.CartID;
                result.UserID       = cart.UserID;
                result.CreatedDate  = cart.CreatedDate;
                result.ModifiedDate = cart.ModifiedDate;

                foreach (var book in cart.CartXBooks)
                {
                    var books       = new CartXBookModel();
                    var booksDetail = new BookModel();
                    books.BookID   = book.BookID;
                    books.Quantity = book.Quantity;
                    result.BookList.Add(books);
                    var getBook = ctx.Books.Where(b => b.BookID == book.BookID).FirstOrDefault();
                    booksDetail.BookID      = getBook.BookID;
                    booksDetail.Author      = getBook.Author;
                    booksDetail.Publisher   = getBook.Publisher;
                    booksDetail.Edition     = getBook.Edition;
                    booksDetail.Active      = getBook.Active;
                    booksDetail.Description = getBook.Description;
                    booksDetail.ISBN        = getBook.ISBN;
                    booksDetail.Keywords    = getBook.Keywords;
                    booksDetail.Language    = getBook.Language;
                    booksDetail.Name        = getBook.Name;
                    booksDetail.Quantity    = getBook.Quantity;
                    booksDetail.Year        = getBook.Year;
                    booksDetail.Picture     = getBook.Picture;

                    foreach (var genre in getBook.Genres)
                    {
                        var g = ctx.Genres.Where(gr => gr.GenreID == genre.GenreID).FirstOrDefault();
                        booksDetail.GenreID = g.GenreID;
                    }
                    result.Books.Add(booksDetail);
                }
            }
            return(result);
        }
Example #2
0
        public async Task <IHttpActionResult> UpdateBook([FromBody] BookModel book)
        {
            bool isQuantityChanged = false;
            var  list = _Book.UpdateBook(book, ref isQuantityChanged);

            if (isQuantityChanged && _Book.IsBookInWaitlist(book.BookID))
            {
                var userID = _Book.GetUserInWaitlist(book.BookID);

                CartXBookModel cartXBookModel = new CartXBookModel();
                cartXBookModel.BookID   = book.BookID;
                cartXBookModel.Quantity = 1;

                CartModel cart = _Cart.GetCartByUserID(userID);
                if (cart != null)
                {
                    _Book.AddBookToCart(cart.CartID, cartXBookModel);
                }
                else
                {
                    List <CartXBookModel> cartXBookModelList = new List <CartXBookModel>();
                    cartXBookModelList.Add(cartXBookModel);
                    _Cart.CreateCart(new CartModel
                    {
                        UserID       = userID,
                        CartID       = new Guid(),
                        CreatedDate  = DateTime.Now,
                        ModifiedDate = DateTime.Now,
                        BookList     = cartXBookModelList
                    });
                }

                var currentUser = await _UserManager.FindByIdAsync(userID.ToString());

                var user = _Account.GetUserInfo(currentUser);
                OutWaitlistEmail(user, book);
            }

            if (list)
            {
                return(Ok());
            }
            return(BadRequest());
        }
Example #3
0
 public virtual bool AddBookToCart(Guid cartID, CartXBookModel cartXBook)
 {
     using (TitanbraryContainer ctx = new TitanbraryContainer())
     {
         try
         {
             ctx.CartXBooks.Add(new CartXBook
             {
                 BookID   = cartXBook.BookID,
                 CartID   = cartID,
                 Quantity = cartXBook.Quantity
             });
             ctx.SaveChanges();
         }
         catch (Exception ex)
         {
             return(false);
         }
     }
     return(true);
 }
Example #4
0
        public virtual bool AddBookToCart(Guid cartID, CartXBookModel cartXBook)
        {
            var book = _BookDAC.AddBookToCart(cartID, cartXBook);

            return(book);
        }