コード例 #1
0
 public UserCart()
 {
     InitializeComponent();
     Title          = "Cart";
     userCart       = App.Locator.Cart;
     BindingContext = userCart;
 }
コード例 #2
0
        public async Task <IActionResult> PlaceOrder(UserCartViewModel model)
        {
            var userId    = _userManager.GetUserAsync(User).Result.Id;
            var cartItems = await _cartService.GetUserCartItems(userId);

            await _cartService.PlaceOrder(cartItems, userId);

            return(RedirectToAction(nameof(Index), "Cart"));
        }
コード例 #3
0
        public async Task <IActionResult> Index()
        {
            var userId = _userManager.GetUserAsync(User).Result.Id;
            var model  = new UserCartViewModel()
            {
                UserId = userId
            };

            model.CartItems = _mapper.Map <List <CartItemWithDetailsViewModel> >(await _cartService.GetUserCartItems(userId));
            return(View(model));
        }
コード例 #4
0
        public async Task <IActionResult> Index(
            int?boardGameId,
            List <int>?boardGameIdList,
            int?currentStock,
            bool?changeQuantityError = false)
        {
            var user = await _userManager.FindByEmailAsync(User.Identity.Name);

            string userId = user.Id.ToString();

            IList <UserCart> UserCart = await _db.UserCart
                                        .Where(u => u.ApplicationUserId == userId)
                                        .Include(u => u.ApplicationUser)
                                        .Include(u => u.BoardGame)
                                        .ThenInclude(u => u.Brand)
                                        .ToListAsync();


            IList <BoardGame> boardGames = new List <BoardGame>();

            if (boardGameIdList.Count > 0)
            {
                foreach (var item in boardGameIdList)
                {
                    BoardGame boardGame = await _db.BoardGames
                                          .Include(i => i.InventoryItems.Where(i => i.InStock == true))
                                          .FirstOrDefaultAsync(i => i.ID == item);

                    boardGames.Add(boardGame);
                }
            }


            string ErrorMessage     = "";
            int?   ErrorBoardGameID = 0;

            if (changeQuantityError == true)
            {
                ErrorMessage     = $"Only {currentStock} in stock";
                ErrorBoardGameID = boardGameId;
            }

            UserCartViewModel UserCartViewModel = new UserCartViewModel()
            {
                UserCart         = UserCart,
                ErrorMessage     = ErrorMessage,
                ErrorBoardGameID = ErrorBoardGameID,
                BoardGames       = boardGames
            };

            return(View(UserCartViewModel));
        }
コード例 #5
0
ファイル: Index.cshtml.cs プロジェクト: iammukeshm/eStore
        private async Task SetCartModelAsync()
        {
            if (_signInManager.IsSignedIn(HttpContext.User))
            {
                var result = await _mediator.Send(new GetUserCartQuery()
                {
                    userId = HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)
                });

                if (result.Succeeded)
                {
                    CartModel = result.Data;
                }
                else
                {
                    var data = await _mediator.Send(new CreateCartForUserCommand()
                    {
                        userId = HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)
                    });

                    CartModel = data.Data;
                }
            }
            else
            {
                GetOrSetBasketCookieAndUserName();
                var result = await _mediator.Send(new GetUserCartQuery()
                {
                    userId = _username
                });

                if (result.Succeeded)
                {
                    CartModel = result.Data;
                }
                else
                {
                    var data = await _mediator.Send(new CreateCartForUserCommand()
                    {
                        userId = _username
                    });

                    CartModel = data.Data;
                }
            }
        }
コード例 #6
0
        public async Task <UserCartViewModel> GetAsync()
        {
            UserCartViewModel userCart = null;

            string cartId = Request.Cookies["cart"];

            var cart = string.IsNullOrEmpty(cartId) ? null : await _storeService.GetCart(cartId);

            userCart = new UserCartViewModel()
            {
                Cart        = cart,
                UseIdentity = _useIdentity
            };

            if (User.Identity.IsAuthenticated)
            {
                if (!_useIdentity)
                {
                    userCart.User = new UserViewModel()
                    {
                        Id       = User.Claims.Where(c => c.Type == "http://schemas.microsoft.com/identity/claims/objectidentifier").First().Value,
                        Username = User.Claims.Where(c => c.Type == "name").First().Value,
                    };
                }
                else
                {
                    _userManager = (UserManager <ApplicationUser>)_contextAccessor.HttpContext.RequestServices.GetService(typeof(UserManager <ApplicationUser>));
                    var user = await _userManager.GetUserAsync(User);

                    userCart.User = new UserViewModel()
                    {
                        Id       = user.Id,
                        Username = user.UserName
                    };
                }
            }

            return(userCart);
        }
コード例 #7
0
        public async Task <IActionResult> Cart()
        {
            UserCartViewModel vm;
            var user = await _userManagerService.GetUserAsync(User);

            var addresses = _addressService.Query(a => a.ApplicationUserId == user.Id);

            var addressList = addresses.Select(add => new SelectListItem
            {
                Text  = add.DeliveryAddress,
                Value = add.UserDeliveryAddressId.ToString()
            });

            const string       keyName   = "cartData";
            var                data      = HttpContext.Session.GetString(keyName);
            List <MapCartData> cartDatas = new List <MapCartData>();

            if (string.IsNullOrEmpty(data))
            {
                vm = new UserCartViewModel
                {
                    mapCartDatas = null,
                    Addresses    = addressList
                };
                return(View(vm));
            }
            else
            {
                var cache = HttpContext.Session.GetString(keyName);
                cartDatas = JsonConvert.DeserializeObject <List <MapCartData> >(cache);
            }
            vm = new UserCartViewModel
            {
                mapCartDatas = cartDatas,
                Addresses    = addressList
            };

            return(View(vm));
        }