コード例 #1
0
ファイル: Address.cs プロジェクト: pashkov/Spontaneous
 /// <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;
 }
コード例 #2
0
ファイル: Geocoding.cs プロジェクト: pashkov/Spontaneous
 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;
     }
 }
コード例 #3
0
ファイル: Address.cs プロジェクト: pashkov/Spontaneous
 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;
     }
 }