private void UpdateTablesForTargetLanguage(string languageName, DIConnection dbConnection, DIQueries dbQueries, string dataPrefix, string languageCode) { LanguageBuilder DILanguageBuilder; // create langauge dependent tables if not exists in the new template if (!dbConnection.IsValidDILanguage(dataPrefix, languageCode)) { DILanguageBuilder = new LanguageBuilder(dbConnection, dbQueries); DILanguageBuilder.CreateNewLanguageTables(languageCode, languageName, dataPrefix); // delete "_en" tables & delete langauge code from language table DILanguageBuilder.DropLanguageDependentTables(dataPrefix, "_en"); // set default language dbConnection.ExecuteNonQuery(dbQueries.SetDefaultLanguageCode(languageCode)); } }
/// <summary> /// Set Dataprifix and languagecode /// </summary> /// <param name="dataPrefix">DataPrefix like UT_</param> /// <param name="langaugeCode">language code like _en</param> private void SetLangaugeCodeNDataPrefix(string dataPrefix, string langaugeCode) { try { //check dataprefix exists in the database if (!string.IsNullOrEmpty(dataPrefix)) { foreach (DataRow Row in this.DBConnection.DIDataSets().Rows) { if (Row[DBAvailableDatabases.AvlDBPrefix].ToString().ToUpper() == dataPrefix) { this.DataPrefix = dataPrefix; break; } } } if (string.IsNullOrEmpty(this.DataPrefix)) { //get default dataset from database this.DataPrefix = this.DBConnection.DIDataSetDefault(); } //check languagecode exists in the database if (!string.IsNullOrEmpty(langaugeCode)) { if (this.DBConnection.IsValidDILanguage(this.DataPrefix, langaugeCode)) { this.LanguageCode = langaugeCode; } else { //If language code doesnt exist then create langauge tables. LanguageBuilder NewLanguage = new LanguageBuilder(this.DBConnection, this.DBQueries); NewLanguage.CreateNewLanguageTables(langaugeCode, langaugeCode, this.DataPrefix); this.LanguageCode = "_" + langaugeCode; } } if (string.IsNullOrEmpty(this.LanguageCode)) { // get default language code this.LanguageCode = this.DBConnection.DILanguageCodeDefault(this.DataPrefix); } } catch (Exception ex) { ExceptionFacade.ThrowException(ex); } }