Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }