private void PopulateAddressFormData()

in src/Modules/SimplCommerce.Module.Core/Areas/Core/Controllers/UserAddressController.cs [250:299]


        private void PopulateAddressFormData(UserAddressFormViewModel model)
        {
            var shippableCountries = _countryRepository.Query()
                .Where(x => x.IsShippingEnabled)
                .OrderBy(x => x.Name);

            if (!shippableCountries.Any())
            {
                return;
            }

            model.Countries = shippableCountries
                .Select(x => new SelectListItem
                {
                    Text = x.Name,
                    Value = x.Id.ToString()
                }).ToList();

            var selectedShipableCountryId = !string.IsNullOrEmpty(model.CountryId) ? model.CountryId : model.Countries.First().Value;
            var selectedCountry = shippableCountries.FirstOrDefault(c => c.Id == selectedShipableCountryId);
            if (selectedCountry != null)
            {
                model.DisplayCity = selectedCountry.IsCityEnabled;
                model.DisplayDistrict = selectedCountry.IsDistrictEnabled;
                model.DisplayZipCode = selectedCountry.IsZipCodeEnabled;
            }

            model.StateOrProvinces = _stateOrProvinceRepository
                .Query()
                .Where(x => x.CountryId == selectedShipableCountryId)
                .OrderBy(x => x.Name)
                .Select(x => new SelectListItem
                {
                    Text = x.Name,
                    Value = x.Id.ToString()
                }).ToList();

            if (model.StateOrProvinceId > 0)
            {
                model.Districts = _districtRepository
                    .Query()
                    .Where(x => x.StateOrProvinceId == model.StateOrProvinceId)
                    .OrderBy(x => x.Name)
                    .Select(x => new SelectListItem
                    {
                        Text = x.Name,
                        Value = x.Id.ToString()
                    }).ToList();
            }
        }