/// <summary> /// инициализирует дочерние элементы /// </summary> /// <param name="_item">корневой элемент</param> /// <param name="_factory">фабрика элементов курса</param> /// <exception cref="ArgumentNullException">Нулевой дочерний элемент</exception> /// <exception cref="AppException">Не удалось идентифицировать дочерний элемент</exception> void InitChild(LearningSection _item, XSLTItemsFactory _factory) { IItemModelForXSLT ch = null; bool validCreating = false; foreach (AbstractLearningItem li in _item.childs) { try { ch = _factory.Create(li, out validCreating); if (!validCreating) { throw new Exception(item.identifier + ": неопределенный тип элемента курса: " + item.GetType()); } if (ch != null) { Items.Add(ch); } } catch (ArgumentNullException) { throw new Exception("Один из дочерних элементов нулевой: " + _item.identifier); } catch (Exception ex) { throw new Exception(ex.Message); } } }
/// <summary> /// загрузка единиц курса /// </summary> /// <exception cref="AppException"> /// Возникает в случае ошибки загрузки единиц курса /// (возможно ранее не был указан путь)</exception> void LoadCourseItems() { try { IItemModel im = null; items = new ObservableCollection <IItemModel>(); bool validCreating = false; foreach (AbstractLearningItem item in Course) { if ((item.isReferenced) && (!item.isLoaded)) { item.LoadFromPath(CourseLoadType.Full); } } foreach (AbstractLearningItem item in Course.childs) { im = itemsFactory.Create(item, out validCreating); if (!validCreating) { throw new Exception(item.identifier + ": неопределенный тип элемента курса: " + item.GetType()); } if (im != null) { items.Add(im); } } isItemsLoad = true; } catch (Exception ex) { throw new Exception("Ошибка загрузки единиц курса." + "/n" + ex.Message); } }
/// <summary> /// инициализирует дочерние элементы /// </summary> /// <param name="_item">корневой элемент</param> /// <param name="_factory">фабрика элементов курса</param> /// <exception cref="ArgumentNullException">Нулевой дочерний элемент</exception> /// <exception cref="AppException">Не удалось идентифицировать дочерний элемент</exception> void InitChild(LearningSection _item, XSLTItemsFactory _factory) { IItemModelForXSLT ch = null; bool validCreating = false; foreach (AbstractLearningItem li in _item.childs) { try { ch = _factory.Create(li, out validCreating); if (!validCreating) throw new Exception(item.identifier + ": неопределенный тип элемента курса: " + item.GetType()); if (ch != null) Items.Add(ch); } catch (ArgumentNullException) { throw new Exception("Один из дочерних элементов нулевой: " + _item.identifier); } catch (Exception ex) { throw new Exception(ex.Message); } } }