Пример #1
0
        /// <summary>Полностью удаляет все данные о словеваре из базы данных</summary>
        /// <param name="info">Свойство Dictionary аргумета типа DictionaryCreateIfon должно быть не null</param>
        public void Delete(DictionaryInfo info)
        {
            if (info.Dictionary == null)
            {
                return;
            }

            DictionariesInfoDelete.Add(info);
        }
Пример #2
0
        internal void Init()
        {
            if (Words == null)
            {
                Words = new List <Word>();
            }
            else
            {
                Words.Clear();
            }

            if (Dictionaties == null)
            {
                Dictionaties = new List <Dictionary>();
            }
            else
            {
                Dictionaties.Clear();
            }

            if (ApplestsData == null)
            {
                ApplestsData = new List <AppletData>();
            }
            else
            {
                ApplestsData.Clear();
            }

            if (WordsInfo == null)
            {
                WordsInfo = new List <WordInfo>();
            }
            else
            {
                WordsInfo.Clear();
            }

            if (WordsInfoDelete == null)
            {
                WordsInfoDelete = new List <WordInfo>();
            }
            else
            {
                WordsInfoDelete.Clear();
            }

            if (DictionariesInfo == null)
            {
                DictionariesInfo = new List <DictionaryInfo>();
            }
            else
            {
                DictionariesInfo.Clear();
            }

            if (DictionariesInfoDelete == null)
            {
                DictionariesInfoDelete = new List <DictionaryInfo>();
            }
            else
            {
                DictionariesInfoDelete.Clear();
            }

            if (AppletsDataInfo == null)
            {
                AppletsDataInfo = new List <AppletDataInfo>();
            }
            else
            {
                AppletsDataInfo.Clear();
            }

            if (AppletsDataInfoDelete == null)
            {
                AppletsDataInfoDelete = new List <AppletDataInfo>();
            }
            else
            {
                AppletsDataInfoDelete.Clear();
            }

            currentDictionaty = null;

            xdoc = XDocument.Load(Environment.CurrentDirectory + "\\" + xml_Name);

            Init_Word();
            Init_Dic();
            Init_Progress();
        }
Пример #3
0
        private void Commit_Dic(XDocument doc)
        {
            doc.Element(root_xml_name).Add(new XElement(xml_personal_dictionaries_name));
            var root = doc.Element(root_xml_name).Element(xml_personal_dictionaries_name);

            #region Часть 1. Вносятся изменения в существующие словари и создаются новые

            DictionariesInfo.Where(i => (i.Dictionary != null)).ToList().ForEach(delegate(DictionaryInfo info)
            {
                if (info.Description != null) //Изменения в описание словаря
                {
                    if (info.Description != string.Empty)
                    {
                        info.Dictionary.Description = info.Description;
                    }
                }

                if (info.Name != null) //Изменение в наименование словаря
                {
                    if (info.Name != string.Empty)
                    {
                        info.Dictionary.Name = info.Name;
                    }
                }

                if (info.WordsNew != null && info.WordsNew.Count != 0) //Добавляем новые слова
                {
                    info.Dictionary.Words.AddRange(info.WordsNew);
                }

                if (info.WordsExclude != null && info.WordsExclude.Count != 0) //Исключаем слова из словаря
                {
                    info.WordsExclude.ForEach(delegate(Word w)
                    {
                        info.Dictionary.Words.Remove(w);
                    });
                }
            });

            DictionariesInfo.Where(i => (i.Dictionary == null)).ToList().ForEach(delegate(DictionaryInfo info)
            {
                Dictionary dic  = new Dictionary();
                dic.Name        = info.Name;
                dic.Description = info.Description;

                this.Dictionaties.Add(dic);
            });

            #endregion

            #region Часть 2. Удаляем словари

            DictionariesInfoDelete.ForEach(delegate(DictionaryInfo info)
                                           { Dictionaties.Remove(info.Dictionary); });

            #endregion

            #region Часть 3. Записываем все в XDocument

            Dictionaties.ForEach(delegate(Dictionary d)
            {
                XElement xe = new XElement("dictionary");
                xe.Add(new XAttribute("name", d.Name));
                xe.Add(new XAttribute("descr", d.Description));
                xe.Add(new XAttribute("cost", d.COST));

                if (d.COST)
                {
                    xe.Add(new XAttribute("words", string.Empty));
                }

                else
                {
                    string words = string.Empty;

                    d.Words.ForEach(delegate(Word w)
                                    { words += "#" + w.ID; });

                    xe.Add(new XAttribute("words", words));
                }

                root.Add(xe);
            });

            #endregion
        }