public static string ToFormattedString <T>(this T value, ITextFormatter <T> formatter) { return(formatter.WriteToString(value)); }
public void Write(IGeoCoordinate value, TextWriter writer) { switch (value.Type) { case GeoCoordinateType.Latitude: // North - South var nsValue = $"{(value.IsNegative ? 'S' : 'N')} {value.Degrees}° {value.Minutes:00}' {_formatter.WriteToString(value.Seconds)}\""; writer.Write(nsValue); break; case GeoCoordinateType.Longitude: // East - West var ewValue = $"{(value.IsNegative ? 'W' : 'E')} {value.Degrees}° {value.Minutes:00}' {_formatter.WriteToString(value.Seconds)}\""; writer.Write(ewValue); break; default: throw new ArgumentOutOfRangeException(); } }