Exemplo n.º 1
0
        public async Task <ShoppingCartDisplay> GetShoppingCartAsync()
        {
            var userId  = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
            var request = await manager.FindByIdAsync(userId);

            var requestedUser = await manager.FindByNameAsync(request.UserName);

            var shoppingCart = (from i in context.ShoppingCarts
                                where i.UserId.Equals(requestedUser.Id)
                                select i).ToList().First();

            var phones = from i in context.Phones
                         where i.ShoppingCartId == shoppingCart.Id
                         select new PhoneDisplay()
            {
                Brand = i.Brand, Model = i.Model, Price = (i.Price - (i.Price * i.Sale / 100)), Id = i.Id, Sale = i.Sale
            };

            double sum = phones.Sum(b => b.Price);

            var shoppingCartDisplay = new ShoppingCartDisplay()
            {
                TotalPrice = sum, Phones = phones.ToList()
            };

            return(shoppingCartDisplay);
        }
        public IActionResult Get()
        {
            var shoppingcarts = _context.ShoppingCart.ToList();
            List <ShoppingCartDisplay> shoppingCartDisplays = new List <ShoppingCartDisplay>();

            if (shoppingcarts == null)
            {
                return(NotFound());
            }

            // foreach is taking data from shopping cart and putting in shopping cart display for proper formatting in JSON
            foreach (var shoppingCart in shoppingcarts)
            {
                ShoppingCart shoppingcart = _context.ShoppingCart
                                            .Include(s => s.OrderedProducts)
                                            .ThenInclude(p => p.Product)
                                            .Single(g => g.ShoppingCartId == shoppingCart.ShoppingCartId);

                ShoppingCartDisplay shoppingcartdisplay = new ShoppingCartDisplay();
                shoppingcartdisplay.CustomerId     = shoppingcart.CustomerId;
                shoppingcartdisplay.DateCreated    = shoppingcart.DateCreated;
                shoppingcartdisplay.DateOrdered    = shoppingcart.DateOrdered;
                shoppingcartdisplay.PaymentTypeId  = shoppingcart.PaymentTypeId;
                shoppingcartdisplay.ShoppingCartId = shoppingcart.ShoppingCartId;
                shoppingcartdisplay.Products       = new List <Product>();

                foreach (OrderedProduct op in shoppingcart.OrderedProducts)
                {
                    shoppingcartdisplay.Products.Add(_context.Product.Single(p => p.ProductId == op.ProductId));
                }

                shoppingCartDisplays.Add(shoppingcartdisplay);
            }
            return(Ok(shoppingCartDisplays));
        }
        public IActionResult Get(int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                ShoppingCart shoppingcart = _context.ShoppingCart
                                            .Include(s => s.OrderedProducts)
                                            .ThenInclude(p => p.Product)
                                            .Single(g => g.ShoppingCartId == id);

                ShoppingCartDisplay shoppingcartdisplay = new ShoppingCartDisplay();
                shoppingcartdisplay.CustomerId     = shoppingcart.CustomerId;
                shoppingcartdisplay.DateCreated    = shoppingcart.DateCreated;
                shoppingcartdisplay.DateOrdered    = shoppingcart.DateOrdered;
                shoppingcartdisplay.PaymentTypeId  = shoppingcart.PaymentTypeId;
                shoppingcartdisplay.ShoppingCartId = shoppingcart.ShoppingCartId;
                shoppingcartdisplay.Products       = new List <Product>();

                foreach (OrderedProduct op in shoppingcart.OrderedProducts)
                {
                    shoppingcartdisplay.Products.Add(_context.Product.Single(p => p.ProductId == op.ProductId));
                }

                if (shoppingcart == null)
                {
                    return(NotFound());
                }

                return(Ok(shoppingcartdisplay));
            }
            catch (System.InvalidOperationException ex)
            {
                return(NotFound());
            }
        }