public SoegListOutputType Create(params string[] names) { var ret = new SoegListOutputType(); var objects = names.Select( n => { var ooo = new LaesResultatType() { Item = new FiltreretOejebliksbilledeType() { AttributListe = new AttributListeType() { Egenskab = new EgenskabType[] { new EgenskabType() { NavnStruktur = new NavnStrukturType() { PersonNameStructure = new PersonNameStructureType(n.Split(' ')) } } }, RegisterOplysning = new RegisterOplysningType[] { new RegisterOplysningType() { Item = new CprBorgerType() { PersonCivilRegistrationIdentifier = "0123456789" } } } } } }; return(ooo); }); ret.LaesResultat = objects.ToArray(); return(ret); }
public bool FillFrom(SoegListOutputType searchResult) { var names = this.Name.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var fullName = new PersonNameStructureType(names).ToString(); // If multiple matches are found, choose the first one var bestMatch = searchResult.LaesResultat .Select(lr => (lr.Item as FiltreretOejebliksbilledeType).AttributListe) .Where(atr => atr != null) .Select(atr => new { atr, FullName = atr.Egenskab.FirstOrDefault()?.NavnStruktur?.PersonNameStructure?.ToString() }) .Where(o => o.FullName?.ToLower() == fullName?.ToLower()) .FirstOrDefault(); if (bestMatch != null) { this.FillFrom(bestMatch.atr); return(true); } else { return(false); } }