using System.Collections.Generic; using System.Globalization; using MySqlConnector; using Sony.Filtr.Database; namespace Sony.Filtr.Globalization { public class GlobalizationFactory { internal void SetTranslation(string key, Contracts.Entities.Application application, string value) { using (MySqlConnection conn = DatabaseHandler.GetOpenConnection()) { MySqlCommand cmd = new MySqlCommand("INSERT INTO tblGlobalization (strKey, strCulture, strValue) VALUES (@strKey, @strCulture, @strValue) ON DUPLICATE KEY UPDATE strValue = @strValue", conn); cmd.Parameters.AddWithValue("@strKey", key); cmd.Parameters.AddWithValue("@strCulture", application.CultureInfo.Name); cmd.Parameters.AddWithValue("@strValue", value); cmd.ExecuteNonQuery(); } } internal Dictionary> GetTranslations() { var translations = new Dictionary>(); using (MySqlConnection conn = DatabaseHandler.GetOpenReadOnlyConnection()) { MySqlCommand cmd = new MySqlCommand("SELECT strKey, strCulture, strValue FROM tblGlobalization", conn); using(var sqlReader = cmd.ExecuteReader()) { while (sqlReader.Read()) { string key = sqlReader.GetString(0); string culture = sqlReader.GetString(1); string value = sqlReader.GetString(2); CultureInfo cultureInfo = CultureInfo.GetCultureInfo(culture); if (translations.ContainsKey(key)) { translations[key].Add(cultureInfo, value); } else { var trans = new Dictionary(); trans.Add(cultureInfo, value); translations.Add(key, trans); } } } } return translations; } } }