Exemplo n.º 1
0
 /// <summary>
 /// Gets the type of the query.
 /// </summary>
 /// <param name="queryType">Type of the query.</param>
 /// <remarks>Documented by Dev02, 2008-01-09</remarks>
 public void GetQueryTypes(ref IQueryType queryType)
 {
     queryType.Word                   = LModeStandard.Checked;
     queryType.MultipleChoice         = LModeMultipleChoice.Checked;
     queryType.Sentence               = LModeSentences.Checked;
     queryType.ListeningComprehension = LModeListeningComprehension.Checked;
     queryType.ImageRecognition       = LModeImageRecognition.Checked;
 }
Exemplo n.º 2
0
 public PlantUmlTypeWriter(
     IQueryType queryType,
     ITypeNameWriter typeNameWriter,
     ITypeNameWriter escapedTypeNameWriter,
     IEventWriter eventWriter,
     IMethodWriter methodWriter,
     IFieldWriter fieldWriter,
     IPropertyWriter propertyWriter)
 {
     _queryType             = queryType;
     _typeNameWriter        = typeNameWriter;
     _escapedTypeNameWriter = escapedTypeNameWriter;
     _eventWriter           = eventWriter;
     _methodWriter          = methodWriter;
     _fieldWriter           = fieldWriter;
     _propertyWriter        = propertyWriter;
 }
Exemplo n.º 3
0
        public void Write(TextWriter writer, Type type, IQueryType queryType)
        {
            WriteTypeKind(writer, type);
            writer.Write(' ');
            _typeNameWriter.Write(writer, type);

            if (type.BaseType != null)
            {
                writer.Write(" : ");
                _typeNameWriter.Write(writer, type.BaseType);
            }

            var implementedInterfaces = queryType.GetInterfaces(type).ToArray();

            if (implementedInterfaces.Length > 0)
            {
                writer.Write(" implements ");
                writer.Write(string.Join(',', implementedInterfaces.Select(_typeNameConverter.ToString)));
            }

            writer.WriteLine(" {");

            WriteMembers("Fields",
                         writer,
                         () => queryType.GetFields(type),
                         i => _fieldWriter.Write(writer, i));

            WriteMembers("Properties",
                         writer,
                         () => queryType.GetProperties(type),
                         i => _propertyWriter.Write(writer, i));

            WriteMembers("Methods",
                         writer,
                         () => queryType.GetMethods(type),
                         i => _methodWriter.Write(writer, i));

            WriteMembers("Events",
                         writer,
                         () => queryType.GetEvents(type),
                         i => _eventWriter.Write(writer, i));

            writer.WriteLine("}");
        }
Exemplo n.º 4
0
            static void BuildBaseDependenciesToExclude(IQueryType queryType, HashSet <Type> typesToExclude, Type baseType)
            {
                foreach (var @interface in queryType.GetInterfaces(baseType))
                {
                    typesToExclude.Add(@interface);
                }

                foreach (var constructorInfo in queryType.GetConstructors(baseType))
                {
                    foreach (var parameterInfo in constructorInfo.GetParameters())
                    {
                        var parameterType = parameterInfo.ParameterType;
                        if (!parameterType.IsGenericParameter)
                        {
                            typesToExclude.Add(parameterType);
                        }
                    }
                }
            }
Exemplo n.º 5
0
        /// <summary>
        /// Filter by LearningMode
        /// </summary>
        /// <param name="actualQueryType">Actual type of the query.</param>
        /// <returns></returns>
        /// <remarks>Documented by Dev08, 2009-07-16</remarks>
        private bool CardSearchFilterLearningMode(IQueryType actualQueryType)
        {
            //If all checkboxes are unchecked, return true;
            if (!checkBoxFilterStandard.IsChecked.Value && !checkBoxFilterSentence.IsChecked.Value && !checkBoxFilterMC.IsChecked.Value &&
                !checkBoxFilterListening.IsChecked.Value && !checkBoxFilterImage.IsChecked.Value)
            {
                return(true);
            }

            //At least one checkbox is checked, so don't show cards with "null" values
            if (!actualQueryType.Word.HasValue || !actualQueryType.Sentence.HasValue || !actualQueryType.MultipleChoice.HasValue ||
                !actualQueryType.ListeningComprehension.HasValue || !actualQueryType.ImageRecognition.HasValue)
            {
                return(false);
            }

            if (actualQueryType.Word.Value != checkBoxFilterStandard.IsChecked.Value)
            {
                return(false);
            }

            if (actualQueryType.Sentence.Value != checkBoxFilterSentence.IsChecked.Value)
            {
                return(false);
            }

            if (actualQueryType.MultipleChoice.Value != checkBoxFilterMC.IsChecked.Value)
            {
                return(false);
            }

            if (actualQueryType.ListeningComprehension.Value != checkBoxFilterListening.IsChecked.Value)
            {
                return(false);
            }

            if (actualQueryType.ImageRecognition.Value != checkBoxFilterImage.IsChecked.Value)
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 6
0
 /// <summary>
 /// Sets the allowed query types.
 /// </summary>
 /// <param name="queryType">Type of the query.</param>
 /// <remarks>Documented by Dev02, 2008-01-09</remarks>
 public void SetAllowedQueryTypes(IQueryType queryType)
 {
     if (!(LModeStandard.Enabled = queryType.Word.Value))
     {
         LModeStandard.Checked = false;
     }
     if (!(LModeMultipleChoice.Enabled = queryType.MultipleChoice.Value))
     {
         LModeMultipleChoice.Checked = false;
     }
     if (!(LModeSentences.Enabled = queryType.Sentence.Value))
     {
         LModeSentences.Checked = false;
     }
     if (!(LModeListeningComprehension.Enabled = queryType.ListeningComprehension.Value))
     {
         LModeListeningComprehension.Checked = false;
     }
     if (!(LModeImageRecognition.Enabled = queryType.ImageRecognition.Value))
     {
         LModeImageRecognition.Checked = false;
     }
 }
Exemplo n.º 7
0
 /// <summary>
 /// Sets the type of the query.
 /// </summary>
 /// <param name="queryType">Type of the query.</param>
 /// <remarks>Documented by Dev02, 2008-01-09</remarks>
 public void SetQueryTypes(IQueryType queryType)
 {
     if (LModeStandard.Enabled)
     {
         LModeStandard.Checked = queryType.Word.GetValueOrDefault();
     }
     if (LModeMultipleChoice.Enabled)
     {
         LModeMultipleChoice.Checked = queryType.MultipleChoice.GetValueOrDefault();
     }
     if (LModeSentences.Enabled)
     {
         LModeSentences.Checked = queryType.Sentence.GetValueOrDefault();
     }
     if (LModeListeningComprehension.Enabled)
     {
         LModeListeningComprehension.Checked = queryType.ListeningComprehension.GetValueOrDefault();
     }
     if (LModeImageRecognition.Enabled)
     {
         LModeImageRecognition.Checked = queryType.ImageRecognition.GetValueOrDefault();
     }
 }
Exemplo n.º 8
0
        /// <summary>
        /// Handles the Click event of the btnOK control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        /// <remarks>Documented by Dev02, 2008-01-10</remarks>
        private void buttonOK_Click(object sender, EventArgs e)
        {
            if (!learnModes.ValidateInput())
            {
                return;
            }

            if (dictionary.CanModify)
            {
                //save LearningModule captions
                dictionary.DefaultSettings.QuestionCaption = dictionaryCaptions.QuestionTitle;
                dictionary.DefaultSettings.AnswerCaption   = dictionaryCaptions.AnswerTitle;
                dictionary.DefaultSettings.QuestionCulture = dictionaryCaptions.QuestionCulture;
                dictionary.DefaultSettings.AnswerCulture   = dictionaryCaptions.AnswerCulture;

                //save LearningModule properties
                dictionary.Author      = dictionaryProperties.DictionaryAuthor;
                dictionary.Description = dictionaryProperties.DictionaryDescription;
                dictionary.Category    = dictionaryProperties.DictionaryCategory;

                //save commentary sounds
                dictionary.DefaultSettings.CommentarySounds = commentarySounds;

                IQueryDirections queryDirections = dictionary.AllowedQueryDirections;
                learnModes.GetQueryDirections(ref queryDirections);
                dictionary.AllowedQueryDirections = queryDirections;

                IQueryType queryTypes = dictionary.AllowedQueryTypes;
                learnModes.GetQueryTypes(ref queryTypes);
                dictionary.AllowedQueryTypes = queryTypes;

                dictionary.Save();
            }

            this.DialogResult = DialogResult.OK;
            this.Close();
        }
Exemplo n.º 9
0
        /// <summary>
        /// Sets the type of the query.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <param name="QueryType">Type of the query.</param>
        /// <remarks>Documented by Dev11, 2008-08-14</remarks>
        public void SetQueryType(int id, IQueryType QueryType)
        {
            using (NpgsqlConnection con = PostgreSQLConn.CreateConnection(Parent.CurrentUser))
            {
                using (NpgsqlCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText = "SELECT query_types FROM \"Settings\" WHERE id=:id";
                    cmd.Parameters.Add("id", id);

                    int qtid = Convert.ToInt32(PostgreSQLConn.ExecuteScalar(cmd, Parent.CurrentUser));

                    if (qtid > 0)
                    {
                        using (NpgsqlCommand cmd2 = con.CreateCommand())
                        {
                            cmd2.CommandText = "UPDATE \"QueryTypes\" SET " +
                                "image_recognition=:i_r, listening_comprehension=:l_c, multiple_choice=:m_c, sentence=:s, word=:w WHERE id=:id";
                            cmd2.Parameters.Add("id", qtid);
                            cmd2.Parameters.Add("i_r", QueryType.ImageRecognition);
                            cmd2.Parameters.Add("l_c", QueryType.ListeningComprehension);
                            cmd2.Parameters.Add("m_c", QueryType.MultipleChoice);
                            cmd2.Parameters.Add("s", QueryType.Sentence);
                            cmd2.Parameters.Add("w", QueryType.Word);

                            PostgreSQLConn.ExecuteNonQuery(cmd2, Parent.CurrentUser);

                            //Save to Cache
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesFk, id, Cache.DefaultSettingsValidationTime)] = qtid;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesImageRecognition, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.ImageRecognition;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesListeningComprehension, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.ListeningComprehension;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesMultipleChoice, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.MultipleChoice;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesSentence, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.Sentence;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesWord, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.Word;
                        }
                    }
                    else
                    {
                        using (NpgsqlCommand cmd3 = con.CreateCommand())
                        {
                            cmd3.CommandText = "INSERT INTO \"QueryTypes\" (image_recognition, listening_comprehension, multiple_choice, sentence, word) VALUES " +
                                "(:i_r, :l_c, :m_c, :s, :w); UPDATE \"Settings\" SET query_types=currval('\"QueryTypes_id_seq\"') WHERE id=:id; " +
                                "SELECT query_types FROM \"Settings\" WHERE id=:id";
                            cmd3.Parameters.Add("id", id);
                            cmd3.Parameters.Add("i_r", QueryType.ImageRecognition);
                            cmd3.Parameters.Add("l_c", QueryType.ListeningComprehension);
                            cmd3.Parameters.Add("m_c", QueryType.MultipleChoice);
                            cmd3.Parameters.Add("s", QueryType.Sentence);
                            cmd3.Parameters.Add("w", QueryType.Word);

                            int? queryTypeId = PostgreSQLConn.ExecuteScalar<int>(cmd3, Parent.CurrentUser);

                            //Save to Cache
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesFk, id, Cache.DefaultSettingsValidationTime)] = queryTypeId;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesImageRecognition, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.ImageRecognition;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesListeningComprehension, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.ListeningComprehension;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesMultipleChoice, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.MultipleChoice;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesSentence, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.Sentence;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesWord, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.Word;
                        }
                    }
                }
            }
        }
Exemplo n.º 10
0
 public QueryType(IQueryType defaultSettings, IQueryType userSettings)
 {
     this.defaultSettings = defaultSettings;
     this.userSettings = userSettings;
 }
Exemplo n.º 11
0
 /// <summary>
 /// Sets the type of the query.
 /// </summary>
 /// <param name="queryType">Type of the query.</param>
 /// <remarks>Documented by Dev02, 2008-01-09</remarks>
 public void SetQueryTypes(IQueryType queryType)
 {
     if (LModeStandard.Enabled)
         LModeStandard.Checked = queryType.Word.GetValueOrDefault();
     if (LModeMultipleChoice.Enabled)
         LModeMultipleChoice.Checked = queryType.MultipleChoice.GetValueOrDefault();
     if (LModeSentences.Enabled)
         LModeSentences.Checked = queryType.Sentence.GetValueOrDefault();
     if (LModeListeningComprehension.Enabled)
         LModeListeningComprehension.Checked = queryType.ListeningComprehension.GetValueOrDefault();
     if (LModeImageRecognition.Enabled)
         LModeImageRecognition.Checked = queryType.ImageRecognition.GetValueOrDefault();
 }
Exemplo n.º 12
0
 partial void QueryType_SetCondition(ref IQueryDefinition instance, ref IQueryType setValue);
Exemplo n.º 13
0
 /// <summary>
 /// Gets the type of the query.
 /// </summary>
 /// <param name="queryType">Type of the query.</param>
 /// <remarks>Documented by Dev02, 2008-01-09</remarks>
 public void GetQueryTypes(ref IQueryType queryType)
 {
     queryType.Word = LModeStandard.Checked;
     queryType.MultipleChoice = LModeMultipleChoice.Checked;
     queryType.Sentence = LModeSentences.Checked;
     queryType.ListeningComprehension = LModeListeningComprehension.Checked;
     queryType.ImageRecognition = LModeImageRecognition.Checked;
 }
Exemplo n.º 14
0
 /// <summary>
 /// Sets the allowed query types.
 /// </summary>
 /// <param name="queryType">Type of the query.</param>
 /// <remarks>Documented by Dev02, 2008-01-09</remarks>
 public void SetAllowedQueryTypes(IQueryType queryType)
 {
     if (!(LModeStandard.Enabled = queryType.Word.Value))
         LModeStandard.Checked = false;
     if (!(LModeMultipleChoice.Enabled = queryType.MultipleChoice.Value))
         LModeMultipleChoice.Checked = false;
     if (!(LModeSentences.Enabled = queryType.Sentence.Value))
         LModeSentences.Checked = false;
     if (!(LModeListeningComprehension.Enabled = queryType.ListeningComprehension.Value))
         LModeListeningComprehension.Checked = false;
     if (!(LModeImageRecognition.Enabled = queryType.ImageRecognition.Value))
         LModeImageRecognition.Checked = false;
 }
        /// <summary>
        /// Filter by LearningMode
        /// </summary>
        /// <param name="actualQueryType">Actual type of the query.</param>
        /// <returns></returns>
        /// <remarks>Documented by Dev08, 2009-07-16</remarks>
        private bool CardSearchFilterLearningMode(IQueryType actualQueryType)
        {
            //If all checkboxes are unchecked, return true;
            if (!checkBoxFilterStandard.IsChecked.Value && !checkBoxFilterSentence.IsChecked.Value && !checkBoxFilterMC.IsChecked.Value &&
                !checkBoxFilterListening.IsChecked.Value && !checkBoxFilterImage.IsChecked.Value)
                return true;

            //At least one checkbox is checked, so don't show cards with "null" values
            if (!actualQueryType.Word.HasValue || !actualQueryType.Sentence.HasValue || !actualQueryType.MultipleChoice.HasValue ||
                !actualQueryType.ListeningComprehension.HasValue || !actualQueryType.ImageRecognition.HasValue)
                return false;

            if (actualQueryType.Word.Value != checkBoxFilterStandard.IsChecked.Value)
                return false;

            if (actualQueryType.Sentence.Value != checkBoxFilterSentence.IsChecked.Value)
                return false;

            if (actualQueryType.MultipleChoice.Value != checkBoxFilterMC.IsChecked.Value)
                return false;

            if (actualQueryType.ListeningComprehension.Value != checkBoxFilterListening.IsChecked.Value)
                return false;

            if (actualQueryType.ImageRecognition.Value != checkBoxFilterImage.IsChecked.Value)
                return false;

            return true;
        }
Exemplo n.º 16
0
 public Field(IQueryType queryType, IDirective[] directives)
     : this(queryType)
 {
     Directives = directives;
 }
Exemplo n.º 17
0
        /// <summary>
        /// Sets the type of the query.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <param name="QueryType">Type of the query.</param>
        /// <remarks>Documented by Dev05, 2009-01-15</remarks>
        public void SetQueryType(int id, IQueryType QueryType)
        {
            SqlCeCommand cmd = MSSQLCEConn.CreateCommand(Parent.CurrentUser);
            cmd.CommandText = "SELECT query_types FROM \"Settings\" WHERE id=@id";
            cmd.Parameters.Add("@id", id);

            int qtid = Convert.ToInt32(MSSQLCEConn.ExecuteScalar(cmd));

            if (qtid > 0)
            {
                SqlCeCommand cmd2 = MSSQLCEConn.CreateCommand(Parent.CurrentUser);
                cmd2.CommandText = "UPDATE \"QueryTypes\" SET " +
                    "image_recognition=@i_r, listening_comprehension=@l_c, multiple_choice=@m_c, sentence=@s, word=@w WHERE id=@id";
                cmd2.Parameters.Add("@id", qtid);
                cmd2.Parameters.Add("@i_r", QueryType.ImageRecognition);
                cmd2.Parameters.Add("@l_c", QueryType.ListeningComprehension);
                cmd2.Parameters.Add("@m_c", QueryType.MultipleChoice);
                cmd2.Parameters.Add("@s", QueryType.Sentence);
                cmd2.Parameters.Add("@w", QueryType.Word);

                MSSQLCEConn.ExecuteNonQuery(cmd2);

                //Save to Cache
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesFk, id, Cache.DefaultSettingsValidationTime)] = qtid;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesImageRecognition, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.ImageRecognition;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesListeningComprehension, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.ListeningComprehension;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesMultipleChoice, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.MultipleChoice;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesSentence, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.Sentence;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesWord, qtid, Cache.DefaultSettingsValidationTime)] = QueryType.Word;
            }
            else
            {
                SqlCeCommand cmd3 = MSSQLCEConn.CreateCommand(Parent.CurrentUser);
                cmd3.CommandText = "INSERT INTO \"QueryTypes\" (image_recognition, listening_comprehension, multiple_choice, sentence, word) VALUES " +
                    "(@i_r, @l_c, @m_c, @s, @w); UPDATE \"Settings\" SET query_types=@@IDENTITY WHERE id=@id; " +
                    "SELECT query_types FROM \"Settings\" WHERE id=@id";
                cmd3.Parameters.Add("@id", id);
                cmd3.Parameters.Add("@i_r", QueryType.ImageRecognition);
                cmd3.Parameters.Add("@l_c", QueryType.ListeningComprehension);
                cmd3.Parameters.Add("@m_c", QueryType.MultipleChoice);
                cmd3.Parameters.Add("@s", QueryType.Sentence);
                cmd3.Parameters.Add("@w", QueryType.Word);

                int? queryTypeId = MSSQLCEConn.ExecuteScalar<int>(cmd3);

                //Save to Cache
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesFk, id, Cache.DefaultSettingsValidationTime)] = queryTypeId;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesImageRecognition, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.ImageRecognition;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesListeningComprehension, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.ListeningComprehension;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesMultipleChoice, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.MultipleChoice;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesSentence, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.Sentence;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsQueryTypesWord, queryTypeId.Value, Cache.DefaultSettingsValidationTime)] = QueryType.Word;
            }
        }
Exemplo n.º 18
0
 public QueryType(IQueryType defaultSettings, IQueryType userSettings)
 {
     this.defaultSettings = defaultSettings;
     this.userSettings    = userSettings;
 }
Exemplo n.º 19
0
 public Field(IQueryType queryType) : this(null, null, null)
 {
     QueryType = queryType;
 }
Exemplo n.º 20
0
 public static QueryType GetInstance(IQueryType src)
 {
     return(default(QueryType));
 }
Exemplo n.º 21
0
        /// <summary>
        /// A helper method.
        /// Converts a IQueryType object to a LearnModes list.
        /// </summary>
        /// <param name="queryType">IQueryType object</param>
        /// <returns>List of LearnModes</returns>
        /// <remarks>Documented by Dev08, 2009-04-09</remarks>
        private List<LearnModes> ConvertToLearnModesList(IQueryType queryType)
        {
            List<LearnModes> allowedLearnModes = new List<LearnModes>();

            if (queryType.Word.HasValue && queryType.Word.Value)
                allowedLearnModes.Add(LearnModes.Word);
            if (queryType.Sentence.HasValue && queryType.Sentence.Value)
                allowedLearnModes.Add(LearnModes.Sentence);
            if (queryType.MultipleChoice.HasValue && queryType.MultipleChoice.Value)
                allowedLearnModes.Add(LearnModes.MultipleChoice);
            if (queryType.ImageRecognition.HasValue && queryType.ImageRecognition.Value)
                allowedLearnModes.Add(LearnModes.ImageRecognition);
            if (queryType.ListeningComprehension.HasValue && queryType.ListeningComprehension.Value)
                allowedLearnModes.Add(LearnModes.ListeningComprehension);

            return allowedLearnModes;
        }