internal static void ExportMvdTemplate(ConceptTemplate mvdTemplate, DocTemplateDefinition docTemplateDef, Dictionary<DocObject, bool> included, bool documentation)
{
ExportMvdObject(mvdTemplate, docTemplateDef, documentation);
mvdTemplate.ApplicableEntity = docTemplateDef.Type;
if (docTemplateDef.Rules != null && docTemplateDef.Rules.Count > 0)
{
mvdTemplate.Rules = new List<AttributeRule>();
foreach (DocModelRule docRule in docTemplateDef.Rules)
{
AttributeRule mvdAttr = new AttributeRule();
mvdTemplate.Rules.Add(mvdAttr);
ExportMvdRule(mvdAttr, docRule);
}
}
// recurse through sub-templates
if (docTemplateDef.Templates != null && docTemplateDef.Templates.Count > 0)
{
foreach (DocTemplateDefinition docSub in docTemplateDef.Templates)
{
if (included == null || included.ContainsKey(docSub))
{
if (mvdTemplate.SubTemplates == null)
{
mvdTemplate.SubTemplates = new List<ConceptTemplate>();
}
ConceptTemplate mvdSub = new ConceptTemplate();
mvdTemplate.SubTemplates.Add(mvdSub);
ExportMvdTemplate(mvdSub, docSub, included, documentation);
}
}
}
}