All checks were successful
Publish NuGet Packages / build-and-publish (push) Successful in 29s
68 lines
2.3 KiB
C#
68 lines
2.3 KiB
C#
using Svrnty.GeoManagement.Abstractions.Abstractions;
|
|
using Svrnty.GeoManagement.Abstractions.Models;
|
|
|
|
namespace Svrnty.GeoManagement.Abstractions;
|
|
|
|
public static class ServiceCollectionExtensions
|
|
{
|
|
public static void To(this IAddress address, IAddress toAddress)
|
|
{
|
|
toAddress.Line1 = address.Line1;
|
|
toAddress.Line2 = address.Line2;
|
|
toAddress.City = address.City;
|
|
toAddress.PostalCode = address.PostalCode;
|
|
toAddress.CountryCode = address.CountryCode;
|
|
toAddress.Subdivision = address.Subdivision;
|
|
}
|
|
|
|
public static void From(this IAddress address, IAddress fromAddress)
|
|
{
|
|
address.Line1 = fromAddress.Line1;
|
|
address.Line2 = fromAddress.Line2;
|
|
address.City = fromAddress.City;
|
|
address.PostalCode = fromAddress.PostalCode;
|
|
address.CountryCode = fromAddress.CountryCode;
|
|
address.Subdivision = fromAddress.Subdivision;
|
|
}
|
|
|
|
public static string GetFormattedAddress(this IAddress address, FormattedAddressType formatType = FormattedAddressType.Full)
|
|
{
|
|
return formatType switch
|
|
{
|
|
FormattedAddressType.Full => FormatFullOneLine(address),
|
|
FormattedAddressType.Compact => FormatCompactOneLine(address),
|
|
FormattedAddressType.MultiLine => FormatMultiLine(address),
|
|
_ => FormatFullOneLine(address)
|
|
};
|
|
}
|
|
|
|
private static string FormatFullOneLine(IAddress address)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(address.Line2))
|
|
{
|
|
return $"{address.Line1}, {address.City}, {address.Subdivision} {address.PostalCode}, {address.CountryCode}";
|
|
}
|
|
|
|
return $"{address.Line2}, {address.Line1}, {address.City}, {address.Subdivision} {address.PostalCode}, {address.CountryCode}";
|
|
}
|
|
|
|
private static string FormatCompactOneLine(IAddress address)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(address.Line2))
|
|
{
|
|
return $"{address.Line1}, {address.City}, {address.Subdivision}";
|
|
}
|
|
|
|
return $"{address.Line2}, {address.Line1}, {address.City}, {address.Subdivision}";
|
|
}
|
|
|
|
private static string FormatMultiLine(IAddress address)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(address.Line2))
|
|
{
|
|
return $"{address.Line1}\n{address.City}, {address.Subdivision} {address.PostalCode}\n{address.CountryCode}";
|
|
}
|
|
|
|
return $"{address.Line2}, {address.Line1}\n{address.City}, {address.Subdivision} {address.PostalCode}\n{address.CountryCode}";
|
|
}
|
|
} |