private async Task<bool> importCompanies(FuncClasses.FastXML bdb) { foreach (var company in bdb.GetAllCompanys()) { var newCompany = new Models.CompanyInformation(); newCompany.CompanyName = company.CompanyName; newCompany.GenerateNewID(); Database.AddCompany(newCompany); await Database.ChangeCompany(newCompany); var companySettings = new Models.CompanySettings(); companySettings.SalesTaxID = company.TradeID; companySettings.TaxID = company.TaxID; companySettings.MainAddress.CompanyName = company.CompanyName; companySettings.MainAddress.Addition = company.ToAddress().Addition; companySettings.MainAddress.Forename = company.ToAddress().Forname; companySettings.MainAddress.Surname = company.ToAddress().Surname; companySettings.MainAddress.Title = company.ToAddress().Title; companySettings.MainAddress.Salutation = company.ToAddress().Salutation; companySettings.MainAddress.Street = company.ToAddress().Street; companySettings.MainAddress.HouseNumber = company.ToAddress().No; companySettings.MainAddress.Zip = company.ToAddress().ZipCode; companySettings.MainAddress.City = company.ToAddress().City; companySettings.MainAddress.Country = company.ToAddress().Country; await Database.SaveOrUpdateStorageableItem(companySettings); Database.SaveOrUpdateSettings(new Utils.KeyValueStore()); } return true; }
private bool Initialize() { IsFirstLoad = false; AdditionalPreviewParsers = new List<Interfaces.DocumentParser>(); if (String.IsNullOrEmpty(DatabasePath)) DatabasePath = "Data//"; if (!Directory.Exists(DatabasePath)) { try { Directory.CreateDirectory(DatabasePath); } catch (Exception e) { logger.Fatal("Could not create data directory", e); return false; } } if (!File.Exists(DatabasePath + "Settings.xml")) { logger.Debug(DatabasePath + "Settings.xml" + " didn't exist -> First load"); IsFirstLoad = true; return false; } try { CurrentCompany = new Models.CompanyInformation(); CurrentCompany.ParseFromXElement(XElement.Parse(File.ReadAllText(DatabasePath + "Settings.xml")).Element("CurrentCompany").Element(CurrentCompany.XElementName)); } catch (Exception e) { logger.Fatal("Parsing LastCompany failed!", e); return false; } try { //Orders if (!File.Exists(DatabasePath + CurrentCompany.CompanyID + "\\Documents.xml")) using (StreamWriter writer = File.CreateText(DatabasePath + CurrentCompany.CompanyID + "\\Documents.xml")) writer.Write(new XElement(new XElement("Documents")).ToString()); using (StreamReader reader = File.OpenText(DatabasePath + CurrentCompany.CompanyID + "\\Documents.xml")) DocumentDB = XElement.Load(reader); logger.Debug("OrderDB successfully loaded"); } catch (Exception e) { logger.Fatal("Initializing DocumentDB failed!", e); return false; } try { // Articles if (!File.Exists(DatabasePath + CurrentCompany.CompanyID + "\\Articles.xml")) using (StreamWriter writer = File.CreateText(DatabasePath + CurrentCompany.CompanyID + "\\Articles.xml")) writer.Write(new XElement(new XElement("Articles")).ToString()); using (StreamReader reader = File.OpenText(DatabasePath + CurrentCompany.CompanyID + "\\Articles.xml")) ArticleDB = XElement.Load(reader); logger.Debug("ArticleDB successfully loaded"); } catch (Exception e) { logger.Fatal("Initializing ArticleDB failed!", e); return false; } try { // Customers if (!File.Exists(DatabasePath + CurrentCompany.CompanyID + "\\Customers.xml")) using (StreamWriter writer = File.CreateText(DatabasePath + CurrentCompany.CompanyID + "\\Customers.xml")) writer.Write(new XElement(new XElement("Customers")).ToString()); using (StreamReader reader = File.OpenText(DatabasePath + CurrentCompany.CompanyID + "\\Customers.xml")) CustomerDB = XElement.Load(reader); logger.Debug("CustomerDB successfully loaded"); } catch (Exception e) { logger.Fatal("Initializing CustomerDB failed!", e); return false; } try { // Others if (!File.Exists(DatabasePath + CurrentCompany.CompanyID + "\\Others.xml")) using (StreamWriter writer = File.CreateText(DatabasePath + CurrentCompany.CompanyID + "\\Others.xml")) writer.Write(new XElement(new XElement("Settings")).ToString()); using (StreamReader reader = File.OpenText(DatabasePath + CurrentCompany.CompanyID + "\\Others.xml")) SettingsDB = XElement.Load(reader); logger.Debug("SettingsDB successfully loaded"); } catch (Exception e) { logger.Fatal("Initializing SettingsDB failed!", e); return false; } OtherDBs = new List<XElement>(); if (RegisteredAdditionalDBs == null) RegisteredAdditionalDBs = new List<Interfaces.IXMLStorageable>(); else { foreach (var item in RegisteredAdditionalDBs) registerStorageableItem(item, false); } logger.Info("XDatabase connected"); return true; }
private IEnumerable<Models.CompanyInformation> getCompanyList() { logger.Trace("Start getting company list"); XElement CompanySettings; var temp = new ObservableCollection<Models.CompanyInformation>(); foreach (string dir in System.IO.Directory.GetDirectories(DatabasePath)) { logger.Trace("Parsing " + dir + "\\Others.xml"); try { using (StreamReader reader = File.OpenText(dir + "\\Others.xml")) CompanySettings = XElement.Load(reader); } catch (Exception e) { logger.Trace("Error parsing " + dir + "\\Others.xml", e); continue; } var item = new Models.CompanyInformation(); item.ParseFromXElement(CompanySettings.Element(item.XElementName)); try { temp.Add(item); } catch (Exception e) { logger.Trace("Error creating CompanyInformation", e); } } logger.Trace("Finished creating company list with " + temp.Count.ToString() + " items"); return temp; }