Exemplo n.º 1
0
        private void SetRestOfFields(ClaimableAddress adress, string streetname, string postalAdressLetter, int?postalAdressNumber, PersonWithMetadata person)
        {
            adress.PostalAddress = adress.PostalAddress?.Trim();
            postalAdressLetter   = postalAdressLetter?.ToUpper();

            adress.PostalAddressValidFrom = _adressStatistics.HasPostalAddressValidFrom.Sample(person.Randy) ? DateTime.Now.AddDays((-1) * person.Randy.Next(1500)) : (DateTime?)null;

            SetAdressLines(adress, person);

            adress.ApartmentNumber      = _adressStatistics.HasAppartmentNumber.Sample(person.Randy) ? GetAppartmentNumber(person) : null;
            adress.BasicStatisticalUnit = _adressStatistics.HasBasicStatisticalUnit.Sample(person.Randy) ? person.Randy.Next(1000) : (int?)null;
            adress.CadastralNumber      = _adressStatistics.HasCadastralNumber.Sample(person.Randy) ? person.Randy.Next(1000).ToString() : null;
            adress.CoAddress            = _adressStatistics.HasCoAdress.Sample(person.Randy) ? Concatenate(_adressLines.ElementAt(person.Randy.Next(_adressLines.Count)), 25) : null;

            adress.DistrictCode = _adressStatistics.HasDistrictCodeandDistrictName.Sample(person.Randy) ? GetFourSiffers(true, null, person) : null;
            adress.DistrictName = adress.DistrictCode != null?GetRandomName(_randomPlacePostfixes, person) : null;

            adress.Constituency   = _adressStatistics.HasConstituency.Sample(person.Randy) ? GetFourSiffers(true, adress.DistrictCode, person) : null;
            adress.SchoolDistrict = _adressStatistics.HasSchoolDistrict.Sample(person.Randy) ? GetFourSiffers(true, null, person) : null;

            adress.Country        = _adressStatistics.HasCountry.Sample(person.Randy) ? "Norge" : null;
            adress.HouseLetter    = postalAdressLetter;
            adress.HouseNumber    = postalAdressNumber;
            adress.PropertyNumber = _adressStatistics.HasPropertyNumber.Sample(person.Randy) ? person.Randy.Next(10000).ToString() : null;
            adress.StreetName     = _adressStatistics.HasStreetname.Sample(person.Randy) ? streetname : null;
            adress.StreetNumber   = adress.StreetName != null?GetFourSiffers(false, null, person) : null;

            if (_adressStatistics.HasXcoordYcoord.Sample(person.Randy))
            {
                adress.XCoord = Decimal.Parse(person.Randy.Next(90) + "." + person.Randy.Next(90));
                adress.YCoord = Decimal.Parse(person.Randy.Next(90) + "." + person.Randy.Next(90));
            }
        }
Exemplo n.º 2
0
        private void MakeAdresses(string postalCode, int howmany, PersonWithMetadata person)
        {
            if (!_postalDictionary.ContainsKey(postalCode))
            {
                _postalDictionary.Add(postalCode, new Tuple <string, string>(GetRandomName(_randomPlacePostfixes, person), _municipalityDictionary.Keys.ElementAt(person.Randy.Next(_municipalityDictionary.Keys.Count))));
            }

            for (int i = 0; i < howmany; i++)
            {
                var adress = new ClaimableAddress();
                adress.Claimed = false;

                var streetname         = GetRandomName(_randomRoadPostfixes, person);
                var postalAdressLetter = _adressStatistics.HasHouseLetter.Sample(person.Randy) ? person.Randy.NextLetter().ToString().ToUpper() : null;
                int?postalAdressNumber = _adressStatistics.HasHouseNumber.Sample(person.Randy) ? person.Randy.Next(1000) : (int?)null;

                adress.PostalCode    = postalCode;
                adress.PostalPlace   = adress.PostalCode != null && _adressStatistics.HasPostalPlace.Sample(person.Randy) ? _postalDictionary[postalCode].Item1 : null;
                adress.PostalAddress = _adressStatistics.HasPostalAdress.Sample(person.Randy) ? streetname + " " + postalAdressNumber + postalAdressLetter : null;
                adress.St            = _adressStatistics.HasSt.Sample(person.Randy) ? _postalDictionary[postalCode].Item2 : null;
                adress.Municipality  = adress.St != null ? _municipalityDictionary[adress.St] : null;

                SetRestOfFields(adress, streetname, postalAdressLetter, postalAdressNumber, person);

                if (!_adresses.ContainsKey(postalCode))
                {
                    _adresses.Add(postalCode, new List <ClaimableAddress>());
                }

                _adresses[postalCode].Add(adress);
            }
        }
Exemplo n.º 3
0
        private void GenerateAdressList()
        {
            _adressLines = new List <Tuple <string, string, string> >();
            _adresses    = new Dictionary <string, List <ClaimableAddress> >();

            using (TextReader sr = GetEmbeddedResource(encodingName: null))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    if (line.StartsWith("["))
                    {
                        line = line.Replace("[", "");
                    }
                    if (line.EndsWith(","))
                    {
                        line = line.Remove(line.Length - 1);
                    }
                    if (line.EndsWith("]"))
                    {
                        line = line.Remove(line.Length - 1);
                    }

                    if (String.IsNullOrEmpty(line) || line.Contains("]["))
                    {
                        continue;
                    }

                    var element = JsonConvert.DeserializeObject <AdressElement>(line);

                    var postalCode = new String(element.postalnumber.Where(Char.IsDigit).ToArray());

                    if (element.address.Length <= 4)
                    {
                        continue;
                    }

                    var adress = new ClaimableAddress
                    {
                        AdressElement = element
                    };

                    if (!_adresses.ContainsKey(postalCode))
                    {
                        _adresses.Add(postalCode, new List <ClaimableAddress>());
                    }

                    _adresses[postalCode].Add(adress);
                    _adressLines.Add(new Tuple <string, string, string>(element.place, element.address, element.postalnumber));
                }
            }
        }
Exemplo n.º 4
0
        private void ConvertFromAdressElement(ClaimableAddress address, PersonWithMetadata person)
        {
            var postalCode  = new String(address.AdressElement.postalnumber.Where(Char.IsDigit).ToArray());
            var postalPlace = address.AdressElement.postalnumber.Replace(postalCode, "").Trim();

            var hasSt = _adressStatistics.HasSt.Sample(person.Randy);

            address.PostalCode    = _adressStatistics.HasPostalCode.Sample(person.Randy) ? postalCode : null;
            address.PostalPlace   = _adressStatistics.HasPostalPlace.Sample(person.Randy) ? postalPlace : null;
            address.PostalAddress = _adressStatistics.HasPostalAdress.Sample(person.Randy) ? address.AdressElement.address : null;
            address.St            = hasSt && _postalDictionary.ContainsKey(postalCode) ? _postalDictionary[postalCode].Item2 : null;
            address.Municipality  = hasSt ? address.AdressElement.kommune.Replace(" kommune", "") : null;

            if (address.PostalAddress == null)
            {
                SetRestOfFields(address, "", "", 0, person);
                return;
            }

            var    streetname          = GetRandomName(_randomRoadPostfixes, person);
            string postalAdressLetter  = null;
            int?   postalAdressNumber  = null;
            var    splittedStreet      = address.PostalAddress.Split(' ');
            var    streetNumberAndChar = splittedStreet.Last();

            if (splittedStreet.Length > 1)
            {
                streetname = "";
                for (int i = 0; i < splittedStreet.Length - 1; i++)
                {
                    streetname = splittedStreet[i] + " ";
                }

                if (streetname.EndsWith(" "))
                {
                    streetname = streetname.Substring(0, streetname.Length - 1);
                }
            }

            //due to a bug in address.json
            if (splittedStreet.Length == 1 && !string.IsNullOrEmpty(address.AdressElement.place))
            {
                Trace.WriteLine("Using " + address.AdressElement.place + " instead of " + address.AdressElement.address);
                address.PostalAddress = address.AdressElement.place;
                streetname            = address.PostalAddress;
            }

            if (streetNumberAndChar.Any(Char.IsDigit))
            {
                var digits = Regex.Match(streetNumberAndChar, @"\d+").Value;
                int temppostalAdressNumber;
                var success = Int32.TryParse(digits, out temppostalAdressNumber);

                if (success && streetNumberAndChar.Contains(temppostalAdressNumber.ToString()))
                {
                    var withoutNumbers = streetNumberAndChar.Replace(temppostalAdressNumber.ToString(), "");
                    postalAdressLetter = !String.IsNullOrEmpty(withoutNumbers) ? withoutNumbers.FirstOrDefault(c => !Char.IsDigit(c)).ToString() : "";
                    postalAdressNumber = temppostalAdressNumber;
                }

                if (!success && _adressStatistics.HasHouseNumber.Sample(person.Randy))
                {
                    postalAdressNumber = person.Randy.Next(1000);
                }
            }

            if (!string.IsNullOrEmpty(streetname) && postalAdressNumber.HasValue)
            {
                address.PostalAddress = streetname + " " + postalAdressNumber.Value;
            }

            if (!string.IsNullOrEmpty(streetname) && !string.IsNullOrEmpty(postalAdressLetter))
            {
                address.PostalAddress += " " + postalAdressLetter;
            }

            SetRestOfFields(address, streetname, postalAdressLetter, postalAdressNumber, person);
        }