public void InternationalAddress_ToString_CallBaseImplementation()
        {
            InternationalAddress internationalAddress = new InternationalAddress();

            internationalAddress.StreetAddress = "111 W St";
            internationalAddress.City          = "City";
            internationalAddress.State         = "State";
            internationalAddress.Zip           = "11111";
            internationalAddress.Country       = "Country";

            string expected = "111 W St" + System.Environment.NewLine +
                              "City, State  11111" + System.Environment.NewLine +
                              "Country";

            Assert.AreEqual(expected, internationalAddress.ToString());
        }
Example #2
0
        public List <PreviousAddress> CreateAddressHistoryList(List <CustomField> formFields, bool isSecondApplicant = false)
        {
            var applicantPrefix = !isSecondApplicant ? "1" : "2";

            var addressList        = new List <PreviousAddress>();
            var currentAddressInfo = new PreviousAddress();

            var currentDateFromMonth = formFields.FirstOrDefault(_ => _.Name == $"currentdatefrommonthapplicant{applicantPrefix}")?.Value;
            var currentDateFromYear  = formFields.FirstOrDefault(_ => _.Name == $"currentdatefromyearapplicant{applicantPrefix}")?.Value;


            if (currentDateFromMonth == null || currentDateFromYear == null)
            {
                currentAddressInfo = new PreviousAddress {
                    Address = new InternationalAddress()
                };
            }
            else
            {
                currentAddressInfo = new PreviousAddress
                {
                    DateFrom = new DateTime(int.Parse(currentDateFromYear), int.Parse(currentDateFromMonth), 01),
                    Address  = new InternationalAddress()
                };
            }

            for (int i = 1; i < 9; i++)
            {
                var previousAddress = new PreviousAddress();
                var intAddress      = new InternationalAddress();
                var address         = formFields.FirstOrDefault(_ => _.Name == $"pa{i}applicant{applicantPrefix}");
                if (address != null)
                {
                    var splitAddress = address.Value.Split("|");
                    intAddress.AddressLine1 = splitAddress[0];
                    intAddress.AddressLine2 = splitAddress[1];
                    intAddress.Town         = splitAddress[2];
                    intAddress.County       = splitAddress[3];
                    intAddress.Country      = splitAddress[4];
                    intAddress.Postcode     = formFields.FirstOrDefault(_ => _.Name == $"pa{i}postcodeapplicant{applicantPrefix}")?.Value;
                }

                var month = formFields.FirstOrDefault(_ => _.Name == $"pa{i}datefrommonthapplicant{applicantPrefix}");
                var year  = formFields.FirstOrDefault(_ => _.Name == $"pa{i}datefromyearapplicant{applicantPrefix}");

                if (month != null && year != null)
                {
                    previousAddress.DateFrom = new DateTime(int.Parse(year.Value), int.Parse(month.Value), 01);
                }

                previousAddress.Address = intAddress;

                addressList.Add(previousAddress);
            }

            if (formFields.FirstOrDefault(_ => _.Name == $"addressadditionalinformation{applicantPrefix}") != null)
            {
                var additionalAddressList =
                    formFields.FirstOrDefault(_ => _.Name == $"addressadditionalinformation{applicantPrefix}").Value.Split("—");

                for (int i = 0; i < additionalAddressList.Length; i++)
                {
                    var splitAdditionalAddress = additionalAddressList[i].Split("|");
                    var previousAddress        = new PreviousAddress
                    {
                        Address = new InternationalAddress()
                    };

                    previousAddress.Address.AddressLine1 = splitAdditionalAddress[0];
                    previousAddress.Address.AddressLine2 = splitAdditionalAddress[1];
                    previousAddress.Address.Town         = splitAdditionalAddress[2];
                    previousAddress.Address.County       = splitAdditionalAddress[3];
                    previousAddress.Address.Country      = splitAdditionalAddress[4];
                    previousAddress.Address.Postcode     = splitAdditionalAddress[5];
                    previousAddress.DateFrom             = new DateTime(int.Parse(splitAdditionalAddress[7]), int.Parse(splitAdditionalAddress[6]), 1);

                    addressList.Add(previousAddress);
                }
            }

            var sortedAddressList = addressList
                                    .Where(address =>
                                           address.DateFrom != null &&
                                           address.Address != null)
                                    .ToList();

            var addressResult = new List <PreviousAddress>();

            addressResult.Add(currentAddressInfo);
            addressResult.AddRange(sortedAddressList);

            return(addressResult);
        }