public RegistreringType1 Read(CprBroker.Schemas.PersonIdentifier uuid, LaesInputType input, Func <string, Guid> cpr2uuidFunc, out CprBroker.Schemas.QualityLevel?ql) { RegistreringType1 ret = null; if (IPartPerCallDataProviderHelper.CanCallOnline(uuid.CprNumber)) { // TODO: Shall we remove this explicit logging after integration of budget control? Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "KMD.Read", string.Format("Calling AS78207 with PNR <{0}>", uuid.CprNumber), null, null); var detailsResponse = new EnglishAS78207Response(CallAS78207(uuid.CprNumber)); Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "KMD.Read", string.Format("Calling AS78205 with PNR <{0}>", uuid.CprNumber), null, null); var addressResponse = CallAS78205(uuid.CprNumber); Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "KMD.Read", string.Format("Converting PNR <{0}>", uuid.CprNumber), null, null); var kmdResponse = new KmdResponse() { AS78205Response = addressResponse.InnerResponse, AS78207Response = detailsResponse.InnerResponse }; UuidCache cache = new UuidCache(); cache.FillCache(kmdResponse.RelatedPnrs); ret = kmdResponse.ToRegistreringType1(cache.GetUuid); } ql = CprBroker.Schemas.QualityLevel.Cpr; return(ret); }
public RelationListeType ToRelationListeType(EnglishAS78207Response details, Func <string, Guid> cpr2uuidFunc) { var ret = new RelationListeType(); //Children if (details.ChildrenPNRs != null) { var childPnrs = (from pnr in details.ChildrenPNRs where pnr.Replace("-", "").Length > 0 select pnr.Replace("-", "")).ToArray(); var uuids = Array.ConvertAll <string, Guid>(childPnrs, (cpr) => cpr2uuidFunc(cpr)); ret.Boern = Array.ConvertAll <Guid, PersonFlerRelationType> ( uuids, (pId) => PersonFlerRelationType.Create(pId, null, null) ); } //Father if (Convert.ToDecimal(details.FatherPNR) > 0) { ret.Fader = new PersonRelationType[] { PersonRelationType.Create(cpr2uuidFunc(details.FatherPNR), null, null) }; } //Mother if (Convert.ToDecimal(details.MotherPNR) > 0) { ret.Fader = new PersonRelationType[] { PersonRelationType.Create(cpr2uuidFunc(details.MotherPNR), null, null) }; } // Spouse if (Convert.ToDecimal(details.SpousePNR) > 0) { var maritalStatus = Utilities.ToPartMaritalStatus(details.MaritallStatusCode[0]); var maritalStatusDate = Utilities.ToDateTime(details.MaritalStatusDate); bool isMarried = maritalStatus == CivilStatusKodeType.Gift || maritalStatus == CivilStatusKodeType.RegistreretPartner; var spouseUuid = cpr2uuidFunc(details.SpousePNR); ret.Aegtefaelle = new PersonRelationType[] { PersonRelationType.Create ( spouseUuid, isMarried? maritalStatusDate : null, isMarried? null : maritalStatusDate ) }; } // TODO: Fill other relationships such as custody return(ret); }