Ejemplo n.º 1
0
        /// <summary>
        /// Преобразует IQuestion в масив ресуров
        /// </summary>
        /// <param name="questionbase">Объект вопроса</param>
        /// <returns>Массив русурсов</returns>
        public static ListResourse ToResource(IQuestion questionbase)
        {
            ResourceItem resourse = null;

            using (MemoryStream ms = new MemoryStream())
            {
                using (var data = new BinaryWriter(ms, Encoding.UTF8, true))
                {
                    data.Write(questionbase.Name);                  //Поле Name
                    data.Write(questionbase.TranslationIdentifier); //Идентификатор перевода
                    data.Write((ulong)questionbase.TypeQuestion);
                    switch (questionbase.TypeQuestion)
                    {
                    case TypeQuestionEnum.SelectOne:
                        QuestionSelectOne questionSelectOne = (QuestionSelectOne)questionbase;
                        data.Write(questionSelectOne.NumberAnswer);
                        data.Write(questionSelectOne.RightAnswer);
                        break;
                    }
                }
                resourse = CreateItem(questionbase.ID, StringNameQuestionData + questionbase.Name, FileTypes.Question, ms);
            }

            return(new ListResourse {
                resourse
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Преобразование ресурса в объект типа вопрос
        /// </summary>
        /// <param name="obj">Преобразуемый ресурс</param>
        /// <param name="lr">список всех ресурсов</param>
        public static Tuple <IQuestion, ListResourse> ResourceToQuestion(ResourceItem obj, ListResourse lrp)
        {
            obj.Data.Position = 0;
            IQuestion result = null;

            // SerializableInventoryItem s = new SerializableInventoryItem(obj.Data);
            using (var data = new BinaryReader(obj.Data, Encoding.UTF8, true))
            {
                String name = data.ReadString();
                String translationIdentifier = data.ReadString();

                TypeQuestionEnum typeQuestion = (TypeQuestionEnum)data.ReadUInt64();
                if (typeQuestion == TypeQuestionEnum.SelectOne)
                {
                    QuestionSelectOne qsoresult = new QuestionSelectOne();
                    qsoresult.Name = name;
                    qsoresult.ID   = obj.Identifier;
                    qsoresult.TranslationIdentifier = translationIdentifier;

                    qsoresult.NumberAnswer = data.ReadUInt32();
                    qsoresult.RightAnswer  = data.ReadUInt32();
                    result = qsoresult;
                }
            }
            if (questionlevelcashe.ContainsKey(result.ID))
            {
                for (int j = 0; j < questionlevelcashe[result.ID].Count; j++)
                {
                    questionlevelcashe[result.ID][j].QuestionsLevel.Add(result);
                }
            }
            QuestionCashe.Add(result);
            return(new Tuple <IQuestion, ListResourse>(result, new ListResourse {
                obj
            }));
        }