protected virtual void AddAccessAttribute(ContentType contentType, CodeTypeDeclaration typeDeclaration) { if (contentType.ACL == null) return; var accessEntries = contentType.ACL.Entries.Where(acl => !acl.Name.Equals("Everyone")); if (!accessEntries.Any()) return; var accessAttribute = new CodeAttributeDeclaration("Access"); var users = string.Join(", ", accessEntries.Where(acl => acl.EntityType == SecurityEntityType.User).Select(acl => acl.Name)); if (!string.IsNullOrEmpty(users)) { accessAttribute.AddArgument("Users", users); } var roles = string.Join(", ", accessEntries.Where(acl => acl.EntityType == SecurityEntityType.Role).Select(acl => acl.Name)); if (!string.IsNullOrEmpty(users)) { accessAttribute.AddArgument("Roles", roles); } typeDeclaration.CustomAttributes.Add(accessAttribute); }
protected virtual void AddContentTypeAttribute(ContentType contentType, CodeTypeDeclaration typeDeclaration) { var contentTypeAttribute = new CodeAttributeDeclaration("ContentType"); if (contentType.GUID != Guid.Empty) { contentTypeAttribute.AddArgument("GUID", contentType.GUID.ToString()); } if (!string.IsNullOrWhiteSpace(contentType.DisplayName)) { contentTypeAttribute.AddArgument("DisplayName", contentType.DisplayName); } if (contentType.SortOrder != 0) { contentTypeAttribute.AddArgument("Order", contentType.SortOrder); } if (!contentType.IsAvailable) { contentTypeAttribute.AddArgument("AvailableInEditMode", contentType.IsAvailable); } if (!string.IsNullOrWhiteSpace(contentType.Description)) { contentTypeAttribute.AddArgument("Description", contentType.Description); } // We will not add the group name as it is included in the DisplayName //if (!string.IsNullOrWhiteSpace(contentType.GroupName)) //{ // contentTypeAttribute.AddArgument("GroupName", contentType.GroupName); //} typeDeclaration.CustomAttributes.Add(contentTypeAttribute); }