in src/Modules/SimplCommerce.Module.Orders/Areas/Orders/Controllers/CheckoutController.cs [131:179]
private void PopulateShippingForm(DeliveryInformationVm model, User currentUser)
{
model.ExistingShippingAddresses = _userAddressRepository
.Query()
.Where(x => (x.AddressType == AddressType.Shipping) && (x.UserId == currentUser.Id))
.Select(x => new ShippingAddressVm
{
UserAddressId = x.Id,
ContactName = x.Address.ContactName,
Phone = x.Address.Phone,
AddressLine1 = x.Address.AddressLine1,
CityName = x.Address.City,
ZipCode = x.Address.ZipCode,
DistrictName = x.Address.District.Name,
StateOrProvinceName = x.Address.StateOrProvince.Name,
CountryName = x.Address.Country.Name,
IsCityEnabled = x.Address.Country.IsCityEnabled,
IsZipCodeEnabled = x.Address.Country.IsZipCodeEnabled,
IsDistrictEnabled = x.Address.Country.IsDistrictEnabled
}).ToList();
model.ShippingAddressId = currentUser.DefaultShippingAddressId ?? 0;
model.UseShippingAddressAsBillingAddress = true;
model.NewAddressForm.ShipableContries = _countryRepository.Query()
.Where(x => x.IsShippingEnabled)
.OrderBy(x => x.Name)
.Select(x => new SelectListItem
{
Text = x.Name,
Value = x.Id.ToString()
}).ToList();
if (model.NewAddressForm.ShipableContries.Count == 1)
{
var onlyShipableCountryId = model.NewAddressForm.ShipableContries.First().Value;
model.NewAddressForm.StateOrProvinces = _stateOrProvinceRepository
.Query()
.Where(x => x.CountryId == onlyShipableCountryId)
.OrderBy(x => x.Name)
.Select(x => new SelectListItem
{
Text = x.Name,
Value = x.Id.ToString()
}).ToList();
}
}