Ejemplo n.º 1
0
        private static void Delete(Part part)
        {
            if (part == null)
            {
                throw new ApplicationException("Часть для удаления не выбрана");
            }

            XDocument partList = XDocument.Load(Constants.PartsFileName);
            var       items    = from pt in partList.Element("Parts").Elements("Part")
                                 where Int32.Parse(pt.Element("ID").Value) == part.ID
                                 select pt;

            if (items.Count() == 0)
            {
                throw new ApplicationException("Критическая ошибка, не найден изменяемый элемент");
            }
            if (items.Count() > 1)
            {
                throw new ApplicationException("Критическая ошибка, найдено несколько элементов для удаления. Это не должно было случиться!");
            }

            XElement changedPart       = items.First();
            bool     successfullRemove = false;

            foreach (var pt in partList.Element("Parts").Elements("Part"))
            {
                if (pt.Element("ID").Value == changedPart.Element("ID").Value)
                {
                    pt.Remove();
                    successfullRemove = true;
                    break;
                }
            }

            if (!successfullRemove)
            {
                throw new ApplicationException("Критическая ошибка, не удалось удалить часть");
            }

            partList.Save(Constants.PartsFileName);
            IDGenerator.DeleteID(Int32.Parse(changedPart.Element("ID").Value));
        }
Ejemplo n.º 2
0
 private static void Delete(Chapter chapter)
 {
     try
     {
         XDocument chapterList = XDocument.Load(Constants.ChaptersFileName);
         var       items       = from chapt in chapterList.Root.Elements("Chapter")
                                 where Int32.Parse(chapt.Element("ID").Value) == chapter.ID
                                 select chapt;
         if (items.Count() == 0)
         {
             throw new ApplicationException("Критическая ошибка, не найден изменяемый элемент");
         }
         if (items.Count() > 1)
         {
             throw new ApplicationException("Критическая ошибка, найдено несколько элементов для удаления. Это не должно было случиться!");
         }
         XElement changedChapter = items.First();
         foreach (var chapt in chapterList.Root.Elements("Chapter"))
         {
             if (chapt.Element("ID").Value == changedChapter.Element("ID").Value)
             {
                 chapt.Remove();
                 break;
             }
         }
         chapterList.Save(Constants.ChaptersFileName);
         IDGenerator.DeleteID(Int32.Parse(changedChapter.Element("ID").Value));
     }
     catch (ApplicationException ex)
     {
         throw new ApplicationException(ex.Message);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }