public SiteAuditableProperties AllPropertiesForDocType(string DocTypeAlias) { var allProps = new SiteAuditableProperties(); allProps.PropsForDoctype = DocTypeAlias; List <AuditableProperty> propertiesList = new List <AuditableProperty>(); var ct = _services.ContentTypeService.GetContentType(DocTypeAlias); var propsDone = new List <int>(); //First, compositions foreach (var comp in ct.ContentTypeComposition) { foreach (var group in comp.CompositionPropertyGroups) { foreach (var prop in group.PropertyTypes) { AuditableProperty auditProp = PropertyTypeToAuditableProperty(prop); auditProp.InComposition = comp.Name; auditProp.GroupName = group.Name; propertiesList.Add(auditProp); propsDone.Add(prop.Id); } } } //Next, non-comp properties foreach (var group in ct.CompositionPropertyGroups) { foreach (var prop in group.PropertyTypes) { //check if already added... if (!propsDone.Contains(prop.Id)) { AuditableProperty auditProp = PropertyTypeToAuditableProperty(prop); auditProp.GroupName = group.Name; auditProp.InComposition = "~NONE"; propertiesList.Add(auditProp); } } } allProps.AllProperties = propertiesList; return(allProps); }
public SiteAuditableProperties AllProperties() { var allProps = new SiteAuditableProperties(); allProps.PropsForDoctype = "[All]"; List <AuditableProperty> propertiesList = new List <AuditableProperty>(); var allDocTypes = _services.ContentTypeService.GetAllContentTypes(); foreach (var docType in allDocTypes) { //var ct = _services.ContentTypeService.Get(docTypeAlias); foreach (var prop in docType.PropertyTypes) { //test for the same property already in list if (propertiesList.Exists(i => i.UmbPropertyType.Alias == prop.Alias & i.UmbPropertyType.Name == prop.Name & i.UmbPropertyType.DataTypeId == prop.DataTypeId)) { //Add current DocType to existing property var info = new PropertyDoctypeInfo(); info.Id = docType.Id; info.DocTypeAlias = docType.Alias; info.GroupName = ""; propertiesList.Find(i => i.UmbPropertyType.Alias == prop.Alias).AllDocTypes.Add(info); } else { //Add new property AuditableProperty auditProp = PropertyTypeToAuditableProperty(prop); var info = new PropertyDoctypeInfo(); info.DocTypeAlias = docType.Alias; info.GroupName = ""; auditProp.AllDocTypes.Add(info); propertiesList.Add(auditProp); } } } allProps.AllProperties = propertiesList; return(allProps); }