public UserCart() { InitializeComponent(); Title = "Cart"; userCart = App.Locator.Cart; BindingContext = userCart; }
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")); }
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)); }
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)); }
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; } } }
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); }
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)); }