Exemplo n.º 1
0
        public RelationListeType ToRelationListeType(Func <string, Guid> cpr2UuidFunc)
        {
            // Marriages
            var civilStates = Interval
                              .CreateFromData <TimedTypeWrapper <ICivilStatus> >(this.ItemsAsTimedType, new DataTypeTags[] { DataTypeTags.CivilStatus })
                              .Select(w => w.TimedObject)
                              .ToList();
            var spouses  = CivilStatusWrapper.ToSpouses(null, civilStates, cpr2UuidFunc);
            var partners = CivilStatusWrapper.ToRegisteredPartners(null, civilStates, cpr2UuidFunc);

            // Now fill the return object
            return(new RelationListeType()
            {
                Aegtefaelle = spouses,
                RegistreretPartner = partners,
                Fader = FromLatestRegistration <ParentsInformationType>().ToFather(cpr2UuidFunc),
                Moder = FromLatestRegistration <ParentsInformationType>().ToMother(cpr2UuidFunc),
                Boern = ChildType.ToPersonFlerRelationType(LatestRegistration.Child, cpr2UuidFunc),
                RetligHandleevneVaergemaalsindehaver = ToRetligHandleevneVaergemaalsindehaver(cpr2UuidFunc),
                Foraeldremyndighedsindehaver = ToForaeldremyndighedsindehaver(cpr2UuidFunc),
                Bopaelssamling = null,
                ErstatningAf = ToErstatningAf(cpr2UuidFunc),
                ErstatningFor = null,
                Foraeldremyndighedsboern = null,
                LokalUdvidelse = null,
                RetligHandleevneVaergeForPersonen = null
            });
        }
            public void ToPersonRelationTypeArray_DeadWithPnr_NotEmpty(
                [ValueSource(typeof(Utilities), "AlphabetChars")] char deadCivilStatus
                )
            {
                var result = IndividualResponseType.ParseBatch(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE);
                var f      = result.Where(r => r.CurrentCivilStatus.CivilStatusCode == 'D' || r.HistoricalCivilStatus.Where(c => c.CivilStatusCode == 'D').Count() > 0).ToArray();
                var civil  = new CurrentCivilStatusType()
                {
                    CivilStatusCode = deadCivilStatus, CivilStatusStartDate = DateTime.Today, PNR = Utilities.RandomCprNumberString(), SpousePNR = Utilities.RandomCprNumberString()
                };
                var ret1 = CivilStatusWrapper.ToPersonRelationTypeArray(civil, null, pnr => Guid.NewGuid(),
                                                                        Utilities.RandomSingleChar(Utilities.AlphabetChars, deadCivilStatus),
                                                                        Utilities.RandomSingleChar(Utilities.AlphabetChars, deadCivilStatus),
                                                                        Utilities.RandomSingleChar(Utilities.AlphabetChars, deadCivilStatus),
                                                                        deadCivilStatus,
                                                                        false
                                                                        );
                var ret2 = CivilStatusWrapper.ToPersonRelationTypeArray(civil, null, pnr => Guid.NewGuid(),
                                                                        Utilities.RandomSingleChar(Utilities.AlphabetChars, deadCivilStatus),
                                                                        Utilities.RandomSingleChar(Utilities.AlphabetChars, deadCivilStatus),
                                                                        Utilities.RandomSingleChar(Utilities.AlphabetChars, deadCivilStatus),
                                                                        deadCivilStatus,
                                                                        true);

                Assert.AreEqual(1, ret1.Length + ret2.Length);
            }
            public void ToCivilStatusType_G_Married()
            {
                var w = new CivilStatusWrapper(new CivilStatusStub()
                {
                    CivilStatusCode = 'G'
                });
                var ret = w.ToCivilStatusType(null);

                Assert.AreEqual(CivilStatusKodeType.Gift, ret.CivilStatusKode);
            }
            public void ToCivilStatusType_Normal_NotNull()
            {
                var w = new CivilStatusWrapper(new CivilStatusStub()
                {
                    CivilStatusCode = 'U'
                });
                var ret = w.ToCivilStatusType(null);

                Assert.NotNull(ret);
            }
        public void PersonRelationType_Normal_CorrectUuid(
            [ValueSource("RandomCprNumbers5")] decimal spouseCprNumber)
        {
            var civilStatus = new CivilStatusStub()
            {
                SpousePNR = spouseCprNumber
            };
            var result = new CivilStatusWrapper(civilStatus).ToPersonRelationType(UuidMap.CprStringToUuid);

            Assert.AreEqual(UuidMap.CprToUuid(spouseCprNumber).ToString(), result.ReferenceID.Item);
        }
Exemplo n.º 6
0
        public RelationListeType ToRelationListeType(Func <string, Guid> cpr2uuidConverter, DPRDataContext dataContext)
        {
            Func <decimal, Guid> cpr2uuidFunc = (cpr) => cpr2uuidConverter(cpr.ToPnrDecimalString());

            var ret = new RelationListeType();
            // Now fill the relations
            var fatherPnr = Utilities.ToParentPnr(this.PersonTotal.FatherPersonalOrBirthdate);

            if (fatherPnr.HasValue)
            {
                ret.Fader = new PersonRelationType[]
                {
                    PersonRelationType.Create(
                        cpr2uuidFunc(fatherPnr.Value),
                        null,
                        null
                        )
                };
            }

            var motherPnr = Utilities.ToParentPnr(this.PersonTotal.MotherPersonalOrBirthDate);

            if (motherPnr.HasValue)
            {
                ret.Moder = new PersonRelationType[]
                {
                    PersonRelationType.Create
                        (cpr2uuidFunc(motherPnr.Value),
                        null,
                        null
                        )
                };
            }

            // Fill children (including adults)
            ret.Boern = Child.ToPersonFlerRelationTypeArray(Children, cpr2uuidFunc);

            // TODO : Fill custody children
            ret.Foraeldremyndighedsboern = null;

            // Normal spouse(s)
            ret.Aegtefaelle = CivilStatusWrapper.ToSpouses(null, this.CivilStatesAsInterface, cpr2uuidConverter);

            // Registered partner(s)
            ret.RegistreretPartner = CivilStatusWrapper.ToRegisteredPartners(null, this.CivilStatesAsInterface, cpr2uuidConverter);

            //TODO: Has legal authority on
            ret.RetligHandleevneVaergeForPersonen = null;

            //TODO: People who have legal authority on this person
            ret.Foraeldremyndighedsindehaver = null;

            return(ret);
        }
            public void ToCivilStatusType_NoSeparation_StatusDate(
                [Values('D', 'E', 'F', 'G', 'L', 'O', 'P', 'U')] char maritalStatus)
            {
                var status = new CivilStatusWrapper(new CurrentCivilStatusType()
                {
                    CivilStatusStartDate = DateTime.Today, CivilStatusStartDateUncertainty = ' ', CivilStatusCode = maritalStatus
                });
                var ret = status.ToCivilStatusType(null);

                Assert.AreEqual(DateTime.Today, ret.TilstandVirkning.FraTidspunkt.ToDateTime());
            }
        public void PersonRelationType_Normal_EmptyComment(
            [ValueSource("RandomCprNumbers5")] decimal spouseCprNumber)
        {
            var civilStatus = new CivilStatusStub()
            {
                SpousePNR = spouseCprNumber
            };
            var result = new CivilStatusWrapper(civilStatus).ToPersonRelationType(UuidMap.CprStringToUuid);

            Assert.IsNullOrEmpty(result.CommentText);
        }
        public void ToToPersonRelationTypeArray_NoSpouse_ReturnsEmpty(
            [ValueSource("AllMaritalStates")] char maritalStatus)
        {
            var civilStates = AllMaritalStates.Select(c => new CivilStatusStub()
            {
                SpousePNR = 0, MaritalStatus = c
            } as CivilStatus).ToArray();
            var result = CivilStatusWrapper.ToPersonRelationTypeArray(null, civilStates, UuidMap.CprStringToUuid, maritalStatus, maritalStatus, maritalStatus, maritalStatus, false);

            Assert.AreEqual(0, result.Length);
        }
            public void ToPersonRelationTypeArray_UnMarried_CorrectEndDate(
                [ValueSource(typeof(Utilities), "AlphabetChars")] char endedCivilStatus
                )
            {
                var civil = new CurrentCivilStatusType()
                {
                    CivilStatusCode = endedCivilStatus, CivilStatusStartDate = DateTime.Today, SpousePNR = Utilities.RandomCprNumberString()
                };
                var ret = CivilStatusWrapper.ToPersonRelationTypeArray(civil, null, pnr => Guid.NewGuid(), Utilities.RandomSingleChar(Utilities.AlphabetChars, endedCivilStatus), endedCivilStatus, Utilities.RandomSingleChar(Utilities.AlphabetChars, endedCivilStatus), endedCivilStatus, false);

                Assert.AreEqual(DateTime.Today, ret[0].Virkning.TilTidspunkt.ToDateTime());
            }
            public void ToCivilStatusType_GwithSeparation_Separated()
            {
                var w = new CivilStatusWrapper(new CivilStatusStub()
                {
                    CivilStatusCode = 'G'
                });
                var ret = w.ToCivilStatusType(new SeparationStub()
                {
                });

                Assert.AreEqual(CivilStatusKodeType.Separeret, ret.CivilStatusKode);
            }
        public void PersonRelationType_StartDateOnly_CorrectEffectStartDate(
            [ValueSource("RandomDecimalDates5")] decimal startDate,
            [Values('U', 'G', 'F', 'D', 'E', 'P', 'O', 'L', 'u', 'g', 'f', 'd', 'e', 'p', 'o', 'l')] char maritalStatus)
        {
            var civilStatus = new CivilStatusStub()
            {
                SpousePNR = Utilities.RandomCprNumber(), MaritalStatus = maritalStatus, MaritalStatusDate = startDate, MaritalEndDate = null
            };
            var result = new CivilStatusWrapper(civilStatus).ToPersonRelationType(UuidMap.CprStringToUuid);

            Assert.AreEqual(Providers.DPR.Utilities.DateFromDecimal(startDate), result.Virkning.FraTidspunkt.ToDateTime().Value);
        }
            public void ToPersonRelationTypeArray_DeadNoPnr_Empty(
                [ValueSource(typeof(Utilities), "AlphabetChars")] char deadCivilStatus
                )
            {
                var civil = new CurrentCivilStatusType()
                {
                    CivilStatusCode = deadCivilStatus, CivilStatusStartDate = DateTime.Today
                };
                var ret = CivilStatusWrapper.ToPersonRelationTypeArray(civil, null, pnr => Guid.NewGuid(), Utilities.RandomSingleChar(Utilities.AlphabetChars, deadCivilStatus), Utilities.RandomSingleChar(Utilities.AlphabetChars, deadCivilStatus), Utilities.RandomSingleChar(Utilities.AlphabetChars, deadCivilStatus), deadCivilStatus, false);

                Assert.IsEmpty(ret);
            }
            public void ToSpouses_InvalidPNR_EmptyArray(
                [Values('U', 'G', 'F', 'E', 'P', 'O', 'L', 'D')] char maritalStatus,
                [Values(1, 20, 130, 12345678)] decimal pnr)
            {
                var civil = new CurrentCivilStatusType()
                {
                    CivilStatusCode = maritalStatus, PNR = Converters.DecimalToString(pnr, 10)
                };
                var ret = CivilStatusWrapper.ToSpouses(civil, null, cpr => Guid.NewGuid());

                Assert.IsEmpty(ret);
            }
        public void PersonRelationType_StartDateOnly_NullEffectStart(
            [ValueSource("RandomDecimalDates5")] decimal endDate,
            [Values('U', 'G', 'F', 'D', 'E', 'P', 'O', 'L', 'u', 'g', 'f', 'd', 'e', 'p', 'o', 'l')] char maritalStatus)
        {
            var civilStatus = new CivilStatusStub()
            {
                SpousePNR = Utilities.RandomCprNumber(), MaritalStatus = maritalStatus, MaritalStatusDate = null, MaritalEndDate = endDate
            };
            var result = new CivilStatusWrapper(civilStatus).ToPersonRelationType(UuidMap.CprStringToUuid);

            Assert.Null(result.Virkning.FraTidspunkt.ToDateTime());
        }
        public void ToToPersonRelationTypeArray_CorrectStatus_Returns2(
            [ValueSource("AllMaritalStates")] char maritalStatus)
        {
            var civilStates = AllMaritalStates.Select(c => new CivilStatusStub()
            {
                SpousePNR = Utilities.RandomCprNumber(), MaritalStatus = c
            } as CivilStatus).ToArray();
            var result = CivilStatusWrapper.ToPersonRelationTypeArray(null, civilStates, UuidMap.CprStringToUuid, maritalStatus, maritalStatus, maritalStatus, maritalStatus, false);

            // 2 are expected because of upper and lower cases
            Assert.AreEqual(2, result.Length);
        }
            public void ToPersonRelationTypeArray_UnMarried_NullStartDate(
                [ValueSource(typeof(Utilities), "AlphabetChars")] char endedCivilStatus,
                [Values(true, false)] bool sameGenderForDead
                )
            {
                var civil = new CurrentCivilStatusType()
                {
                    CivilStatusCode = endedCivilStatus, CivilStatusStartDate = DateTime.Today, SpousePNR = Utilities.RandomCprNumberString()
                };
                var ret = CivilStatusWrapper.ToPersonRelationTypeArray(civil, null, pnr => Guid.NewGuid(), Utilities.RandomSingleChar(Utilities.AlphabetChars, endedCivilStatus), endedCivilStatus, Utilities.RandomSingleChar(Utilities.AlphabetChars, endedCivilStatus), endedCivilStatus, sameGenderForDead);

                Assert.Null(ret[0].Virkning.FraTidspunkt.ToDateTime());
            }
            public void ToCivilStatusType_OtherThanMarriedWithSeparation_StatusDate(
                [Values('D', 'E', 'F', 'L', 'O', 'U')] char maritalStatus)
            {
                var status = new CivilStatusWrapper(new CurrentCivilStatusType()
                {
                    CivilStatusStartDate = DateTime.Today.AddDays(-1), CivilStatusStartDateUncertainty = ' ', CivilStatusCode = maritalStatus
                });
                var sep = new CurrentSeparationType()
                {
                    SeparationStartDate = DateTime.Today, SeparationStartDateUncertainty = ' '
                };
                var ret = status.ToCivilStatusType(sep);

                Assert.AreEqual(status.ToCivilStatusDate(), ret.TilstandVirkning.FraTidspunkt.ToDateTime());
            }
 public void ToToPersonRelationTypeArray_Null_ThrowsException()
 {
     CivilStatusWrapper.ToPersonRelationTypeArray(null, null, UuidMap.CprStringToUuid, 'U', 'G', 'W', 'D', false);
 }
 public PersonRelationType[] ToSpouses(Func <string, Guid> cpr2uuidFunc)
 {
     return(CivilStatusWrapper.ToSpouses(this.CurrentCivilStatus, this.HistoricalCivilStatusAsInterface, cpr2uuidFunc));
 }