Exemplo n.º 1
0
        /// <summary>
        /// Gets the extended preview dictionary.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <param name="user">The user.</param>
        /// <returns></returns>
        /// <remarks>Documented by Dev03, 2009-03-23</remarks>
        public static PreviewDictionary GetExtendedPreviewDictionary(string path, IUser user)
        {
            PreviewDictionary dic = new PreviewDictionary(user);

            dic.Connection = path;
            return(UpdatePreviewDictionary(dic));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the preview dictionary.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <param name="user">The user.</param>
        /// <returns></returns>
        /// <remarks>Documented by Dev05, 2009-03-06</remarks>
        public static PreviewDictionary GetPreviewDictionary(string path, IUser user)
        {
            PreviewDictionary dic = new PreviewDictionary(user);

            using (XmlReader reader = XmlReader.Create(path))
            {
                try
                {
                    if (reader.ReadToFollowing("category"))
                    {
                        int oldId, newId;
                        if (Int32.TryParse(reader.GetAttribute("id"), out newId) && (newId >= 0))
                        {
                            dic.Category = new Category(newId);
                        }
                        else if (Int32.TryParse(reader.ReadElementContentAsString(), out oldId) && (oldId >= 0))
                        {
                            dic.Category = new Category(oldId, false);
                        }
                    }
                }
                catch
                {
                    dic.Category = new Category(0);
                }
                dic.Id         = 1;
                dic.Connection = path;
                return(dic);
            }
        }
Exemplo n.º 3
0
        private void LoadLearningModules()
        {
            int counter = 1;

            m_learningModules.Clear();
            if (!Directory.Exists(m_learningModulesFolder))
            {
                return;
            }

            //string[] dicPaths = Directory.GetFiles(m_learningModulesFolder, "*" + Helper.OdxExtension, SearchOption.AllDirectories);
            string[] dicPaths = Helper.GetFilesRecursive(m_learningModulesFolder, "*" + Helper.OdxExtension);

            foreach (string path in dicPaths)
            {
                PreviewDictionary dic = User.GetExtendedPreviewDictionary(path, parent.CurrentUser);
                dic.Id = counter++;
                m_learningModules.Add(dic);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Updates the preview dictionary.
        /// </summary>
        /// <param name="dictionary">The dictionary.</param>
        /// <returns></returns>
        /// <remarks>Documented by Dev03, 2009-03-30</remarks>
        public static PreviewDictionary UpdatePreviewDictionary(PreviewDictionary dictionary)
        {
            using (XmlReader reader = XmlReader.Create(dictionary.Connection))
            {
                try
                {
                    ICard      card       = null;
                    IStatistic statistic  = null;
                    bool       imageFound = false;
                    while (reader.Read())
                    {
                        if (reader.IsEmptyElement || reader.NodeType == XmlNodeType.EndElement)
                        {
                            continue;
                        }
                        switch (reader.Name)
                        {
                        case "category":
                            int oldId, newId;
                            if (Int32.TryParse(reader.GetAttribute("id"), out newId) && (newId >= 0))
                            {
                                dictionary.Category = new Category(newId);
                            }
                            else if (Int32.TryParse(reader.ReadElementContentAsString(), out oldId) && (oldId >= 0))
                            {
                                dictionary.Category = new Category(oldId, false);
                            }
                            break;

                        case "author":
                            dictionary.Author = reader.ReadElementContentAsString().Trim();
                            break;

                        case "description":
                            dictionary.Description = reader.ReadElementContentAsString().Trim();
                            break;

                        case "sounddir":
                            dictionary.MediaDirectory = reader.ReadElementContentAsString().Trim();
                            break;

                        case "card":
                            card = dictionary.Cards.AddNew();
                            break;

                        case "answer":
                            if (imageFound)
                            {
                                continue;
                            }
                            if (card != null)
                            {
                                card.Answer.AddWords(Helper.SplitWordList(reader.ReadElementContentAsString()));
                            }
                            break;

                        case "question":
                            if (imageFound)
                            {
                                continue;
                            }
                            if (card != null)
                            {
                                card.Question.AddWords(Helper.SplitWordList(reader.ReadElementContentAsString()));
                            }
                            break;

                        case "answerexample":
                            if (imageFound)
                            {
                                continue;
                            }
                            if (card != null)
                            {
                                card.AnswerExample.AddWords(Helper.SplitWordList(reader.ReadElementContentAsString()));
                            }
                            break;

                        case "questionexample":
                            if (imageFound)
                            {
                                continue;
                            }
                            if (card != null)
                            {
                                card.QuestionExample.AddWords(Helper.SplitWordList(reader.ReadElementContentAsString()));
                            }
                            break;

                        case "questionimage":
                            if (imageFound)
                            {
                                continue;
                            }
                            if (card != null)
                            {
                                IMedia qmedia = card.CreateMedia(EMedia.Image, reader.ReadElementContentAsString(), true, false, false);
                                card.AddMedia(qmedia, Side.Question);
                                imageFound = true;
                            }
                            break;

                        case "answerimage":
                            if (imageFound)
                            {
                                continue;
                            }
                            if (card != null)
                            {
                                IMedia amedia = card.CreateMedia(EMedia.Image, reader.ReadElementContentAsString(), true, false, false);
                                card.AddMedia(amedia, Side.Question);
                            }
                            break;

                        case "stats":
                            statistic = new PreviewStatistic();
                            int sId;
                            if (Int32.TryParse(reader.GetAttribute("id"), out sId) && (sId >= 0))
                            {
                                (statistic as PreviewStatistic).Id = sId;
                            }
                            dictionary.Statistics.Add(statistic);
                            break;

                        case "start":
                            if (statistic != null)
                            {
                                statistic.StartTimestamp = XmlConvert.ToDateTime(reader.ReadElementContentAsString(), XmlDateTimeSerializationMode.RoundtripKind);
                            }
                            break;

                        case "end":
                            if (statistic != null)
                            {
                                statistic.EndTimestamp = XmlConvert.ToDateTime(reader.ReadElementContentAsString(), XmlDateTimeSerializationMode.RoundtripKind);
                            }
                            break;

                        case "right":
                            if (statistic != null)
                            {
                                statistic.Right = XmlConvert.ToInt32(reader.ReadElementContentAsString());
                            }
                            break;

                        case "wrong":
                            if (statistic != null)
                            {
                                statistic.Wrong = XmlConvert.ToInt32(reader.ReadElementContentAsString());
                            }
                            break;

                        default:
                            break;
                        }
                        //System.Threading.Thread.Sleep(5);
                    }
                }
                catch
                {
                    dictionary.Category = new Category(0);
                }
                dictionary.Id = 1;
                return(dictionary);
            }
        }
Exemplo n.º 5
0
 void InitializePreviews()
 {
     previews = new PreviewDictionary(TidyEditorUtility.previewPath);
 }