Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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;
                        }
                    }
                }
            }
        }