private void SettingsMenu_FormClosing(object sender, FormClosingEventArgs e) { if (File.Exists(DataFileText.Text)) { if (File.Exists(applicationConfigurationFile)) { if (MainMenuPublic != null) { MainMenuPublic.Xdoc.Element("ConfigFile").Element("ApplicationSettings").Element("DataReferences").Element("CustomerFile").Value = DataFileText.Text; ConfugurationFileLocking.WriteXDocument(MainMenuPublic.Xdoc); } else { StockManagementMenu.Xdoc.Element("ConfigFile").Element("ApplicationSettings").Element("DataReferences").Element("CustomerFile").Value = DataFileText.Text; ConfugurationFileLocking.WriteXDocument(StockManagementMenu.Xdoc); } // TODO: clear } else { ConfugurationFileLocking = new FileLocking(); if (ConfugurationFileLocking.CreateAndLock(applicationConfigurationFile, FileAccess.ReadWrite, FileShare.Read, ref error)) { using (XmlWriter writer = XmlWriter.Create(ConfugurationFileLocking.LockedFile)) { writer.WriteStartDocument(); writer.WriteComment("This file is generated by the program. It contains application settings and all customer data."); writer.WriteStartElement("ConfigFile"); writer.WriteStartElement("ApplicationSettings"); // DataReferences element writer.WriteStartElement("DataReferences"); writer.WriteElementString("CustomerFile", DataFileText.Text); writer.WriteEndElement(); // DataReferences element writer.WriteStartElement("GeneralSettings"); writer.WriteElementString("CurrentUser", Environment.UserName); switch (LanguageHolder.Text) { case "English": case "Englisch": { writer.WriteElementString("Language", "English"); } break; case "German": case "Deutsch": { writer.WriteElementString("Language", "German"); } break; default: { // Placeholder - will never be reached // TODO: Create a protocol just to catch that case } break; } writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteStartElement("CustomerData"); writer.WriteEndElement(); writer.WriteEndDocument(); } // Asign the just created filestream to the variable in the main menu, do the same with the XDocument MainMenuPublic.ConfugurationFileLocking = ConfugurationFileLocking; MainMenuPublic.Xdoc = XDocument.Load(ConfugurationFileLocking.LockedFile); } } if (!this.Owner.Visible) { this.Owner.Visible = true; } this.Owner.BringToFront(); } else { MessageBox.Show(Localisation.Localisation.strings.SettingsMenu_ValidFile); e.Cancel = true; } }
private void LanguageHolder_SelectionChangeCommitted(object sender, EventArgs e) { switch (LanguageHolder.Text) { case "English": case "Englisch": { Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US"); if (Xdoc != null) { if (MainMenuPublic != null) { MainMenuPublic.CurrentLanguagePublic = Main.Languages.English; MainMenuPublic.Xdoc.Element("ConfigFile").Element("ApplicationSettings").Element("GeneralSettings").Element("Language").Value = "English"; ConfugurationFileLocking.WriteXDocument(MainMenuPublic.Xdoc); } else { StockManagementMenu.CurrentLanguage = StockManagement.Languages.English; StockManagementMenu.Xdoc.Element("ConfigFile").Element("ApplicationSettings").Element("GeneralSettings").Element("Language").Value = "English"; ConfugurationFileLocking.WriteXDocument(StockManagementMenu.Xdoc); } } LanguageHolder.Items[0] = "English"; LanguageHolder.Items[1] = "German"; LanguageHolder.Text = LanguageHolder.Items[0].ToString(); } break; case "German": case "Deutsch": { Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE"); if (Xdoc != null) { if (MainMenuPublic != null) { MainMenuPublic.CurrentLanguagePublic = Main.Languages.German; MainMenuPublic.Xdoc.Element("ConfigFile").Element("ApplicationSettings").Element("GeneralSettings").Element("Language").Value = "German"; ConfugurationFileLocking.WriteXDocument(MainMenuPublic.Xdoc); } else { StockManagementMenu.CurrentLanguage = StockManagement.Languages.German; StockManagementMenu.Xdoc.Element("ConfigFile").Element("ApplicationSettings").Element("GeneralSettings").Element("Language").Value = "German"; ConfugurationFileLocking.WriteXDocument(StockManagementMenu.Xdoc); } } LanguageHolder.Items[0] = "Englisch"; LanguageHolder.Items[1] = "Deutsch"; LanguageHolder.Text = LanguageHolder.Items[1].ToString(); } break; default: { // Placeholder - will never be reached // TODO: Create a protocol just to catch that case } break; } // Set the localisation of the settings menu SetLocalisation(true); // Set the localisation of the current background menu if (MainMenuPublic != null) { MainMenuPublic.SetLocalisation(); } if (StockManagementMenu != null) { StockManagementMenu.SetLocalisation(); } if (SeachWindowMenu != null) { SeachWindowMenu.SetLocalisation(); } }