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