/// <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> /// класс темы для конвертации /// xslt /// </summary> /// <param name="_item">тема курса</param> /// <param name="_factory">фабрика элементов курса</param> public ItemSectionForXSLT(LearningSection _item,XSLTItemsFactory _factory) { if (_item == null || _factory==null) throw new ArgumentNullException(); try { item = _item; Items = new ObservableCollection<IItemModel>(); InitChild(_item,_factory); } catch(Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// класс темы для конвертации /// xslt /// </summary> /// <param name="_item">тема курса</param> /// <param name="_factory">фабрика элементов курса</param> public ItemSectionForXSLT(LearningSection _item, XSLTItemsFactory _factory) { if (_item == null || _factory == null) { throw new ArgumentNullException(); } try { item = _item; Items = new ObservableCollection <IItemModel>(); InitChild(_item, _factory); } catch (Exception ex) { throw new Exception(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); } } }