/// <summary> /// Get all checkPoints for selected language /// </summary> /// <param name="language">Selected language</param> /// <param name="connection">Database connection</param> /// <returns>List of checkPoints</returns> public static List <Database_Objects.CheckPoint_Translation> CheckPoints(string language, Connection connection) { List <Database_Objects.CheckPoint_Translation> checkpoints = new List <Database_Objects.CheckPoint_Translation>(); // Database operations SqlCommand myCommand; SqlDataReader reader; SqlConnection myConnection = connection.GetConnection(); // Object ID List <int> all = new List <int>(); myCommand = new SqlCommand("SELECT [ID_CheckPoint] FROM [CheckPoints]", myConnection); reader = myCommand.ExecuteReader(); while (reader.Read()) { all.Add(reader.GetInt32(0)); } reader.Close(); // Object translations List <Database_Objects.CheckPoint_Translation> all_Translations = new List <Database_Objects.CheckPoint_Translation>(); myCommand = new SqlCommand("SELECT [ID_CheckPoint], [Language_Code], [Name] FROM [CheckPoints_Translation]", myConnection); reader = myCommand.ExecuteReader(); Database_Objects.CheckPoint_Translation current_Translation; while (reader.Read()) { current_Translation = new Database_Objects.CheckPoint_Translation(reader.GetInt32(0), reader[1].ToString(), reader[2].ToString()); all_Translations.Add(current_Translation); } reader.Close(); // Select wanted translation bool haveTranslation; foreach (int id in all) { // Reset flag haveTranslation = false; // Find wanted translation foreach (Database_Objects.CheckPoint_Translation translation in all_Translations) { if (id == translation.GetID() && language == translation.GetLanguage_Code()) { checkpoints.Add(translation); haveTranslation = true; break; } } // If no translation, use EN if (haveTranslation == false) { foreach (Database_Objects.CheckPoint_Translation translation in all_Translations) { if (id == translation.GetID() && defaultLanguage == translation.GetLanguage_Code()) { checkpoints.Add(translation); break; } } } } return(checkpoints); }
/// <summary> /// Get selected translation from database, if no translation, use default language /// </summary> /// <param name="language">Selected language</param> /// <param name="myConnection">Database connection</param> private static void GetCheckPoints(string language, SqlConnection myConnection) { // Database operations SqlCommand myCommand; SqlDataReader reader; // Object ID List <int> all = new List <int>(); using (myCommand = new SqlCommand("SELECT [ID_CheckPoint] FROM [CheckPoints]", myConnection)) { using (reader = myCommand.ExecuteReader()) { while (reader.Read()) { all.Add(reader.GetInt32(0)); } } } // Object translations List <Database_Objects.CheckPoint_Translation> all_Translations = new List <Database_Objects.CheckPoint_Translation>(); using (myCommand = new SqlCommand("SELECT [ID_CheckPoint], [Language_Code], [Name] FROM [CheckPoints_Translation]", myConnection)) { using (reader = myCommand.ExecuteReader()) { Database_Objects.CheckPoint_Translation current_Translation; while (reader.Read()) { current_Translation = new Database_Objects.CheckPoint_Translation(reader.GetInt32(0), reader[1].ToString(), reader[2].ToString()); all_Translations.Add(current_Translation); } } } // Select wanted translation, if not here, use EN bool haveTranslation; foreach (int id in all) { // Reset flag haveTranslation = false; // Find wanted translation foreach (Database_Objects.CheckPoint_Translation translation in all_Translations) { if (id == translation.GetID() && language == translation.GetLanguage_Code()) { checkpoints[id.ToString()] = translation; haveTranslation = true; break; } } // If no translation, use EN if (haveTranslation == false) { foreach (Database_Objects.CheckPoint_Translation translation in all_Translations) { if (id == translation.GetID() && language == defaultLanguage) { checkpoints[id.ToString()] = translation; break; } } } } }