예제 #1
0
        public static List <dynamic> CreatListOfWorkAdressPersonInputDTO(List <dynamic> adresssListWork)
        {
            var resListAdress = new List <dynamic>();

            foreach (var adressWork in adresssListWork)
            {
                var workPhone = LoadFromOracle.FindWorkPhone(adressWork.ID);

                var adW = new AdressInputDTO()
                {
                    Personnummer    = adressWork.PERSNR.ToString(),
                    GatuadressInput =
                        new GatuadressInputDTO()
                    {
                        AdressRad1 = adressWork.GADR,
                        Postnummer = adressWork.POSTNR,
                        Stad       = adressWork.ORT
                    },
                    systemId        = $"DB{adressWork.KSTNR}{adressWork.KSTTYP}",
                    uppdateradDatum = DateTime.Now.ToString(DateTimeFormat),
                    uppdateradAv    = "PSE",
                    skapadDatum     = DateTime.Now.ToString(DateTimeFormat),
                    skapadAv        = "PSE",
                    AdressVariant   = adressWork.ADRTYP == "U" ? "Adress Arbete" : "LeveransAdress"
                };
                resListAdress.Add(adW);

                foreach (var phone in workPhone)
                {
                    var adTel = new AdressInputDTO
                    {
                        Personnummer = adressWork.PERSNR.ToString(),
                        TelefonInput = new TelefonInputDTO()
                        {
                            Telefonnummer = phone.TELNR
                        },
                        systemId        = $"DB{phone.KSTNR}{phone.KSTNRKSTTYP}",
                        uppdateradDatum = DateTime.Now.ToString(DateTimeFormat),
                        uppdateradAv    = "PSE",
                        skapadDatum     = DateTime.Now.ToString(DateTimeFormat),
                        skapadAv        = "PSE",
                        AdressVariant   = phone.TELTYP == 10 ? "Telefon Arbete" : "Mobil Arbete"
                    };
                    resListAdress.Add(adTel);
                }
            }


            return(resListAdress);
        }
예제 #2
0
        public static async Task SendDataToResultatenhetServiceByKstnr(IEnumerable <long> kstnrList)
        {
            var resList = new List <ResultatenhetInputDTO>();

            var slitList = Split <long>(kstnrList);

            foreach (var sublist in slitList)
            {
                var subOrganisationsList = LoadFromOracle.FindResultatenheterById(sublist);

                resList.AddRange(from org in subOrganisationsList
                                 where org.UPPL_DATUM != null
                                 select new ResultatenhetInputDTO()
                {
                    OrganisationsId  = "0",
                    KostnadsstalleNr = org.KSTNR,
                    Namn             = org.FNAMN + "  " + org.ENAMN,
                    Typ             = org.KSTTYP,
                    systemId        = $"DB{org.KSTNR}{org.KSTTYP}",
                    uppdateradDatum = DateTime.Now.ToString(DateTimeFormat),
                    uppdateradAv    = "PSE",
                    skapadDatum     = org.UPPL_DATUM.ToString(DateTimeFormat),
                    skapadAv        = "PSE"
                });
            }

            var stopWatch = new Stopwatch();

            stopWatch.Start();

            Console.WriteLine("Start -- SendDataToResultatenhetService " + resList.Count);

            await CallOdlService.Send(resList, "/api/Organisation/resultatenhet");


            stopWatch.Stop();

            var    ts          = stopWatch.Elapsed;
            string elapsedTime = $"{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds / 10:00}";

            Console.WriteLine("SendDataToResultatenhetService");
            Console.WriteLine("Time to save " + resList.ToList().Count() + " Organisation " + elapsedTime);
            Console.WriteLine("End -- SendDataToResultatenhetService");
        }
예제 #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Start");
            var kstnrList = new List <long>();
            //Start Load is based on all active persons/user or how many you chose to load.
            var persons = LoadFromOracle.FindAllActivePersons();

            Console.WriteLine("Start -- Personer " + persons.Count);

            kstnrList.AddRange(persons.Select(org => org.KSTNR).Cast <long>());
            Console.WriteLine("Start -- kstnrList " + kstnrList.Count);
            kstnrList = kstnrList.GroupBy(x => x).Select(g => g.First()).ToList();
            Console.WriteLine("After distinct -- kstnrList " + kstnrList.Count);

            persons = persons.GroupBy(x => x.PERSNR).Select(g => g.First()).ToList();
            Console.WriteLine("After distinct -- Personer " + persons.Count);
            //Tmp solution to avoid oracle limitaions max 999 items IN conditions..
            var persNrSubLists = Split <long>(persons);

            //1.Start save all persons
            SavePerson.SendDataToPersonService(persons).ContinueWith(task =>
            {
                task.Wait();
                foreach (var sublist in persNrSubLists)
                {
                    var subAdresssListHome = LoadFromOracle.FindHomeAdressPerson(sublist) as List <dynamic>;
                    var subAdresssListWork = LoadFromOracle.FindWorkAdressPerson(sublist) as List <dynamic>;

                    //if (subAdresssListWork != null)
                    //    kstnrList.AddRange(subAdresssListWork.Select(org => org.ID).Cast<long>());

                    var adressInputHomeDTOList = SaveAdress.CreatListOHomeAdressPersonInputDTO(subAdresssListHome);
                    var adressInputWorkDTOList = SaveAdress.CreatListOfWorkAdressPersonInputDTO(subAdresssListWork);
                    SaveAdress.SendToOdlPerson(adressInputHomeDTOList);
                    SaveAdress.SendToOdlPerson(adressInputWorkDTOList);

                    //2.Save all org related to the persons
                    SaveResultatenhet.SendDataToResultatenhetServiceByKstnr(kstnrList).ContinueWith(task2 =>
                    {
                        task2.Wait();
                        foreach (var kstnr in kstnrList)
                        {
                            var kstNrAdressList       = LoadFromOracle.FindResultatEnhetAdress(kstnr);
                            var adressInputOrgDTOList = SaveAdress.CreatListOfAdressResultatEnheterInputDTO(kstNrAdressList);

                            SaveAdress.SendToOdlOrg(adressInputOrgDTOList);
                        }
                    });

                    SaveAvtal.AvtalsService(sublist, kstnrList);
                }

                //var kstnrNrSubLists = Split<long>(kstnrList);
                //foreach (var subkstnrList in kstnrNrSubLists)
                //{


                //}
            });



            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }