/// <summary> /// Fills the specification keys. /// </summary> /// <param name="template">The template.</param> /// <param name="spec">The spec.</param> private void FillSpecificationKeys([NotNull] TemplateItem template, [NotNull] ref Collection <string> spec) { Assert.ArgumentNotNull(template, "template"); Assert.ArgumentNotNull(spec, "spec"); TemplateSectionItem section = template.GetSection("Specification"); if (section == null) { return; } foreach (TemplateFieldItem field in section.GetFields()) { if (!spec.Contains(field.Name)) { spec.Add(field.Name); } } foreach (TemplateItem baseTemplate in template.BaseTemplates) { this.FillSpecificationKeys(baseTemplate, ref spec); } }
public TemplateSection(TemplateSectionItem sectionItem, bool isContributing) { IsContributing = isContributing; RegionName = sectionItem.Name; RegionClassName = DomUtil.ConvertCaseString(sectionItem.Name); TemplateFieldItem[] fieldItems = sectionItem.GetFields(); TemplateFields = fieldItems != null ? fieldItems.Select(fieldItem => new TemplateField(fieldItem)) : null; }
/// <summary> /// Converts the section. /// </summary> /// <param name="item">The requested item.</param> /// <param name="section">The section.</param> /// <param name="writer">The writer.</param> private static void ConvertSection(Item item, TemplateSectionItem section, XmlTextWriter writer) { if (section != null) { foreach (TemplateFieldItem fieldInfo in section.GetFields()) { Field field = item.Fields[fieldInfo.ID]; if (field != null) { ConvertField(field, writer); } } } }
/// <summary> /// Scans the field. /// </summary> /// <param name="sectionItem">The section item.</param> /// <param name="field">The field.</param> /// <param name="result">The result.</param> private static void ScanField(TemplateSectionItem sectionItem, FieldDefinition field, List<ScanResult> result) { Assert.ArgumentNotNull((object)sectionItem, "sectionItem"); Assert.ArgumentNotNull((object)field, "field"); Assert.ArgumentNotNull((object)result, "result"); if (!(field.Deleted != "1") || string.IsNullOrEmpty(field.FieldID)) return; bool shared = StringUtil.GetString(new[] { field.IsShared }) == "1"; bool unversioned = StringUtil.GetString(new[] { field.IsUnversioned }) == "1"; TemplateFieldItem field1 = sectionItem.GetField(ID.Parse(field.FieldID)); if (field1 == null || field1.Shared == shared && field1.Unversioned == unversioned) return; Template template = TemplateManager.GetTemplate(sectionItem.Template.ID, sectionItem.Database); Assert.IsNotNull((object)template, typeof(Template)); TemplateField field2 = template.GetField(field1.ID); Assert.IsNotNull((object)field2, typeof(TemplateField)); result.Add(new TemplateBuilderForm.ScanResult(field2, field1.DisplayName, shared, unversioned)); }
/// <summary> /// Saves the field. /// </summary> /// <param name="sectionItem">The section item.</param> /// <param name="field">The field.</param> private static void SaveField(TemplateSectionItem sectionItem, FieldDefinition field) { Assert.ArgumentNotNull((object)sectionItem, "sectionItem"); Assert.ArgumentNotNull((object)field, "field"); TemplateFieldItem templateFieldItem = (TemplateFieldItem)null; if (!string.IsNullOrEmpty(field.FieldID)) templateFieldItem = sectionItem.GetField(ID.Parse(field.FieldID)); if (field.Deleted == "1") { if (templateFieldItem == null) return; templateFieldItem.InnerItem.Recycle(); } else { if (templateFieldItem == null) { templateFieldItem = sectionItem.AddField(field.Name); field.FieldID = templateFieldItem.ID.ToString(); } templateFieldItem.InnerItem.Editing.BeginEdit(); templateFieldItem.InnerItem.Name = StringUtil.GetString(new[] { field.Name }); templateFieldItem.Type = StringUtil.GetString(new[] { field.Type }); templateFieldItem.Source = StringUtil.GetString(new[] { field.Source }); templateFieldItem.Title = StringUtil.GetString(new[] { field.Title }); templateFieldItem.InnerItem["__Short description"] = StringUtil.GetString(new[] { field.Description }); templateFieldItem.InnerItem[TemplateFieldIDs.Unversioned] = StringUtil.GetString(new[] { field.IsUnversioned }) == "1" ? "1" : string.Empty; templateFieldItem.InnerItem[TemplateFieldIDs.Shared] = StringUtil.GetString(new[] { field.IsShared }) == "1" ? "1" : string.Empty; templateFieldItem.InnerItem.Appearance.Sortorder = MainUtil.GetInt(field.Sortorder, 0); templateFieldItem.InnerItem.Editing.EndEdit(); } }
/// <summary> /// Loads the section. /// </summary> /// <param name="template">The template.</param> /// <param name="section">The section.</param> private static void LoadSection(TemplateDefinition template, TemplateSectionItem section) { Assert.ArgumentNotNull((object)template, "template"); Assert.ArgumentNotNull((object)section, "section"); SectionDefinition sectionDefinition = new SectionDefinition() { SectionID = section.ID.ToString(), Name = section.Name, Sortorder = section.Sortorder.ToString() }; template.AddSection(sectionDefinition); foreach (TemplateFieldItem field in section.GetFields()) TemplateBuilderForm.LoadField(sectionDefinition, field); sectionDefinition.Fields.Sort((IComparer)new FieldComparer()); }
private TemplateFallbackFieldItem(Item innerItem, TemplateSectionItem owner) : base(innerItem, owner) { }
private static void MoveFields(TemplateSectionItem templateSectionItem, IEnumerable<Item> fields) { Assert.ArgumentNotNull(templateSectionItem, "templateSectionItem"); Assert.ArgumentNotNull(fields, "fields"); foreach (Item field in fields) { field.MoveTo(templateSectionItem.InnerItem); } }