Example #1
0
 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;
 }
Example #2
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
 public Address(string phoneNumber, TypeOfAddress typeOfAddress, NumberingPlan numberingPlan) {
     this.PhoneNumber = phoneNumber;
     this.TypeOfAddress = typeOfAddress;
     this.NumberingPlan = numberingPlan;
 }
Example #6
0
 public Address(string phoneNumber, TypeOfAddress typeOfAddress, NumberingPlan numberingPlan)
 {
     this.PhoneNumber   = phoneNumber;
     this.TypeOfAddress = typeOfAddress;
     this.NumberingPlan = numberingPlan;
 }
Example #7
0
        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;
                }
            }
        }