コード例 #1
0
        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
            }
                       ));
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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
            }));
        }
コード例 #5
0
        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
            }));
        }