/// <summary> /// Gets the fields of a specific item version. /// </summary> /// <param name="itemDefinition">The item.</param> /// <param name="versionUri">The version URI.</param> /// <param name="context">The context.</param> /// <returns>Sitecore.Data.FieldList.</returns> public override FieldList GetItemFields(ItemDefinition itemDefinition, VersionUri versionUri, CallContext context) { if (!_setupComplete) { return(base.GetItemFields(itemDefinition, versionUri, context)); } var fields = new FieldList(); var sectionTable = SectionTable.ToList();//prevent "Collection was modified" var sectionInfo = sectionTable.FirstOrDefault(x => x.SectionId == itemDefinition.ID); if (sectionInfo != null) { GetStandardFields(fields, sectionInfo.SectionSortOrder >= 0 ? sectionInfo.SectionSortOrder : 100); return(fields); } var fieldtable = FieldTable.ToList();//prevent "Collection was modified" var fieldInfo = fieldtable.FirstOrDefault(x => x.FieldId == itemDefinition.ID); if (fieldInfo != null) { GetStandardFields(fields, fieldInfo.FieldSortOrder >= 0 ? fieldInfo.FieldSortOrder : 100); GetFieldFields(fieldInfo, fields); return(fields); } return(base.GetItemFields(itemDefinition, versionUri, context)); }
/// <summary> /// Gets the parent ID of an item. /// </summary> /// <param name="itemDefinition">The item definition.</param> /// <param name="context">The context.</param> /// <returns>Sitecore.Data.ID.</returns> public override ID GetParentID(ItemDefinition itemDefinition, CallContext context) { if (!_setupComplete) { return(base.GetParentID(itemDefinition, context)); } var sectionTable = SectionTable.ToList();//prevent "Collection was modified" var section = sectionTable.FirstOrDefault(x => x.SectionId == itemDefinition.ID); if (section != null) { return(section.TemplateId); } var fieldtable = FieldTable.ToList();//prevent "Collection was modified" var field = fieldtable.FirstOrDefault(x => x.FieldId == itemDefinition.ID); if (field != null) { return(field.SectionId); } return(base.GetParentID(itemDefinition, context)); }
/// <summary> /// Gets the definition of an item. /// </summary> /// <param name="itemId">The item ID.</param> /// <param name="context">The context.</param> /// <returns>Sitecore.Data.ItemDefinition.</returns> public override ItemDefinition GetItemDefinition(ID itemId, CallContext context) { if (!_setupComplete) { return(base.GetItemDefinition(itemId, context)); } var sectiontable = SectionTable.ToList();//prevent "Collection was modified" var section = sectiontable.FirstOrDefault(x => x.SectionId == itemId); if (section != null) { return(new GlassItemDefinition(itemId, section.Name, SectionTemplateId, ID.Null)); } var fieldtable = FieldTable.ToList();//prevent "Collection was modified" var field = fieldtable.FirstOrDefault(x => x.FieldId == itemId); if (field != null) { return(new GlassItemDefinition(itemId, field.Name, FieldTemplateId, ID.Null)); } return(base.GetItemDefinition(itemId, context)); }