/// <summary> /// возвращает тип элемента /// курса /// </summary> /// <param name="self">элемент курса</param> /// <returns>тип элемента курса /// или ItemType.None, если тип не может быть определен</returns> public static ItemType GetItemType(this AbstractLearningItem self) { if (self == null) { return(ItemType.None); } if (self is LearningSection) { return(ItemType.Section); } if (self is LearningItem) { return(ItemType.Theme); } if (self is Test) { return(ItemType.Test); } if (self is IncomingTest) { return(ItemType.InTest); } if (self is OutcomingTest) { return(ItemType.OutTest); } return(ItemType.None); }
/// <summary> /// получить объект элемента курса /// IItemModelForXSLT /// </summary> /// <param name="_item">объект элемента курса IItemModel</param> /// <param name="_isValid">выходная переменная для подтверждения корректности опреации /// создания элемента</param> /// <returns>объект элемента курса IItemModelForXSLT /// null - объект не идентифицирован</returns> /// <exception cref="ArgumentNullException"></exception> /// <remarks>выходная переменная внесена для предотвращения исключений /// с возвратом нулевого элемента заведомо учтенных данных (входной, выходной тесты)</remarks> public IItemModelForXSLT Create(AbstractLearningItem _item,out bool _isValid) { if (_item == null) throw new ArgumentNullException(); IItemModelForXSLT im = null; _isValid = false; ItemType iType = _item.GetItemType(); switch (iType) { case ItemType.Section: im = new ItemSectionForXSLT((LearningSection)_item,this); break; case ItemType.Theme: im = new ItemThemeForXSLT((LearningItem)_item, tlFactory); break; case ItemType.Test: im = new ItemTestForXSLT((ContentLib.Core.Content.Testing.Test)_item); break; case ItemType.InTest: case ItemType.OutTest: _isValid = true; break; } if (im != null) _isValid = true; return im; }
/// <summary> /// получить объект элемента курса /// IItemModelForXSLT /// </summary> /// <param name="_item">объект элемента курса IItemModel</param> /// <param name="_isValid">выходная переменная для подтверждения корректности опреации /// создания элемента</param> /// <returns>объект элемента курса IItemModelForXSLT /// null - объект не идентифицирован</returns> /// <exception cref="ArgumentNullException"></exception> /// <remarks>выходная переменная внесена для предотвращения исключений /// с возвратом нулевого элемента заведомо учтенных данных (входной, выходной тесты)</remarks> public IItemModelForXSLT Create(AbstractLearningItem _item, out bool _isValid) { if (_item == null) { throw new ArgumentNullException(); } IItemModelForXSLT im = null; _isValid = false; ItemType iType = _item.GetItemType(); switch (iType) { case ItemType.Section: im = new ItemSectionForXSLT((LearningSection)_item, this); break; case ItemType.Theme: im = new ItemThemeForXSLT((LearningItem)_item, tlFactory); break; case ItemType.Test: im = new ItemTestForXSLT((ContentLib.Core.Content.Testing.Test)_item); break; case ItemType.InTest: case ItemType.OutTest: _isValid = true; break; } if (im != null) { _isValid = true; } return(im); }