如何使用新API以编程方式在Umbraco中创建新的MemberType

时间:2015-01-08 01:12:20

标签: c# umbraco umbraco7

我试图在Umbraco中创建一个新的成员类型,如果它还不存在,将自动创建。但是,我发现制作新MemberType的唯一代码标记为已废弃。

umbraco.cms.businesslogic.member.MemberType.MakeNew(admin, memberType.Name)

如何使用新API执行此操作?我相信新的API位于命名空间Umbraco.Core.Models下。

参考current documentation for v6+ is here,但有点缺乏。

2 个答案:

答案 0 :(得分:1)

也可以解决这个问题。我有许多由公司分开的用户,并且客户希望能够一次性“取消”批准/删除多个用户。如果我为每个公司创建MemberGroup,那么选择它们很容易,因为它们将通过后端的“成员”页面上的下拉列表进行预先排序。

我接触到的东西,好像你看一下当前Member的属性,它实际上是DocumentType。因此,在使用Services.ContentTypeService时,我尝试创建一个新的ContentType,在Umbraco 7中是DocumentType。但是你需要一个ParentId来创建它。

我不知道ParentId,因此我尝试通过获取组Member中的当前成员并以此方式获取ParentId来提取此内容。但是,ID为-1

如果有人遇到创建MemberGroups的解决方案,我很想知道。

答案 1 :(得分:1)

如果您使用的是umbraco 7,最好使用会员类型服务。以下是您可以采用的简单方法。

public void CreateMemberType(IContentTypeComposition parent, string memberTypeAlias)
{
        IMemberType memberType = new Umbraco.Core.Models.MemberType(parent, memberTypeAlias);
        ApplicationContext.Current.Services.MemberTypeService.Save(memberType);
}

添加成员组

ApplicationContext.Current.Services.MemberService.AddRole("Group Name");