public async Task <CheckoutViewModel> AddressSelected(AddressSelectedViewModel model)
        {
            var cart = await _cartService.GetFromCache(_currentContext.ClientId);

            AddressSelectedCommand command = new AddressSelectedCommand(cart.Version)
            {
                CartId     = cart.Id,
                DistrictId = model.DistrictId,
                ProvinceId = model.ProvinceId,
                StreetId   = model.StreetId,
                WardId     = model.WardId,
                ShardId    = cart.ShardId
            };
            CommandResult result = await _cartService.AddressSelected(command);

            bool isLogin = await _currentContext.IsAuthenticated();

            CheckoutViewModel modelResponse = new CheckoutViewModel(await InitPage())
            {
                IsLogin  = isLogin,
                ClientId = _currentContext.ClientId
            };

            if (result.IsSucess)
            {
                cart = await _cartService.GetFromCache(_currentContext.ClientId);

                if (cart != null)
                {
                    modelResponse.CheckoutItems = cart.CartItemFulls.Select(p => p.ToCheckout()).ToArray();
                }
            }
            else
            {
                modelResponse.AddMessage(result.ResourceName);
            }
            return(modelResponse);
        }
Esempio n. 2
0
        public async Task <IActionResult> AddressSelected(AddressSelectedViewModel model)
        {
            var response = await _checkoutAppService.AddressSelected(model);

            return(Json(response));
        }