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; }