/// <summary> /// Copy constructor /// </summary> /// <param name="refAddress"> /// Reference object /// </param> public Address(Address refAddress) { if (refAddress.Street != null) this.Street = refAddress.Street; if (refAddress.City != null) this.City = refAddress.City; if (refAddress.BuildingNum != null) this.BuildingNum = refAddress.BuildingNum; if (refAddress.State != null) this.State = refAddress.State; if (refAddress.Zip != null) this.Zip = refAddress.Zip; if (refAddress.Country != null) this.Country = refAddress.Country; if (refAddress.Description != null) this.Description = refAddress.Description; }
public Address LocationToAdress(Spontaneous.DataModel.Location location) { try { if (location != null && location.RawLocation != null) { log.InfoFormat("[LocationToAdress] Location={0}.", location.ToString()); List<GeocodingResult> geocodResults = ReverseGeocoding(location.Latitude, location.Longitude); Address address = null; foreach (var result in geocodResults) { foreach (var component in result.address_components) { if (component.types.Contains("street_address") || component.types.Contains("route")) { if (address == null) address = new Address() { Street = component.long_name }; else address.Street = component.long_name; } if (component.types.Contains("country")) { if (address == null) address = new Address() { Country = component.long_name }; else address.Country = component.long_name; } if (component.types.Contains("locality")) { if (address == null) address = new Address() { City = component.long_name }; else { if (address.City != null) { if (component.long_name.Length < address.City.Length) address.City = component.long_name; } else address.City = component.long_name; } } if (component.types.Contains("street_number")) { string numberStr = component.long_name; if (numberStr.IndexOf("-") >= 0) { var numberStrList = numberStr.Split(new char[] { '-' }); if(numberStrList.Length > 0) numberStr = numberStrList[0]; } int number; if (int.TryParse(numberStr, out number)) { if (address == null) address = new Address() { BuildingNum = number }; else address.BuildingNum = number; } } } } if (address != null) return address; } return null; } catch (Exception e) { log.ErrorFormat("[LocationToAdress] Exception={0}.", e); return null; } }
public Address CheckAttributes(Address refAddress) { try { bool modifiedFlag = false; if (refAddress != null) { if (this.Street == null && refAddress.Street != null) { this.Street = refAddress.Street; modifiedFlag = true; } if (this.City == null && refAddress.City != null) { this.City = refAddress.City; modifiedFlag = true; } if (this.BuildingNum == 0 && refAddress.BuildingNum != 0) { this.BuildingNum = refAddress.BuildingNum; modifiedFlag = true; } if (this.State == null && refAddress.State != null) { this.State = refAddress.State; modifiedFlag = true; } if (this.Zip == null && refAddress.Zip != null) { this.Zip = refAddress.Zip; modifiedFlag = true; } if (this.Country == null && refAddress.Country != null) { this.Country = refAddress.Country; modifiedFlag = true; } if (this.Description == null && refAddress.Description != null) { this.Description = refAddress.Description; modifiedFlag = true; } if(modifiedFlag) return this; } return null; } catch (Exception e) { return null; } }