Пример #1
0
        public async Task <IActionResult> Index()
        {
            var userRepo  = (Repository.IUser) this._services.GetService(typeof(Repository.IUser));
            var orderRepo = (Repository.IOrder) this._services.GetService(typeof(Repository.IOrder));

            var userId = Guid.Parse(HttpContext.User.FindFirst(claim => claim.Type == Auth.Claim.UserId).Value);

            var user = await userRepo.GetUserById(userId);

            var location = await userRepo.GetDefaultLocation(user);

            var currentOrder = await userRepo.GetOpenOrder(user, location);

            var orderLines = orderRepo.GetOrderLines(userId, currentOrder.OrderId);

            var model = new Model.View.Checkout();

            foreach (var item in orderLines)
            {
                var checkoutItem = new Model.Input.CartItem();
                checkoutItem.Id        = item.Product.ProductId;
                checkoutItem.Name      = item.Product.Name;
                checkoutItem.UnitPrice = item.Product.Price;
                checkoutItem.Quantity  = item.Quantity;
                checkoutItem.ImageName = item.Product.ImageName;
                model.Items.Add(checkoutItem);
            }

            return(View("Checkout", model));
        }
Пример #2
0
        public async Task <IActionResult> Index()
        {
            var locationRepo = (Repository.ILocation) this._services.GetService(typeof(Repository.ILocation));
            var userRepo     = (Repository.IUser) this._services.GetService(typeof(Repository.IUser));
            var orderRepo    = (Repository.IOrder) this._services.GetService(typeof(Repository.IOrder));
            var productRepo  = (Repository.IProduct) this._services.GetService(typeof(Repository.IProduct));

            var userId = Guid.Parse(HttpContext.User.FindFirst(claim => claim.Type == Auth.Claim.UserId).Value);

            var user = await userRepo.GetUserById(userId);

            var location = await userRepo.GetDefaultLocation(user);

            var currentOrder = await userRepo.GetOpenOrder(user, location);

            var orderLines = orderRepo.GetOrderLines(userId, currentOrder.OrderId);

            var model = new Model.Input.Cart();

            var allStock = locationRepo.GetStock(currentOrder.OrderId);

            foreach (var item in orderLines)
            {
                var stock = allStock
                            .Where(i => i.Item1 == item.Product.ProductId)
                            .Select(s => s.Item2)
                            .FirstOrDefault();

                var cartItem = new Model.Input.CartItem();
                cartItem.Id        = item.Product.ProductId;
                cartItem.Name      = item.Product.Name;
                cartItem.UnitPrice = item.Product.Price;
                cartItem.Quantity  = item.Quantity;
                cartItem.ImageName = item.Product.ImageName;
                cartItem.Stock     = stock;
                model.Items.Add(cartItem);
            }

            return(View("Cart", model));
        }