public ActionResult <Response <string> > Post([FromBody] ShoppingCardItem shoppingCardItem) { var token = HttpContext.Request.Headers["Authorization"].FirstOrDefault(); var userToken = token.Split(' ')[1]; var jwttoken = new JwtSecurityToken(userToken); var userId = Int32.Parse(jwttoken.Claims.Where(x => x.Type == ClaimTypes.NameIdentifier).FirstOrDefault()?.Value); if (this.shoppingCartService.UpdateShoppingCart(userId, shoppingCardItem)) { return(Ok( new Response <string>() { Data = "Card is added to your shoppingcart!!", Success = true } )); } return(StatusCode( 409, new Response <string>() { Data = "Somthing went wrong. Most likly this item is not longer in stock.", Success = false } )); }
private void UpdateSales(ShoppingCardItem item) { var sale = (from s in this.__context.Sales where s.PrintId == item.PrintId select s).FirstOrDefault(); if (sale != null) { sale.NumberOfOrders += 1; sale.Quantity += item.Quantity; this.__context.Update(sale); } else { var newSale = new Sales() { NumberOfOrders = 1, PrintId = item.PrintId, Quantity = item.Quantity }; this.__context.Add(newSale); } this.__context.SaveChanges(); }
public bool UpdateShoppingCart(int userId, ShoppingCardItem shoppingCardItem) { if (shoppingCardItem != null) { var shoppingCart = (from ShoppingCard in this.__context.ShoppingCard join ShoppingCardItem in this.__context.ShoppingCardItem on ShoppingCard.Id equals ShoppingCardItem.ShoppingCardId where ShoppingCard.UserId == userId && ShoppingCardItem.PrintId == shoppingCardItem.PrintId select ShoppingCardItem).FirstOrDefault(); var print = this.GetPrint(shoppingCardItem.PrintId); if (shoppingCart != null) { var stock = print.stock - (shoppingCardItem.Quantity - shoppingCart.Quantity); if (shoppingCardItem.Quantity > 0) { shoppingCart.Quantity = shoppingCardItem.Quantity; this.__context.Update(shoppingCart); this.__context.SaveChanges(); return(true); } return(false); } this.__context.Add(shoppingCardItem); this.__context.SaveChanges(); return(true); } return(false); }
public ActionResult <Response <string> > DeleteItem([FromBody] ShoppingCardItem shoppingCardItem) { var token = HttpContext.Request.Headers["Authorization"].FirstOrDefault(); var userToken = token.Split(' ')[1]; var jwttoken = new JwtSecurityToken(userToken); var userId = Int32.Parse(jwttoken.Claims.Where(x => x.Type == ClaimTypes.NameIdentifier).FirstOrDefault()?.Value); var product = ( from ShoppingCard in this.__context.ShoppingCard join ShoppingCardItem in this.__context.ShoppingCardItem on ShoppingCard.Id equals ShoppingCardItem.ShoppingCardId where ShoppingCard.UserId == userId && ShoppingCardItem.PrintId == shoppingCardItem.PrintId select ShoppingCardItem ).FirstOrDefault(); this.__context.Remove(product); this.__context.SaveChanges(); return(Ok(new Response <string>() { Data = "Item is removed from your Shoppingcart!!", Success = true })); }
public ActionResult <Response <List <string> > > OrderCardFromDecks(int deckId) { var token = HttpContext.Request.Headers["Authorization"].FirstOrDefault(); var userToken = token.Split(' ')[1]; var jwttoken = new JwtSecurityToken(userToken); var userId = Int32.Parse(jwttoken.Claims.Where(x => x.Type == ClaimTypes.NameIdentifier).FirstOrDefault()?.Value); var cardsInDeck = ( from cd in this.__context.CardsDeck where cd.DeckId == deckId select cd ).ToList(); var notInStock = new List <string>(); foreach (var card in cardsInDeck) { var print = ( from p in this.__context.Print where p.Id == card.PrintId select p ).FirstOrDefault(); if ((print.stock - 1) > 0) { var shoppingCart = ( from sc in this.__context.ShoppingCard where sc.UserId == userId select sc.Id ).FirstOrDefault(); var AllShoppingCartItems = ( from sci in this.__context.ShoppingCardItem where sci.ShoppingCardId == shoppingCart && sci.PrintId == print.Id select sci ).FirstOrDefault(); ShoppingCardItem shoppingCartItem; if (AllShoppingCartItems == null) { shoppingCartItem = new ShoppingCardItem() { ShoppingCardId = shoppingCart, PrintId = card.PrintId, Quantity = 1 }; this.__context.Add(shoppingCartItem); this.__context.SaveChanges(); } } else { // var cardNotInStock = ( // from cf in this.__context.CardFaces // where cf.card.Id == print.Card.Id // select cf.name // ).FirstOrDefault(); notInStock.Add(print.Id + " is out of stock."); } } return(Ok(new Response <List <string> >() { Data = notInStock, Success = true })); }