Example #1
0
        private bool importCustomers(FuncClasses.FastXML bdb)
        {
            var list = bdb.GetAllCustomers(user);
            var savingList = new List<Customers.Customer>();
            foreach (var cusprev in list)
            {
                var importedCustomer = new Core.Customers.Customer();

                //Load full user
                var customer = bdb.GetCustomer(cusprev.CustomerID, user);

                // Payment methode
                if(customer.PaymentMethode != null)
                {
                    if (!String.IsNullOrEmpty(customer.PaymentMethode.Name))
                    {
                        var payment = new Utils.PaymentMethode() { Name = customer.PaymentMethode.Name, Text = customer.PaymentMethode.Text, Discount = new Utils.Percentage() { PercentageString = customer.PaymentMethode.ReductionString } };
                        Database.SaveOrUpdatePaymentMethode(payment);
                        importedCustomer.DefaultPaymentMethode = payment;
                    }   
                }

                // Pricegroup
                switch(customer.Preisgruppe)
                {
                    case FuncClasses.Preisgruppe.Preisgruppe1:
                        importedCustomer.Pricegroup = 0;
                        break;
                    case FuncClasses.Preisgruppe.Preisgruppe2:
                        importedCustomer.Pricegroup = 1;
                        break;
                    case FuncClasses.Preisgruppe.Preisgruppe3:
                        importedCustomer.Pricegroup = 2;
                        break;
                }

                // ID
                importedCustomer.CustomerID = customer.CustomerID;

                // MainAddress
                var MainAddress = new Utils.Address();
                MainAddress.Addition = customer.Address.Addition;
                MainAddress.City = customer.Address.City;
                MainAddress.CompanyName = customer.Address.CompanyName;
                MainAddress.Country = customer.Address.Country;
                MainAddress.Forename = customer.Address.Forname;
                MainAddress.Surname = customer.Address.Surname;
                MainAddress.Title = customer.Address.Title;
                MainAddress.Zip = customer.Address.ZipCode;
                MainAddress.Street = customer.Address.Street;
                MainAddress.HouseNumber = customer.Address.No;
                MainAddress.Salutation = customer.Address.Salutation;
                importedCustomer.MainAddress = MainAddress;

                // Contact
                var Contact = new Utils.Contact();
                Contact.Facebook = customer.Contact.Facebook;
                Contact.Fax1 = customer.Contact.Telefax1;
                Contact.Fax2 = customer.Contact.Telefax2;
                Contact.Mail1 = customer.Contact.Mail1;
                Contact.Mail2 = customer.Contact.Mail2;
                Contact.Mobile1 = customer.Contact.Mobil1;
                Contact.Mobile2 = customer.Contact.Mobil2;
                Contact.Phone1 = customer.Contact.Telefon1;
                Contact.Phone2 = customer.Contact.Telefon2;
                Contact.Twitter = customer.Contact.Twitter;
                importedCustomer.Contact = Contact;

                // Additional adresses
                foreach(var address in customer.Addresses)
                {
                    var eAddress = new Utils.EAddress();
                    eAddress.AddressDescription = address.AddressDescription;
                    eAddress.Addition = address.Addition;
                    eAddress.City = address.City;
                    eAddress.CompanyName = address.CompanyName;
                    eAddress.Country = address.Country;
                    eAddress.Forename = address.Forname;
                    eAddress.Surname = address.Surname;
                    eAddress.Title = address.Title;
                    eAddress.Zip = address.ZipCode;
                    eAddress.Street = address.Street;
                    eAddress.HouseNumber = address.No;
                    eAddress.Salutation = address.Salutation;
                    importedCustomer.ExtraAddresses.Add(eAddress);
                }
                savingList.Add(importedCustomer);
            }
            Database.SaveOrUpdateCustomer(savingList);
            return true;
        }
        private IEnumerable<Customers.PreviewCustomer> GetAllCustomers()
        {
            var sw = new Performance.Stopwatch("GetAllCustomers");
            sw.Start();

            logger.Debug("Start getting customer list");
            var templist = new ObservableCollection<Customers.PreviewCustomer>();
            if (!CustomerDB.Elements("Customer").Any())
                return templist;

            var itemlist = CustomerDB.Elements("Customer");
            foreach (XElement item in itemlist)
            {
                try
                {
                    dynamic tempitem = new Customers.PreviewCustomer();
                    tempitem.CustomerID = item.Element("CustomerID").Value;
                    tempitem.DisplayName = item.Element("DisplayName").Value;
                    var address = new Utils.Address();
                    address.ParseFromXElement(item.Element("MainAddress").Element(address.XElementName));
                    tempitem.Address = address.OneLineString;
                    templist.Add(tempitem);
                }
                catch (Exception e) { logger.Fatal("Error parsing the in 'GetAllCustomers': " + item.ToString(), e); }
            }
            sw.Stop();
            logger.Info(sw.Result(templist.Count));

            return templist;
        }