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); }
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()); }
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); }
public virtual bool AddBookToCart(Guid cartID, CartXBookModel cartXBook) { var book = _BookDAC.AddBookToCart(cartID, cartXBook); return(book); }