public XElement Serialize(string name)
 {
     return(new XElement(UblNames.Cac + name,
                         ID.Serialize(nameof(ID)),
                         AddressTypeCode.Serialize(nameof(AddressTypeCode)),
                         AddressFormatCode.Serialize(nameof(AddressFormatCode)),
                         Postbox.Serialize(nameof(Postbox)),
                         Floor.Serialize(nameof(Floor)),
                         Room.Serialize(nameof(Room)),
                         StreetName.Serialize(nameof(StreetName)),
                         AdditionalStreetName.Serialize(nameof(AdditionalStreetName)),
                         BlockName.Serialize(nameof(BlockName)),
                         BuildingName.Serialize(nameof(BuildingName)),
                         BuildingNumber.Serialize(nameof(BuildingNumber)),
                         InhouseMail.Serialize(nameof(InhouseMail)),
                         Department.Serialize(nameof(Department)),
                         MarkAttention.Serialize(nameof(MarkAttention)),
                         MarkCare.Serialize(nameof(MarkCare)),
                         PlotIdentification.Serialize(nameof(PlotIdentification)),
                         CitySubdivisionName.Serialize(nameof(CitySubdivisionName)),
                         CityName.Serialize(nameof(CityName)),
                         PostalZone.Serialize(nameof(PostalZone)),
                         CountrySubentity.Serialize(nameof(CountrySubentity)),
                         CountrySubentityCode.Serialize(nameof(CountrySubentityCode)),
                         Region.Serialize(nameof(Region)),
                         District.Serialize(nameof(District)),
                         TimezoneOffset.Serialize(nameof(TimezoneOffset)),
                         AddressLines?.Select(line => new XElement(UblNames.Cac + "AddressLine", line.Serialize("Line"))),
                         Country?.Serialize(),
                         LocationCoordinates?.Select(lc => lc.Serialize())
                         ));
 }
        public AddressLinesResponse Post(AddressLines request)
        {
            if (request.AddressLine.Id > 0)
              {
            Bm2s.Data.Common.BLL.Partner.AddressLine item = Datas.Instance.DataStorage.AddressLines[request.AddressLine.Id];
            item.AddressId = request.AddressLine.Address.Id;
            item.Line = request.AddressLine.Line;
            item.Order = request.AddressLine.Order;
            Datas.Instance.DataStorage.AddressLines[request.AddressLine.Id] = item;
              }
              else
              {
            Bm2s.Data.Common.BLL.Partner.AddressLine item = new Data.Common.BLL.Partner.AddressLine()
            {
              AddressId = request.AddressLine.Address.Id,
              Line = request.AddressLine.Line,
              Order = request.AddressLine.Order
            };

            Datas.Instance.DataStorage.AddressLines.Add(item);
            request.AddressLine.Id = item.Id;
              }

              AddressLinesResponse response = new AddressLinesResponse();
              response.AddressLines.Add(request.AddressLine);
              return response;
        }
        public override int GetHashCode()
        {
            var result = 17;

            var fields = new[] {
                PostalCountry,
                AdministrativeArea,
                Locality,
                DependentLocality,
                PostalCode,
                SortingCode,
                Organization,
                Recipient,
                LanguageCode
            };

            foreach (var field in fields)
            {
                result = 31 * result + (field == null ? 0 : field.GetHashCode());
            }

            result = 31 * result + (!AddressLines.Any() ? 0 : AddressLines.GetHashCode());

            return(result);
        }
            public Builder SetAddressLines(IEnumerable <string> lines)
            {
                AddressLines.Clear();
                AddressLines.AddRange(lines);

                return(this);
            }
            public Builder SetAddress(string value)
            {
                AddressLines.Clear();
                AddressLines.AddRange(NormalizeAddressLines(AddressLines));

                return(this);
            }
示例#6
0
        public void Restore_returnsExpected()
        {
            var add1 = "add1";

            var add3 = "ADD3";
            var add6 = "address 6";

            var expected = new AddressLines(add1, null, add3, null, null, add6);

            var sut = new AddressNameNumber(expected);

            sut.Simplify();
            sut.Address6 = "new address 6";

            sut.Restore();

            Assert.That(sut, Is.Not.Null);

            Assert.That(sut.FullAddress(), Is.EqualTo(expected.FullAddress()));
            Assert.That(sut.Address1, Is.EqualTo(add1));
            Assert.That(sut.Address2, Is.Null);
            Assert.That(sut.Address3, Is.EqualTo(add3));
            Assert.That(sut.Address4, Is.Null);
            Assert.That(sut.Address5, Is.Null);
            Assert.That(sut.Address6, Is.EqualTo(add6));
        }
示例#7
0
        private string GetOtherServicesSecondLineHtml()
        {
            if (IsCASCallbackServiceWithNoAddress)
            {
                return(string.Empty);
            }

            if (IsOohServiceWithCallbackAndNoPublicName)
            {
                return(string.Empty);
            }

            if (IsNotACallbackServiceWithPublicName)
            {
                return(string.Format("<br />{0}", WebUtility.HtmlDecode(PublicName)));
            }

            if (!ShouldShowAddress || IsGoToEdService)
            {
                return(string.Format("<br />{0}", WebUtility.HtmlDecode(PublicName)));
            }

            var firstLineOfAddress = AddressLines.FirstOrDefault(a => !string.IsNullOrEmpty(a));

            return(string.Format("<br />{0}", WebUtility.HtmlDecode(firstLineOfAddress)));
        }
示例#8
0
        protected override IEnumerable <object> Reflect()
        {
            yield return(AddressLines.ByValue(Ordering.Strict));

            yield return(City.ToUpperInvariant());

            yield return(PostalCode);
        }
示例#9
0
 public HyperAddress(string addressLine1, string addressLine2, string city, string state, string zipCode)
     : this()
 {
     AddressLines.Add(addressLine1);
     AddressLines.Add(addressLine2);
     City    = city;
     State   = state;
     ZipCode = zipCode;
 }
        public AddressLinesResponse Delete(AddressLines request)
        {
            Bm2s.Data.Common.BLL.Partner.AddressLine item = Datas.Instance.DataStorage.AddressLines[request.AddressLine.Id];
              Datas.Instance.DataStorage.AddressLines.Remove(item);

              AddressLinesResponse response = new AddressLinesResponse();
              response.AddressLines.Add(request.AddressLine);
              return response;
        }
示例#11
0
 public void MakeSchemaCompliant()
 {
     Address.MakeSchemaCompliant();
     AddressLines.MakeSchemaCompliant();
     Country.MakeSchemaCompliant();
     AdministrativeArea.MakeSchemaCompliant();
     Locality.MakeSchemaCompliant();
     Thoroughfare.MakeSchemaCompliant();
 }
示例#12
0
        /// <inheritdoc />
        public bool ValidAddress(string address1, string address2, string address3, string address4,
                                 string address5, string address6)
        {
            var checkAddress = new AddressLines(address1,
                                                address2,
                                                address3,
                                                address4,
                                                address5,
                                                address6
                                                );

            return(!checkAddress.IsEmptyAddress());
        }
            public Builder Set(AddressData addressData)
            {
                _fields.Clear();

                foreach (var field in _singleValueFields)
                {
                    Set(field, addressData.GetFieldValue(field));
                }

                AddressLines.Clear();
                AddressLines.AddRange(addressData.AddressLines);
                SetLanguageCode(addressData.LanguageCode);

                return(this);
            }
示例#14
0
        public void ContactAcceptsSimpleAddressLine()
        {
            var primaryAddress   = "padd";
            var secondaryAddress = "2";
            var county           = "county";

            var address = new AddressLines(primaryAddress, secondaryAddress, null, null, null, county);

            var expected = primaryAddress + ", " + secondaryAddress + ", " + county;

            var sut    = new Contact(new Address(address));
            var actual = sut.Address.FullAddress();

            Assert.That(actual, Is.EqualTo(expected));
        }
 public string Address(AddressLines numberOfLines)
 {
     switch (numberOfLines)
     {
         case (AddressLines.Single):
             return MergeLines(addressLine1, addressLine2, townOrCity, region, postcode, country);
         default:
             return Convert(new[]
             {
                 MergeLines(addressLine1, addressLine2),
                 MergeLines(townOrCity, region),
                 MergeLines(postcode, country)
             });
     }
 }
示例#16
0
        public string Address(AddressLines numberOfLines)
        {
            switch (numberOfLines)
            {
            case (AddressLines.Single):
                return(MergeLines(addressLine1, addressLine2, townOrCity, region, postcode, country));

            default:
                return(Convert(new[]
                {
                    MergeLines(addressLine1, addressLine2),
                    MergeLines(townOrCity, region),
                    MergeLines(postcode, country)
                }));
            }
        }
示例#17
0
        public override string GetStepParameters()
        {
            var parameters = new List <string>();

            parameters.Add(Purpose.ToStepValue());
            parameters.Add(Description != null ? Description.ToStepValue() : "$");
            parameters.Add(UserDefinedPurpose != null ? UserDefinedPurpose.ToStepValue() : "$");
            parameters.Add(InternalLocation != null ? InternalLocation.ToStepValue() : "$");
            parameters.Add(AddressLines != null ? AddressLines.ToStepValue() : "$");
            parameters.Add(PostalBox != null ? PostalBox.ToStepValue() : "$");
            parameters.Add(Town != null ? Town.ToStepValue() : "$");
            parameters.Add(Region != null ? Region.ToStepValue() : "$");
            parameters.Add(PostalCode != null ? PostalCode.ToStepValue() : "$");
            parameters.Add(Country != null ? Country.ToStepValue() : "$");

            return(string.Join(", ", parameters.ToArray()));
        }
示例#18
0
        /// <summary>
        ///   Initialise the addresslines list of address lines. Clears any existing lines, further lines can be added through the AddressLine property
        /// </summary>
        public LabelCollection SetAddressLines(params string[] lines)
        {
            if (AddressLines == null)
            {
                AddressLines = new LabelCollection(this);
            }
            else
            {
                AddressLines.Clear();
            }
            foreach (string line in lines)
            {
                AddressLines.Add(line.Trim());
            }

            return(AddressLines);
        }
        public AddressLinesResponse Get(AddressLines request)
        {
            AddressLinesResponse response = new AddressLinesResponse();
              List<Bm2s.Data.Common.BLL.Partner.AddressLine> items = new List<Data.Common.BLL.Partner.AddressLine>();
              if (!request.Ids.Any())
              {
            items.AddRange(Datas.Instance.DataStorage.AddressLines.Where(item =>
              (request.AddressId == 0 || item.AddressId == request.AddressId)
              ));
              }
              else
              {
            items.AddRange(Datas.Instance.DataStorage.AddressLines.Where(item => request.Ids.Contains(item.Id)));
              }

              var collection = (from item in items
                        select new Bm2s.Poco.Common.Partner.AddressLine()
                        {
                          Address = new AddressesService().Get(new Addresses() { Ids = new List<int>() { item.AddressId } }).Addresses.FirstOrDefault(),
                          Id = item.Id,
                          Line = item.Line,
                          Order = item.Order
                        }).AsQueryable().OrderBy(request.Order, !request.DescendingOrder);

              response.ItemsCount = collection.Count();
              if (request.PageSize > 0)
              {
            response.AddressLines.AddRange(collection.Skip((request.CurrentPage - 1) * request.PageSize).Take(request.PageSize));
              }
              else
              {
            response.AddressLines.AddRange(collection);
              }

              try
              {
            response.PagesCount = collection.Count() / response.AddressLines.Count + (collection.Count() % response.AddressLines.Count > 0 ? 1 : 0);
              }
              catch
              {
            response.PagesCount = 1;
              }

              return response;
        }
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }

            if (!(obj is AddressData addressData))
            {
                return(false);
            }

            return((PostalCountry == null
                    ? addressData.PostalCountry == null
                    : PostalCountry.Equals(addressData.PostalCountry)) &&
                   (!AddressLines.Any()
                    ? !addressData.AddressLines.Any()
                    : AddressLines.Equals(addressData.AddressLines)) &&
                   (AdministrativeArea == null
                    ? addressData.AdministrativeArea == null
                    : AdministrativeArea.Equals(addressData.AdministrativeArea)) &&
                   (Locality == null
                    ? addressData.Locality == null
                    : Locality.Equals(addressData.Locality)) &&
                   (DependentLocality == null
                    ? addressData.DependentLocality == null
                    : DependentLocality.Equals(addressData.DependentLocality)) &&
                   (PostalCode == null
                    ? addressData.PostalCode == null
                    : PostalCode.Equals(addressData.PostalCode)) &&
                   (SortingCode == null
                    ? addressData.SortingCode == null
                    : SortingCode.Equals(addressData.SortingCode)) &&
                   (Organization == null
                    ? addressData.Organization == null
                    : Organization.Equals(addressData.Organization)) &&
                   (Recipient == null
                    ? addressData.Recipient == null
                    : Recipient.Equals(addressData.Recipient)) &&
                   (LanguageCode == null
                    ? addressData.LanguageCode == null
                    : LanguageCode.Equals(addressData.LanguageCode)));
        }
示例#21
0
        public void AddressLineConstructor_ExpectedResults()
        {
            var addressLine = CreateSimpleAddressLine();

            addressLine.AddressLine1 = "add1";
            addressLine.AddressLine2 = "add2";
            addressLine.AddressLine3 = "add3";
            addressLine.AddressLine4 = "add4";
            addressLine.AddressLine5 = "add5";
            addressLine.AddressLine6 = "add6";

            var actual = new AddressLines(addressLine);

            Assert.That(actual, Is.Not.Null);
            Assert.That(actual.Address1, Is.EqualTo(addressLine.AddressLine1));
            Assert.That(actual.Address2, Is.EqualTo(addressLine.AddressLine2));
            Assert.That(actual.Address3, Is.EqualTo(addressLine.AddressLine3));
            Assert.That(actual.Address4, Is.EqualTo(addressLine.AddressLine4));
            Assert.That(actual.Address5, Is.EqualTo(addressLine.AddressLine5));
            Assert.That(actual.Address6, Is.EqualTo(addressLine.AddressLine6));
        }
示例#22
0
        public void AddressNamedConstructor_ExpectedResults()
        {
            var address = new AddressNamed(
                "primary",
                "secondary",
                "street",
                "location",
                "town",
                "county"
                );

            var actual = new AddressLines(address);

            Assert.That(actual, Is.Not.Null);
            Assert.That(actual.Address1, Is.EqualTo("primary"));
            Assert.That(actual.Address2, Is.EqualTo("secondary"));
            Assert.That(actual.Address3, Is.EqualTo("street"));
            Assert.That(actual.Address4, Is.EqualTo("location"));
            Assert.That(actual.Address5, Is.EqualTo("town"));
            Assert.That(actual.Address6, Is.EqualTo("county"));
        }
示例#23
0
        public void RestoreEmpty_returnsExpected()
        {
            var expected = new AddressLines(null, null, null, null, null, null);

            var sut = new AddressNameNumber(expected);

            sut.Simplify();
            sut.Address6 = "new address 6";

            sut.Restore();

            Assert.That(sut, Is.Not.Null);

            Assert.That(sut.FullAddress(), Is.EqualTo(expected.FullAddress()));
            Assert.That(sut.Address1, Is.Null);
            Assert.That(sut.Address2, Is.Null);
            Assert.That(sut.Address3, Is.Null);
            Assert.That(sut.Address4, Is.Null);
            Assert.That(sut.Address5, Is.Null);
            Assert.That(sut.Address6, Is.Null);
        }
示例#24
0
        private string GetServiceAddressHtml()
        {
            var fullAddressHtml = AddressLines.Where(address => !string.IsNullOrEmpty(address)).Aggregate(string.Empty, (current, address) => current + string.Format("{0}<br />", WebUtility.HtmlDecode(address)));

            return(string.Format("<br />{0}", fullAddressHtml));
        }
示例#25
0
 internal override void ParseXml(XmlElement xml)
 {
     base.ParseXml(xml);
     if (xml.HasAttribute("InternalLocation"))
     {
         InternalLocation = xml.Attributes["InternalLocation"].Value;
     }
     foreach (XmlNode child in xml.ChildNodes)
     {
         string name = child.Name;
         if (string.Compare(name, "AddressLines") == 0)
         {
             foreach (XmlNode cn in child.ChildNodes)
             {
                 AddressLines.Add(cn.InnerText);
             }
         }
         else if (string.Compare(name, "InternalLocation", true) == 0)
         {
             InternalLocation = child.InnerText;
         }
         else if (string.Compare(name, "PostalBox", true) == 0)
         {
             PostalBox = child.InnerText;
         }
         else if (string.Compare(name, "Town", true) == 0)
         {
             Town = child.InnerText;
         }
         else if (string.Compare(name, "Region", true) == 0)
         {
             Region = child.InnerText;
         }
         else if (string.Compare(name, "PostalCode", true) == 0)
         {
             PostalCode = child.InnerText;
         }
         else if (string.Compare(name, "Country", true) == 0)
         {
             Country = child.InnerText;
         }
     }
     if (xml.HasAttribute("PostalBox"))
     {
         PostalBox = xml.Attributes["PostalBox"].Value;
     }
     if (xml.HasAttribute("Town"))
     {
         Town = xml.Attributes["Town"].Value;
     }
     if (xml.HasAttribute("Region"))
     {
         Region = xml.Attributes["Region"].Value;
     }
     if (xml.HasAttribute("PostalCode"))
     {
         PostalCode = xml.Attributes["PostalCode"].Value;
     }
     if (xml.HasAttribute("Country"))
     {
         Country = xml.Attributes["Country"].Value;
     }
 }
 public Builder AddAddressLines(string value)
 {
     AddressLines.Add(value);
     return(this);
 }