public async Task AddToCart(long userId, long productId, int quantity) { var basketCard = context.BasketCards.FirstOrDefault(x => x.Customer.PersonId == userId && x.IsActive); if (basketCard == null) { basketCard = new BasketCard { Customer = context.Customers.FirstOrDefault(p => p.PersonId == userId) }; context.BasketCards.Add(basketCard); } var basketCardItem = basketCard.BasketCardItems.FirstOrDefault(x => x.Product.ProductID == productId); if (basketCardItem == null) { basketCardItem = new BasketCardItem { BasketCard = basketCard, Product = context.Products.FirstOrDefault(p => p.ProductID == productId), Quantity = quantity }; basketCard.BasketCardItems.Add(basketCardItem); } else { basketCardItem.Quantity = quantity; } await context.SaveChangesAsync(); }
public async Task <IActionResult> PutBasketCardItem([FromRoute] int id, [FromBody] BasketCardItem basketCardItem) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != basketCardItem.BasketCardItemID) { return(BadRequest()); } _context.Entry(basketCardItem).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BasketCardItemExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PostBasketCardItem([FromBody] BasketCardItem basketCardItem) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.BasketCardsItem.Add(basketCardItem); await _context.SaveChangesAsync(); return(CreatedAtAction("GetBasketCardItem", new { id = basketCardItem.BasketCardItemID }, basketCardItem)); }