public SimplePerson GetSimplePersonByItem(CPRBroker.RegistreringType1 OutputItem)
        {
            SimplePerson simplePerson = new SimplePerson();

            simplePerson.FirstName  = OutputItem.AttributListe.Egenskab[0].NavnStruktur.PersonNameStructure.PersonGivenName;
            simplePerson.MiddleName = OutputItem.AttributListe.Egenskab[0].NavnStruktur.PersonNameStructure.PersonMiddleName;
            simplePerson.Surname    = OutputItem.AttributListe.Egenskab[0].NavnStruktur.PersonNameStructure.PersonSurnameName;

            Address address = wrapper.GetAddress(OutputItem);

            CPRBroker.RegisterOplysningType registerOplysning = null;
            // Idet navne og adresse beskyttelse tit fremskrives til en bestemt periode, så tjekkes det at den aktive periode anvendes
            foreach (var RegisterOplysning in OutputItem.AttributListe.RegisterOplysning)
            {
                DateTime Fra;
                DateTime Til;
                try
                {
                    Fra = (DateTime)RegisterOplysning.Virkning.FraTidspunkt.Item;
                }
                catch
                {
                    Fra = DateTime.MinValue;
                }
                try
                {
                    Til = (DateTime)RegisterOplysning.Virkning.TilTidspunkt.Item;
                }
                catch
                {
                    Til = DateTime.MaxValue;
                }
                if (Fra < DateTime.Now && Til > DateTime.Now)
                {
                    registerOplysning = RegisterOplysning; break;
                }
            }
            if (registerOplysning == null)
            {
                registerOplysning = OutputItem.AttributListe.RegisterOplysning[0];
            }
            if (OutputItem.TilstandListe.LivStatus.LivStatusKode.ToString() == "Doed")
            {
                simplePerson.NameAddressProtection = false;
                simplePerson.Address = new Address()
                {
                    AddressLine1 = "(Død)"
                };
            }
            else
            {
                simplePerson.NameAddressProtection = ((CPRBroker.CprBorgerType)registerOplysning.Item).NavneAdresseBeskyttelseIndikator;
                simplePerson.Address = address;
            }
            simplePerson.CPR = ((CPRBroker.CprBorgerType)registerOplysning.Item).PersonCivilRegistrationIdentifier;
            return(simplePerson);
        }
        public Address GetAddress(CPRBroker.RegistreringType1 Item)
        {
            Address address = new Address();
            var     registerOplysningItem = (CPRBroker.CprBorgerType)Item.AttributListe.RegisterOplysning[0].Item;

            if (registerOplysningItem.FolkeregisterAdresse != null)
            {
                CPRBroker.AdresseBaseType adresse = registerOplysningItem.FolkeregisterAdresse.Item;
                if (adresse is CPRBroker.DanskAdresseType)
                {
                    CPRBroker.AddressPostalType danishAddress = ((CPRBroker.DanskAdresseType)adresse).AddressComplete.AddressPostal;
                    string streetNameAndNumber = danishAddress.StreetName + " " + ParseAddressField(danishAddress.StreetBuildingIdentifier);
                    string floorSuite          = ParseAddressField(danishAddress.FloorIdentifier) == "" ? ParseAddressField(danishAddress.SuiteIdentifier) : (ParseAddressField(danishAddress.FloorIdentifier) + (ParseAddressField(danishAddress.SuiteIdentifier) == "" ? "" : "," + ParseAddressField(danishAddress.SuiteIdentifier)));
                    floorSuite           = Regex.Replace(floorSuite, @"(^|\s)(st|tv|th)\b", "$1$2.", RegexOptions.IgnoreCase);
                    address.AddressLine1 = (streetNameAndNumber + (floorSuite == "" ? "" : ", " + floorSuite)).Trim();
                    address.AddressLine2 = (ParseAddressField(danishAddress.PostCodeIdentifier) + " " + ParseAddressField(danishAddress.DistrictName)).Trim();
                }
                else if (adresse is CPRBroker.GroenlandAdresseType)
                {
                    CPRBroker.AddressCompleteGreenlandType greenlandAddress = ((CPRBroker.GroenlandAdresseType)adresse).AddressCompleteGreenland;
                    string streetNameAndNumber = greenlandAddress.StreetName + " " + ParseAddressField(greenlandAddress.StreetBuildingIdentifier);
                    string floorSuite          = ParseAddressField(greenlandAddress.FloorIdentifier) + ParseAddressField(greenlandAddress.SuiteIdentifier) == "" ? "" : "," + ParseAddressField(greenlandAddress.SuiteIdentifier);
                    address.AddressLine1 = (streetNameAndNumber + (floorSuite == "" ? "" : ", " + floorSuite)).Trim();
                    address.AddressLine2 = (ParseAddressField(greenlandAddress.PostCodeIdentifier) + " " + ParseAddressField(greenlandAddress.DistrictName)).Trim();
                    address.AddressLine3 = "Grønland";
                }
                else if (adresse is CPRBroker.VerdenAdresseType)
                {
                    CPRBroker.ForeignAddressStructureType foreignAddress = ((CPRBroker.VerdenAdresseType)adresse).ForeignAddressStructure;
                    address.AddressLine1 = foreignAddress.PostalAddressFirstLineText;
                    address.AddressLine2 = foreignAddress.PostalAddressSecondLineText;
                    address.AddressLine3 = foreignAddress.PostalAddressThirdLineText;
                    address.AddressLine4 = foreignAddress.PostalAddressFourthLineText;
                    address.AddressLine5 = foreignAddress.PostalAddressFifthLineText;
                }
                else
                {
                    throw new CPRBrokerWrapperException(String.Format("CPRBrokerWrapper: Unexpected AdresseBaseType derived type: {0}", adresse.GetType().Name));
                }
            }
            return(address);
        }