in src/Web/Controllers/BasketController.cs [87:154]
public async Task<IActionResult> Checkout(Dictionary<string, int> items)
{
var basketViewModel = await GetBasketViewModelAsync();
await _basketService.SetQuantities(basketViewModel.Id, items);
var user = await _userManager.GetUserAsync(User);
var sessionId = _contextAccessor.GetSessionId();
if (user == null)
{
//Anonymous user checkout.
return View("CheckoutDetails", new CheckoutDetailsViewModel
{
NumberItems = basketViewModel.Items.Count,
DeviceFingerPrinting = new DeviceFingerPrintingViewModel
{
SessionId = sessionId
}
});
}
// Apply default user settings
var baseCheckoutModel = new CheckoutDetailsViewModel
{
User = new UserViewModel
{
FirstName = user.FirstName,
LastName = user.LastName,
Email = user.Email,
Phone = user.PhoneNumber,
},
ShippingAddress = new AddressViewModel
{
Address1 = user.Address1,
Address2 = user.Address2,
City = user.City,
State = user.State,
ZipCode = user.ZipCode,
CountryRegion = user.CountryRegion,
},
CreditCard = new CreditCardViewModel
{
CardType = user.DefaultCardType,
CardName = user.DefaultCardName,
CardNumber = user.DefaultCardNumber,
ExpirationMonth = user.DefaultExpirationMonth,
ExpirationYear = user.DefaultExpirationYear,
CVV = user.DefaultCVV,
},
BillingAddress = new AddressViewModel
{
Address1 = user.BillingAddress1,
Address2 = user.BillingAddress2,
City = user.BillingCity,
CountryRegion = user.BillingCountryRegion,
State = user.BillingState,
ZipCode = user.BillingZipCode,
},
NumberItems = basketViewModel.Items.Count,
DeviceFingerPrinting = new DeviceFingerPrintingViewModel
{
SessionId = sessionId
}
};
return View("CheckoutDetails", baseCheckoutModel);
}