public override string[] LoadCprNumbers()
 {
     using (var dataContext = new DPRDataContext(OtherConnectionString))
     {
         return(dataContext.PersonTotals.OrderBy(pt => pt.PNR).Select(pt => pt.PNR.ToString()).ToArray());
     }
 }
Exemplo n.º 2
0
 public override string[] LoadCprNumbers()
 {
     using (var dataContext = new DPRDataContext(OtherConnectionString))
     {
         return(dataContext.PersonTotals.Select(t => t.PNR).ToArray().Select(pnr => pnr.ToPnrDecimalString()).ToArray());
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// Ensures that the DPR database contains the given person
        /// </summary>
        /// <param name="cprNumber"></param>
        protected void EnsurePersonDataExists(string cprNumber)
        {
            if (!this.DisableDiversion)
            {
                decimal cprNum = Convert.ToDecimal(cprNumber);
                using (DPRDataContext dataContext = new DPRDataContext(ConnectionString))
                {
                    var exists = (from personTotal in dataContext.PersonTotals
                                  select personTotal.PNR).Contains(cprNum);

                    if (exists)
                    {
                        Engine.Local.Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "EnsurePersonDataExists", string.Format("PNR {0} Exists in DPR, DPR Diversion not called", cprNumber), null, null);
                    }
                    else
                    {
                        Engine.Local.Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "EnsurePersonDataExists", string.Format("Calling DPR Diversion : {0}", cprNumber), null, null);
                        CallDiversion(InquiryType.DataUpdatedAutomaticallyFromCpr, DetailType.ExtendedData, cprNumber);
                    }
                }
            }
            else
            {
                Engine.Local.Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "EnsurePersonDataExists", string.Format("DPR Diversion is disabled: {0}", cprNumber), null, null);
            }
        }
Exemplo n.º 4
0
 public void ToRegistreingType1_NoErrors(decimal pnr)
 {
     using (var dataContext = new DPRDataContext(ConnectionString))
     {
         var pInfo = PersonInfo.GetPersonInfo(dataContext, pnr);
         pInfo.ToRelationListeType(GetUuid, dataContext);
     }
 }
Exemplo n.º 5
0
 public override void ProcessPerson(string pnr)
 {
     using (var dataContext = new DPRDataContext(OtherConnectionString))
     {
         {
             var db  = PersonInfo.GetPersonInfo(dataContext, decimal.Parse(pnr));
             var ret = db.ToRegisteringType1(cpr2uuidFunc, dataContext);
         }
     }
 }
Exemplo n.º 6
0
        public static PersonInfo GetPersonInfo(DPRDataContext dataContext, decimal pnr)
        {
            var personTotal = dataContext.PersonTotals.Where(pt => pt.PNR == pnr).FirstOrDefault();

            if (personTotal != null)
            {
                return(personTotal.ToPersonInfo());
            }
            return(null);
        }
Exemplo n.º 7
0
 public override string[] LoadCprNumbers()
 {
     using (DPRDataContext dataContext = new DPRDataContext(OtherConnectionString))
     {
         var    all = dataContext.PersonTotals.Select(t => t.PNR).ToArray().Select(p => p.ToPnrDecimalString()).ToList();
         Random r   = new Random();
         var    ret = new List <string>();
         for (int i = 0; i < 50; i++)
         {
             int index = r.Next(0, all.Count);
             ret.Add(all[index]);
             all.RemoveAt(index);
         }
         return(ret.ToArray());
     }
 }
        public void GetPersonInfo_Normal_EqualsPersonInfoExpression(decimal pnr)
        {
            LogText("sarted");
            using (var dataContext = new DPRDataContext(OtherConnectionString))
            {
                // UUID mapping
                var map = new Dictionary <string, Guid>();
                Func <string, Guid> func = (string cpr) =>
                {
                    if (!map.ContainsKey(cpr))
                    {
                        map[cpr] = Guid.NewGuid();
                    }
                    return(map[cpr]);
                };

                var simplifiedPersonInfo = PersonInfo.GetPersonInfo(dataContext, pnr);
                LogText("GetPersonInfo()");
                Assert.NotNull(simplifiedPersonInfo, "simplifiedPersonInfo");
                LogText("Assert");
                var simplifiedPersonRegistration = simplifiedPersonInfo.ToRegisteringType1(func, dataContext);
                LogText("Converted");
                Assert.NotNull(simplifiedPersonRegistration, "simplifiedPersonRegistration");
                LogText("Assert");
                var simplifiedXml = CprBroker.Utilities.Strings.SerializeObject(simplifiedPersonRegistration);
                LogText("Serialization");
                WriteObject(pnr.ToDecimalString(), simplifiedXml);
                LogText("WriteToFile");

                var expressionPersonInfo = PersonInfo.PersonInfoExpression.Compile()(dataContext).Where(pi => pi.PersonTotal.PNR == pnr).FirstOrDefault();
                LogText("Expression retrieval");
                if (expressionPersonInfo != null)
                {
                    var expressionPersonRegistration = expressionPersonInfo.ToRegisteringType1(func, dataContext);
                    LogText("Conversion");
                    Assert.NotNull(expressionPersonRegistration, "expressionPersonRegistration");
                    LogText("Assert");
                    var expressionXml = CprBroker.Utilities.Strings.SerializeObject(expressionPersonRegistration);
                    LogText("Serialization");
                    WriteObject(pnr.ToDecimalString() + "-expr", expressionXml);
                    LogText("WriteToFile");
                    Assert.AreEqual(expressionXml, simplifiedXml);
                    LogText("Assert");
                }
            }
            LogText("Done");
        }
        public decimal[] AllCprNumbers()
        {
            int maxCount = 100;

            using (DPRDataContext dataContext = new DPRDataContext(ConnectionString()))
            {
                var all = new List <decimal>(dataContext.PersonTotals.Select(t => t.PNR).ToArray());
                var r   = new Random();
                var ret = new List <decimal>();
                for (int i = 0; i < maxCount; i++)
                {
                    int index = r.Next(0, all.Count);
                    ret.Add(all[index]);
                    all.RemoveAt(index);
                }
                return(ret.OrderBy(pnr => pnr).ToArray());
            }
        }
        public override void ProcessPerson(string pnr)
        {
            var decimalPnr = decimal.Parse(pnr);

            using (DPRDataContext dataContext = new DPRDataContext(OtherConnectionString))
            {
                var expressionPersonInfo = PersonInfo.GetPersonInfo(dataContext, decimalPnr);
                // UUID mapping
                var map = new Dictionary <string, Guid>();
                Func <string, Guid> func = (string cpr) =>
                {
                    if (!map.ContainsKey(cpr))
                    {
                        map[cpr] = Guid.NewGuid();
                    }
                    return(map[cpr]);
                };
                var xmlObj = expressionPersonInfo.ToRegisteringType1(func, dataContext);
                WriteObject(pnr, xmlObj);
            }
        }
Exemplo n.º 11
0
        public RegistreringType1 Read(PersonIdentifier uuid, LaesInputType input, Func <string, Guid> cpr2uuidFunc, out QualityLevel?ql)
        {
            CprBroker.Schemas.Part.RegistreringType1 ret = null;
            if (IPartPerCallDataProviderHelper.CanCallOnline(uuid.CprNumber))
            {
                EnsurePersonDataExists(uuid.CprNumber);
            }

            using (var dataContext = new DPRDataContext(this.ConnectionString))
            {
                var db = PersonInfo.GetPersonInfo(dataContext, decimal.Parse(uuid.CprNumber));
                if (db != null)
                {
                    UuidCache cache = new UuidCache();
                    cache.FillCache(db.RelatedPnrs);

                    ret = db.ToRegisteringType1(cache.GetUuid, dataContext);
                }
            }
            ql = QualityLevel.DataProvider;
            return(ret);
        }
Exemplo n.º 12
0
        public override string[] LoadCprNumbers()
        {
            Utilities.UpdateConnectionString(this.BrokerConnectionString);
            BrokerContext.Initialize(this.ApplicationToken, "");
            brokerContext = BrokerContext.Current;

            string[] ret = null;

            if (string.IsNullOrEmpty(SourceFile))
            {
                using (var dataContext = new DPRDataContext(OtherConnectionString))
                {
                    ret = dataContext.PersonTotals.Select(t => t.PNR).ToArray().Select(pnr => pnr.ToPnrDecimalString()).ToArray();
                }
            }
            else
            {
                ret = Utilities.LoadCprNumbersOneByOne(SourceFile);
            }

            UuidCache.PreLoadExistingMappings();
            return(ret);
        }
Exemplo n.º 13
0
        public override void ProcessPerson(string pnr)
        {
            DateTime startTime  = DateTime.Now;
            decimal  decimalPnr = decimal.Parse(pnr);

            using (DPRDataContext dataContext = new DPRDataContext(OtherConnectionString))
            {
                PersonInfo personInfo = null;
                if (UseSimple)
                {
                    Log("Simple");
                    personInfo  = PersonInfo.GetPersonInfo(dataContext, decimalPnr);
                    SimpleTime += DateTime.Now - startTime;
                }
                else
                {
                    Log("Expression");
                    personInfo      = PersonInfo.PersonInfoExpression.Compile()(dataContext).Where(pi => pi.PersonTotal.PNR == decimalPnr).FirstOrDefault();
                    ExpressionTime += DateTime.Now - startTime;
                }
            }
            UseSimple = !UseSimple;
        }
Exemplo n.º 14
0
 public override void ProcessPerson(string pnr)
 {
     BrokerContext.Current = brokerContext;
     try
     {
         CprBroker.Engine.Local.Admin.LogFormattedSuccess("Converting person <{0}> from DPR", pnr);
         using (var dprDataContext = new DPRDataContext(OtherConnectionString))
         {
             var pId = new PersonIdentifier()
             {
                 CprNumber = pnr, UUID = UuidCache.GetUuid(pnr)
             };
             var personInfo = PersonInfo.GetPersonInfo(dprDataContext, decimal.Parse(pnr));
             var reg        = personInfo.ToRegisteringType1(UuidCache.GetUuid, dprDataContext);
             UpdateDatabase.UpdatePersonRegistration(pId, reg);
         }
     }
     catch (Exception ex)
     {
         Admin.LogException(ex);
         throw ex;
     }
 }
        public void PersonInfoExpressionEqualsGetPersonInfo(
            [ValueSource("AllCprNumbers")] decimal cprNumber)
        {
            var prov        = new DprDatabaseDataProviderStub();
            var dataContext = new DPRDataContext(ConnectionString());

            DateTime effectDate = DateTime.Today;

            var expressionDb =
                (
                    from personInfo in PersonInfo.PersonInfoExpression.Compile()(dataContext)
                    where personInfo.PersonTotal.PNR == cprNumber
                    select personInfo
                ).First();
            var expressionObj = expressionDb.ToRegisteringType1(UuidMap.CprStringToUuid, dataContext);
            var expressionXml = CprBroker.Utilities.Strings.SerializeObject(expressionObj);

            var methodDb  = PersonInfo.GetPersonInfo(dataContext, cprNumber);
            var methodObj = methodDb.ToRegisteringType1(UuidMap.CprStringToUuid, dataContext);
            var methodXml = CprBroker.Utilities.Strings.SerializeObject(methodObj);

            Assert.AreEqual(expressionXml, methodXml);
        }
Exemplo n.º 16
0
        public bool PutSubscription(PersonIdentifier personIdentifier)
        {
            if (!this.DisableDiversion)
            {
                if (IPartPerCallDataProviderHelper.CanCallOnline(personIdentifier.CprNumber))
                {
                    decimal cprNum = Convert.ToDecimal(personIdentifier.CprNumber);

                    using (DPRDataContext dataContext = new DPRDataContext(ConnectionString))
                    {
                        var exists = (from personTotal in dataContext.PersonTotals
                                      select personTotal.PNR).Contains(cprNum);

                        if (exists)
                        {
                            Engine.Local.Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "PutSubscription", string.Format("PNR {0} Exists in DPR, DPR Diversion not called", personIdentifier.CprNumber), null, null);
                        }
                        else
                        {
                            Engine.Local.Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "PutSubscription", string.Format("Calling DPR Diversion : {0}", personIdentifier.CprNumber), null, null);
                            CallDiversion(InquiryType.DataUpdatedAutomaticallyFromCpr, DetailType.MasterData, personIdentifier.CprNumber);
                        }
                        return(true);
                    }
                }
                else
                {
                    Engine.Local.Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "PutSubscription", string.Format("Invalid PNR: {0}", personIdentifier.CprNumber), null, null);
                    return(false);
                }
            }
            else
            {
                Engine.Local.Admin.AddNewLog(System.Diagnostics.TraceEventType.Information, "PutSubscription", string.Format("DPR Diversion is disabled: {0}", personIdentifier.CprNumber), null, null);
                return(false);
            }
        }
Exemplo n.º 17
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);
        }
Exemplo n.º 18
0
        public RegistreringType1 ToRegisteringType1(Func <string, Guid> cpr2uuidConverter, DPRDataContext dataContext)
        {
            RegistreringType1 ret = new RegistreringType1()
            {
                AttributListe = ToAttributListeType(),
                TilstandListe = ToTilstandListeType(),
                RelationListe = ToRelationListeType(cpr2uuidConverter, dataContext),

                AktoerRef      = Constants.Actor,
                CommentText    = Constants.CommentText,
                LivscyklusKode = LivscyklusKodeType.Rettet,
                Tidspunkt      = TidspunktType.Create(this.RegistrationDate),
                Virkning       = null
            };

            ret.CalculateVirkning();
            return(ret);
        }