public Address(string superscription, ZipCode zipCode, States state, string city, int number, string district, TypeOfAddress typeOfAddress, string reference) { Superscription = superscription; ZipCode = zipCode; State = state; City = city; Number = number; District = district; TypeOfAddress = typeOfAddress; Reference = reference; }
internal static void FromTypeOfAddress(byte octet, out TypeOfAddress typeOfAddress, out NumberingPlan numberingPlan) { typeOfAddress = TypeOfAddress.Unknown; numberingPlan = NumberingPlan.Unknown; if ((octet & 128) == 128) { if (!TestBit(octet, 6) && !TestBit(octet, 5) && !TestBit(octet, 4)) typeOfAddress = TypeOfAddress.Unknown; if (!TestBit(octet, 6) && !TestBit(octet, 5) && TestBit(octet, 4)) typeOfAddress = TypeOfAddress.International; if (!TestBit(octet, 6) && TestBit(octet, 5) && !TestBit(octet, 4)) typeOfAddress = TypeOfAddress.National; if (!TestBit(octet, 6) && TestBit(octet, 5) && TestBit(octet, 4)) typeOfAddress = TypeOfAddress.NetworkSpecific; if (TestBit(octet, 6) && !TestBit(octet, 5) && !TestBit(octet, 4)) typeOfAddress = TypeOfAddress.Subscriber; if (TestBit(octet, 6) && !TestBit(octet, 5) && TestBit(octet, 4)) typeOfAddress = TypeOfAddress.Alphanumeric; if (TestBit(octet, 6) && TestBit(octet, 5) && !TestBit(octet, 4)) typeOfAddress = TypeOfAddress.Abbreviated; if (TestBit(octet, 6) && TestBit(octet, 5) && TestBit(octet, 4)) typeOfAddress = TypeOfAddress.Abbreviated; if (!TestBit(octet, 3) && !TestBit(octet, 2) && !TestBit(octet, 1) && !TestBit(octet, 0)) numberingPlan = NumberingPlan.Unknown; if (!TestBit(octet, 3) && !TestBit(octet, 2) && !TestBit(octet, 1) && TestBit(octet, 0)) numberingPlan = NumberingPlan.ISDNOrPhone; if (!TestBit(octet, 3) && !TestBit(octet, 2) && TestBit(octet, 1) && TestBit(octet, 0)) numberingPlan = NumberingPlan.Data; if (!TestBit(octet, 3) && TestBit(octet, 2) && !TestBit(octet, 1) && !TestBit(octet, 0)) numberingPlan = NumberingPlan.Telex; if (TestBit(octet, 3) && !TestBit(octet, 2) && !TestBit(octet, 1) && !TestBit(octet, 0)) numberingPlan = NumberingPlan.National; if (TestBit(octet, 3) && !TestBit(octet, 2) && !TestBit(octet, 1) && TestBit(octet, 0)) numberingPlan = NumberingPlan.Private; if (TestBit(octet, 3) && !TestBit(octet, 2) && TestBit(octet, 1) && !TestBit(octet, 0)) numberingPlan = NumberingPlan.ERMES; if (TestBit(octet, 3) && TestBit(octet, 2) && TestBit(octet, 1) && TestBit(octet, 0)) numberingPlan = NumberingPlan.Reserved; } }
public override int GetHashCode() { int hash = TypeOfAddress.GetHashCode(); if (StreetAddress != null) { hash += StreetAddress.GetHashCode(); } if (City != null) { hash += City.GetHashCode(); } if (State != null) { hash += State.GetHashCode(); } if (PostalCode != null) { hash += PostalCode.GetHashCode(); } return(hash); }
private Contact TranslateToContact(string stringedContact) { var address = new Address(); var contact = new Contact(null, null, null, Gender.Male, DateTime.MinValue, null, null, null); var contactType = contact.GetType(); var addressType = address.GetType(); var contactPropArray = contactType.GetProperties(); var addressPropArray = addressType.GetProperties(); var dictionaredContact = new Dictionary <string, string>(); var splitedContact = PrepareStringedContact(stringedContact); for (var elemNumber = 0; elemNumber < splitedContact.Length; elemNumber++) { var index = splitedContact[elemNumber].IndexOf(':'); if (index > 0) { var key = splitedContact[elemNumber].Split(':')[0].Trim(); var value = splitedContact[elemNumber].Split(':')[1]; dictionaredContact.Add(key, value); } else { var key = splitedContact[elemNumber - 1].Split(':')[0].Trim(); dictionaredContact[key] += splitedContact[elemNumber]; } } foreach (var property in contactPropArray) { switch (property.Name) { case "SecondName": contact.SecondName = dictionaredContact[property.Name]; break; case "FirstName": contact.FirstName = dictionaredContact[property.Name]; break; case "ThirdName": contact.ThirdName = dictionaredContact[property.Name]; break; case "Gender": var gender = new Gender(); if (Enum.TryParse(dictionaredContact[property.Name], true, out gender)) { contact.Gender = gender; } break; case "BirthDate": var birthDate = new DateTime(); dictionaredContact[property.Name] = dictionaredContact[property.Name].Remove(dictionaredContact[property.Name].LastIndexOf('0'), 1); if (DateTime.TryParse(dictionaredContact[property.Name], out birthDate)) { contact.BirthDate = birthDate; } break; case "INN": contact.INN = dictionaredContact[property.Name]; break; case "PhoneNumber": contact.PhoneNumber = dictionaredContact[property.Name]; break; } } foreach (var property in addressPropArray) { switch (property.Name) { case "AddressType": var typeOfAddress = new TypeOfAddress(); if (Enum.TryParse(dictionaredContact[property.Name], true, out typeOfAddress)) { address.AddressType = typeOfAddress; } break; case "Country": address.Country = dictionaredContact[property.Name]; break; case "City": address.City = dictionaredContact[property.Name]; break; case "CityAddress": address.CityAddress = dictionaredContact[property.Name]; break; } } contact.Address = address; return(contact); }
public Address(string phoneNumber, TypeOfAddress typeOfAddress, NumberingPlan numberingPlan) { this.PhoneNumber = phoneNumber; this.TypeOfAddress = typeOfAddress; this.NumberingPlan = numberingPlan; }
internal static void FromTypeOfAddress(byte octet, out TypeOfAddress typeOfAddress, out NumberingPlan numberingPlan) { typeOfAddress = TypeOfAddress.Unknown; numberingPlan = NumberingPlan.Unknown; if ((octet & 128) == 128) { if (!TestBit(octet, 6) && !TestBit(octet, 5) && !TestBit(octet, 4)) { typeOfAddress = TypeOfAddress.Unknown; } if (!TestBit(octet, 6) && !TestBit(octet, 5) && TestBit(octet, 4)) { typeOfAddress = TypeOfAddress.International; } if (!TestBit(octet, 6) && TestBit(octet, 5) && !TestBit(octet, 4)) { typeOfAddress = TypeOfAddress.National; } if (!TestBit(octet, 6) && TestBit(octet, 5) && TestBit(octet, 4)) { typeOfAddress = TypeOfAddress.NetworkSpecific; } if (TestBit(octet, 6) && !TestBit(octet, 5) && !TestBit(octet, 4)) { typeOfAddress = TypeOfAddress.Subscriber; } if (TestBit(octet, 6) && !TestBit(octet, 5) && TestBit(octet, 4)) { typeOfAddress = TypeOfAddress.Alphanumeric; } if (TestBit(octet, 6) && TestBit(octet, 5) && !TestBit(octet, 4)) { typeOfAddress = TypeOfAddress.Abbreviated; } if (TestBit(octet, 6) && TestBit(octet, 5) && TestBit(octet, 4)) { typeOfAddress = TypeOfAddress.Abbreviated; } if (!TestBit(octet, 3) && !TestBit(octet, 2) && !TestBit(octet, 1) && !TestBit(octet, 0)) { numberingPlan = NumberingPlan.Unknown; } if (!TestBit(octet, 3) && !TestBit(octet, 2) && !TestBit(octet, 1) && TestBit(octet, 0)) { numberingPlan = NumberingPlan.ISDNOrPhone; } if (!TestBit(octet, 3) && !TestBit(octet, 2) && TestBit(octet, 1) && TestBit(octet, 0)) { numberingPlan = NumberingPlan.Data; } if (!TestBit(octet, 3) && TestBit(octet, 2) && !TestBit(octet, 1) && !TestBit(octet, 0)) { numberingPlan = NumberingPlan.Telex; } if (TestBit(octet, 3) && !TestBit(octet, 2) && !TestBit(octet, 1) && !TestBit(octet, 0)) { numberingPlan = NumberingPlan.National; } if (TestBit(octet, 3) && !TestBit(octet, 2) && !TestBit(octet, 1) && TestBit(octet, 0)) { numberingPlan = NumberingPlan.Private; } if (TestBit(octet, 3) && !TestBit(octet, 2) && TestBit(octet, 1) && !TestBit(octet, 0)) { numberingPlan = NumberingPlan.ERMES; } if (TestBit(octet, 3) && TestBit(octet, 2) && TestBit(octet, 1) && TestBit(octet, 0)) { numberingPlan = NumberingPlan.Reserved; } } }