public virtual Template ImportTemplate(IProject project, Data.Items.Item item) { var templateItem = new TemplateItem(item); var templateBuilder = new TemplateBuilder(Factory); templateBuilder.DatabaseName = templateItem.Database.Name; templateBuilder.Guid = templateItem.ID.ToString(); templateBuilder.TemplateName = templateItem.Name; templateBuilder.ItemIdOrPath = templateItem.InnerItem.Paths.Path; templateBuilder.Icon = templateItem.InnerItem.Appearance.Icon; templateBuilder.ShortHelp = templateItem.InnerItem.Help.ToolTip; templateBuilder.LongHelp = templateItem.InnerItem.Help.Text; var baseTemplates = templateItem.BaseTemplates; if (baseTemplates.Length > 1 || (baseTemplates.Length == 1 && baseTemplates[0].ID != TemplateIDs.StandardTemplate)) { templateBuilder.BaseTemplates = string.Join("|", baseTemplates.Select(i => i.InnerItem.Paths.Path)); } foreach (var templateSectionItem in templateItem.GetSections()) { var templateSectionBuilder = new TemplateSectionBuilder(Factory).With(templateBuilder, TextNode.Empty); templateSectionBuilder.SectionId = templateSectionItem.ID.ToString(); templateSectionBuilder.SectionName = templateSectionItem.Name; foreach (var templateFieldItem in templateSectionItem.GetFields()) { var templateFieldBuilder = new TemplateFieldBuilder(Factory).With(templateSectionBuilder, TextNode.Empty); templateFieldBuilder.FieldId = templateFieldItem.ID.ToString(); templateFieldBuilder.FieldName = templateFieldItem.Name; templateFieldBuilder.Source = templateFieldItem.Source; templateFieldBuilder.Type = templateFieldItem.Type; templateFieldBuilder.TemplateFieldShortHelp = templateFieldItem.InnerItem.Help.ToolTip; templateFieldBuilder.TemplateFieldLongHelp = templateFieldItem.InnerItem.Help.Text; templateSectionBuilder.Fields.Add(templateFieldBuilder); } templateBuilder.Sections.Add(templateSectionBuilder); } return templateBuilder.Build(project, TextNode.Empty); }
private Template BuildTemplate([Diagnostics.NotNull] IProject project, [Diagnostics.NotNull] Item item) { var templateItem = new TemplateItem(item); var templateBuilder = new TemplateBuilder(Factory); templateBuilder.DatabaseName = templateItem.Database.Name; templateBuilder.Guid = templateItem.ID.ToString(); templateBuilder.TemplateName = templateItem.Name; templateBuilder.ItemIdOrPath = templateItem.InnerItem.Paths.Path; templateBuilder.Icon = templateItem.InnerItem.Appearance.Icon; foreach (var templateSectionItem in templateItem.GetSections()) { var templateSectionBuilder = new TemplateSectionBuilder(Factory).With(templateBuilder, TextNode.Empty); templateSectionBuilder.SectionId = templateSectionItem.ID.ToString(); templateSectionBuilder.SectionName = templateSectionItem.Name; foreach (var templateFieldItem in templateSectionItem.GetFields()) { var templateFieldBuilder = new TemplateFieldBuilder(Factory).With(templateSectionBuilder, TextNode.Empty); templateFieldBuilder.FieldId = templateFieldItem.ID.ToString(); templateFieldBuilder.FieldName = templateFieldItem.Name; templateFieldBuilder.Source = templateFieldItem.Source; templateFieldBuilder.Type = templateFieldItem.Type; templateSectionBuilder.Fields.Add(templateFieldBuilder); } templateBuilder.Sections.Add(templateSectionBuilder); } return templateBuilder.Build(project, TextNode.Empty); }