public bool EqualsMd5Code(LocationAddress locationAddress) { if (locationAddress == null) { return(false); } return(string.Equals(GetMd5Code(), locationAddress.GetMd5Code())); }
public bool EqualsCoordinates(LocationAddress locationAddress) { if (locationAddress == null) { return(false); } // ReSharper disable once CompareOfFloatsByEqualityOperator return(HasCoordinates && Locality == locationAddress.Locality && Longitude == locationAddress.Longitude); }
public static LocationAddress Parse(string address) { if (string.IsNullOrEmpty(address)) { return(null); } var result = new LocationAddress(); var formatProvider = GetFormatProvider(); var parse = address.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (var p in parse) { var value = p.Trim(); if (string.IsNullOrEmpty(value)) { continue; } if (!result.Latitude.HasValue && value.Length > 1 && value.StartsWith("(")) { if (double.TryParse(value.Substring(1), NumberStyles.Number, formatProvider, out double latitude)) { result.Latitude = latitude; continue; } } if (!result.Longitude.HasValue && value.Length > 1 && value.EndsWith(")")) { if (double.TryParse(value.Substring(0, value.Length - 1), NumberStyles.Number, formatProvider, out double longitude)) { result.Longitude = longitude; continue; } } if (string.IsNullOrEmpty(result.Locality)) { result.Locality = value; continue; } if (string.IsNullOrEmpty(result.CountryCode)) { result.CountryCode = value.ToUpper(); } } return(result); }