Exemplo n.º 1
0
        public override CprBroker.Schemas.Part.RegistreringType1 CreateXmlType(string pnr, PersonRegistration dbReg, Func <string, Guid> cpr2uuidFunc)
        {
            var sourceString = dbReg.SourceObjects.ToString();

            IndividualResponseType individualResponse;

            if (sourceString.StartsWith("<guid>"))
            {
                Console.WriteLine("By Extract: {0}", pnr);
                var extractId = Strings.Deserialize <Guid>(sourceString);
                using (var extractDataContext = new ExtractDataContext(this.BrokerConnectionString))
                {
                    var extractItems = extractDataContext.ExtractItems.Where(ei => ei.PNR == pnr && ei.ExtractId == extractId).ToArray();
                    individualResponse = Extract.GetPersonFromLatestExtract(pnr, extractItems.AsQueryable(), CprBroker.Providers.CPRDirect.Constants.DataObjectMap);
                }
            }
            else
            {
                Console.WriteLine("By TCP: {0}", pnr);
                var responseData = Strings.Deserialize <string>(sourceString);
                individualResponse = new IndividualResponseType()
                {
                    Contents = new string(' ', 28), Data = responseData
                };

                individualResponse.FillFromFixedLengthString(individualResponse.Data, CprBroker.Providers.CPRDirect.Constants.DataObjectMap);
                individualResponse.SourceObject = individualResponse.Data;
            }
            Console.WriteLine("Converting person");
            var reg = individualResponse.ToRegistreringType1(cpr2uuidFunc);

            return(reg);
        }
Exemplo n.º 2
0
        public override void ProcessPerson(string pnr)
        {
            /* Sample person in run "2013 05 27 14_12"
             * - First Egenskab has null start and end dates - shall the first start at birthdate?
             * - Married with unknown spouse PNR
             */

            using (var dataContext = new ExtractDataContext())
            {
                var extractItems = dataContext.ExtractItems.Where(ei => ei.PNR == pnr);
                var grouped      = extractItems.GroupBy(ei => ei.Extract);

                var myOutDir = OutDir + pnr + "\\";
                Directory.CreateDirectory(myOutDir);

                var registrations = new List <RegistreringType1>();
                foreach (var extract in grouped.OrderBy(ex => ex.Key.ExtractDate))
                {
                    var resp = Extract.GetPersonFromLatestExtract(pnr, extract.AsQueryable(), CprBroker.Providers.CPRDirect.Constants.DataObjectMap);
                    var reg  = resp.ToRegistreringType1(GetUuid);
                    registrations.Add(reg);
                    File.WriteAllText(
                        string.Format("{0}{1}.{2}.xml", myOutDir, pnr, reg.Tidspunkt.ToDateTime().Value.ToString("yyyyMMdd HHmm")),
                        CprBroker.Utilities.Strings.SerializeObject(reg)
                        );
                }
                var merged1 = RegistreringType1.Merge(new CprBroker.Schemas.PersonIdentifier()
                {
                    UUID = GetUuid(pnr), CprNumber = pnr
                }, VirkningType.Create(DateTime.MinValue, DateTime.MaxValue), registrations.ToArray());
                File.WriteAllText(
                    string.Format("{0}{1}.All.1.xml", myOutDir, pnr),
                    CprBroker.Utilities.Strings.SerializeObject(merged1)
                    );

                var merged2 = new CPRDirectExtractDataProvider().ReadPeriod(DateTime.MinValue, DateTime.MaxValue, new CprBroker.Schemas.PersonIdentifier()
                {
                    CprNumber = pnr, UUID = GetUuid(pnr)
                }, GetUuid);

                File.WriteAllText(
                    string.Format("{0}{1}.All.2.xml", myOutDir, pnr),
                    CprBroker.Utilities.Strings.SerializeObject(merged2)
                    );

                var effectDate = new DateTime(2013, 5, 1);
                var merged3    = new CPRDirectExtractDataProvider().ReadPeriod(effectDate, effectDate, new CprBroker.Schemas.PersonIdentifier()
                {
                    CprNumber = pnr, UUID = GetUuid(pnr)
                }, GetUuid);

                File.WriteAllText(
                    string.Format("{0}{1}.All.3.xml", myOutDir, pnr),
                    CprBroker.Utilities.Strings.SerializeObject(merged3)
                    );
            }
        }
Exemplo n.º 3
0
        public override string[] LoadCprNumbers()
        {
            Utilities.UpdateConnectionString(this.BrokerConnectionString);
            Console.WriteLine(CprBroker.Config.Properties.Settings.Default.CprBrokerConnectionString);

            if (string.IsNullOrEmpty(SourceFile))
            {
                using (var dataContext = new ExtractDataContext())
                {
                    return(dataContext.ExtractItems.Select(ei => ei.PNR).Distinct().OrderBy(pnr => pnr).ToArray());
                }
            }
            else
            {
                return(Utilities.LoadCprNumbersOneByOne(SourceFile));
            }
        }
Exemplo n.º 4
0
        public static void GetPersons()
        {
            //var result = IndividualResponseType.ParseBatch(Properties.Resources.U12170_P_opgavenr_110901_ADRNVN_FE);
            var count = 1000;
            var pnrs  = new List <string>();

            using (ExtractDataContext dataContext = new ExtractDataContext())
            {
                pnrs = dataContext.ExtractItems.Select(item => item.PNR).Distinct().ToList();
            }
            DateTime start = DateTime.Now;

            for (int i = 0; i < count; i++)
            {
                var index = Utilities.Random.Next(0, pnrs.Count);
                Console.WriteLine(string.Format("Loading <{0}> of <{1}> persons", i + 1, count));
                string pnr = pnrs[index];
                var    db  = ExtractManager.GetPerson(pnr);
                //var oio = db.ToRegistreringType1(cpr => Guid.NewGuid(), DateTime.Today);
            }
            Console.WriteLine(DateTime.Now - start);
            Console.ReadLine();
        }