Exemplo n.º 1
0
        public bool GenererNySimulering(int antalSimuleringsmaaneder, int brugerIndex)
        {
            List <Transaktion> transaktioner = new List <Transaktion>();

            try
            {
                EconomicUdtraek   economicUdtraek = HentAbonnementsrelateretData();
                List <Abonnement> abonnementer    = ForbindData(economicUdtraek);
                transaktioner = GenererTransaktioner(abonnementer, antalSimuleringsmaaneder, brugerIndex);
                string tidsstempel = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

                MySQL mySql = new MySQL(_economicAftalenummer);
                mySql.KlargoerTabeller(tidsstempel);
                mySql.IndsaetTransaktioner(transaktioner);
                mySql.IndsaetRelationeltData(economicUdtraek);
                mySql.OpretDatapunktslister();
            }
            catch (Exception e)
            {
                Debug.WriteLine("Exception: " + e.Message);
                return(false);
            }
            return(true);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Forbinder dataudtræk fra e-conomic. Returnerer en liste af abonnementer med linkede varelinjer og abonnenter.
        /// </summary>
        /// <returns></returns>
        private List <Abonnement> ForbindData(EconomicUdtraek economicDataudtraek)
        {
            // Konverter e-conomic dataobjekter til "egne" dataobjekter. Alt data lægges i opslag og køres kun igennem een gang ved konvertering.
            Dictionary <int, Abonnement> abonnementopslag = new Dictionary <int, Abonnement>();
            Dictionary <int, Abonnent>   abonnentopslag   = new Dictionary <int, Abonnent>();
            Dictionary <int, Afdeling>   afdelingsopslag  = new Dictionary <int, Afdeling>();
            Dictionary <string, Debitor> debitoropslag    = new Dictionary <string, Debitor>();
            Dictionary <string, Vare>    produktopslag    = new Dictionary <string, Vare>();
            Dictionary <int, Varelinje>  varelinjeopslag  = new Dictionary <int, Varelinje>();

            foreach (var abonnementData in economicDataudtraek.Abonnementer)
            {
                abonnementopslag.Add(abonnementData.Id, new Abonnement(abonnementData.Id, abonnementData.Name, abonnementData.Number, abonnementData.CalendarYearBasis, abonnementData.SubscriptionInterval.ToString(), abonnementData.Collection.ToString()));
            }

            foreach (var afdelingsData in economicDataudtraek.Afdelinger)
            {
                afdelingsopslag.Add(afdelingsData.Number, new Afdeling(afdelingsData.Number, afdelingsData.Name));
            }

            foreach (var debitorData in economicDataudtraek.Debitorer)
            {
                if (!debitoropslag.ContainsKey(debitorData.Number))
                {
                    debitoropslag.Add(debitorData.Number, new Debitor(debitorData.Address, debitorData.Balance, debitorData.CINumber, debitorData.City, debitorData.Country, debitorData.CreditMaximum, debitorData.Ean, debitorData.Email, debitorData.Name, debitorData.Number, debitorData.PostalCode, debitorData.TelephoneAndFaxNumber));
                }
            }

            foreach (var abonnentData in economicDataudtraek.Abonnenter)
            {
                Abonnent abonnent = new Abonnent(abonnentData.SubscriberId, debitoropslag[abonnentData.DebtorHandle.Number], abonnentData.DiscountAsPercent, abonnentData.DiscountExpiryDate, abonnentData.EndDate, abonnentData.ExpiryDate, abonnentData.QuantityFactor, abonnentData.PriceIndex, abonnentData.RegisteredDate, abonnentData.SpecialPrice, abonnentData.StartDate);
                abonnentopslag.Add(abonnentData.SubscriberId, abonnent);
                abonnementopslag[abonnentData.SubscriptionHandle.Id].Abonnenter.Add(abonnent);
            }

            foreach (var produktData in economicDataudtraek.Produkter)
            {
                // Evt. afdeling
                Afdeling afdeling = null;
                if (produktData.DepartmentHandle != null)
                {
                    afdeling = afdelingsopslag[produktData.DepartmentHandle.Number];
                }

                if (!produktopslag.ContainsKey(produktData.Handle.Number))
                {
                    produktopslag.Add(produktData.Handle.Number, new Vare(produktData.CostPrice, produktData.Name, produktData.Number, produktData.SalesPrice, produktData.Volume, afdeling));
                }
            }

            foreach (var varelinjeData in economicDataudtraek.Varelinjer)
            {
                //Evt. afdeling
                Afdeling afdeling = null;
                if (varelinjeData.DepartmentHandle != null)
                {
                    afdeling = afdelingsopslag[varelinjeData.DepartmentHandle.Number];
                }

                if (varelinjeData.ProductHandle != null)
                {
                    Varelinje varelinje = new Varelinje(varelinjeData.Id, varelinjeData.Number, (decimal)varelinjeData.Quantity, varelinjeData.SpecialPrice, produktopslag[varelinjeData.ProductHandle.Number], afdeling);
                    abonnementopslag[varelinjeData.Id].Varelinjer.Add(varelinje);

                    if (!varelinjeopslag.ContainsKey(varelinjeData.Id))
                    {
                        varelinjeopslag.Add(varelinjeData.Id, varelinje);
                    }
                }
            }

            return(abonnementopslag.Values.ToList());
        }