Skip to content

Commit

Permalink
#7152 Refactoring of shipment details page to use a standard way to d…
Browse files Browse the repository at this point in the history
…isplay addresses
  • Loading branch information
skoshelev committed May 21, 2024
1 parent ebbb093 commit 5da489d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 21 deletions.
12 changes: 8 additions & 4 deletions src/Libraries/Nop.Services/Common/AddressService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -333,28 +333,32 @@ public virtual Address CloneAddress(Address address)

var format = await _localizationService.GetResourceAsync("Address.LineFormat", languageId, true, "{0}{1}{2}{3}{4}{5}{6}");
var indexArray = Regex.Matches(format, @"{\d}").Select(x => Convert.ToInt32(Regex.Match(x.Value, @"\d").Value)).ToArray();
var country = await _countryService.GetCountryByAddressAsync(address);
var countryName = country != null ? await _localizationService.GetLocalizedAsync(country, x => x.Name, languageId) : string.Empty;
var stateProvince = await _stateProvinceService.GetStateProvinceByAddressAsync(address);
var stateProvinceName = stateProvince != null ? await _localizationService.GetLocalizedAsync(stateProvince, x => x.Name, languageId) : string.Empty;

var indexItem = 0;
foreach (var item in indexArray)
{
switch ((AddressField)item)
{
case AddressField.Country:
var country = await _countryService.GetCountryByAddressAsync(address);
var countryName = country != null ? await _localizationService.GetLocalizedAsync(country, x => x.Name, languageId) : string.Empty;

if (_addressSettings.CountryEnabled && !string.IsNullOrWhiteSpace(countryName))
fieldsList[indexItem] = new KeyValuePair<AddressField, string>(AddressField.Country, htmlEncode ? WebUtility.HtmlEncode(countryName) : countryName);
else
fieldsList[indexItem] = new KeyValuePair<AddressField, string>(AddressField.Country, string.Empty);

break;

case AddressField.StateProvince:
var stateProvince = await _stateProvinceService.GetStateProvinceByAddressAsync(address);
var stateProvinceName = stateProvince != null ? await _localizationService.GetLocalizedAsync(stateProvince, x => x.Name, languageId) : string.Empty;

if (_addressSettings.StateProvinceEnabled && !string.IsNullOrWhiteSpace(stateProvinceName))
fieldsList[indexItem] = new KeyValuePair<AddressField, string>(AddressField.StateProvince, htmlEncode ? WebUtility.HtmlEncode(stateProvinceName) : stateProvinceName);
else
fieldsList[indexItem] = new KeyValuePair<AddressField, string>(AddressField.StateProvince, string.Empty);

break;

case AddressField.City:
Expand Down
22 changes: 5 additions & 17 deletions src/Presentation/Nop.Web/Views/Order/ShipmentDetails.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -107,24 +107,12 @@
@Model.Order.ShippingAddress.Company
</li>
}
<li class="address1">
@Model.Order.ShippingAddress.Address1
</li>
@if (!string.IsNullOrEmpty(Model.Order.ShippingAddress.Address2))
@foreach (var item in Model.Order.ShippingAddress.AddressFields)
{
<li class="address2">
@Model.Order.ShippingAddress.Address2
</li>
}
<li class="city-state-zip">
@Model.Order.ShippingAddress.City, @Model.Order.ShippingAddress.County, @Model.Order.ShippingAddress.StateProvinceName
@Model.Order.ShippingAddress.ZipPostalCode
</li>
@if (!string.IsNullOrEmpty(Model.Order.ShippingAddress.CountryName))
{
<li class="country">
@Model.Order.ShippingAddress.CountryName
</li>
@if (!string.IsNullOrEmpty(item.Value))
{
<li class=@item.Key.ToString().ToLower()>@item.Value</li>
}
}
</ul>
}
Expand Down

0 comments on commit 5da489d

Please sign in to comment.