使用服务获取所有用户

时间:2014-01-02 16:43:27

标签: c# orchardcms orchardcms-1.6 orchardcms-1.7

在果园1.6中,我希望得到所有的记录 Orchard_Users_UserPartRecord表

我可以通过说:

来吸引用户
var user = _membershipService.GetUser(username);

 IUser userInfo = _authenticationService.GetAuthenticatedUser();

是不是有某种查询或服务允许我getAllUsers?...我确定有但我无法看到它所以iv试图添加我自己...

在membership Service.cs iv中的Orchard.Users模块中添加了:

public IEnumerable<IUser> GetAllUsers()
    {
        return _orchardServices.ContentManager.Query<UserPart, UserPartRecord>().List();
    }
IUserService iv中的tehn补充道:

IEnumerable<IUser> AllUsers();

并在userService iv中添加:

 public IEnumerable<IUser> AllUsers()
    {
        IEnumerable<IUser> users = _membershipService.//but it doesnt allow me to select GetAllUsers, but it does allow me to seleect
            //getUser, iv used the same code only changed the query why isnt it showing?
        if (users == null)
            return null;

        return users;
    }

然后我需要得到所有用户,我可以说:

IEnumerable<IUser> allUsers = _userService.AllUsers();

我认为有一项服务已经做到这一点,我只是没有看到它。任何想法?

1 个答案:

答案 0 :(得分:1)

GetAllUsers()上没有

_membershipService,因为_membershipService的接口类型为IMembershipService,而不是MembershipService类,您添加了GetAllUsers()方法。要使其可用,还要将GetAllUsers()的方法声明添加到IMembershipService界面。

至于服务是否已经存在,这似乎并非如此。您可以看到Orchard本身使用与上述相同的技术来获取用户列表,例如AdminController模块附带的Orchard.Users

var users = Services.ContentManager
    .Query<UserPart, UserPartRecord>();