public ActionResult MembershipStatistics(UserGroup userGroup, UserGroupMembership userGroupMembership, User currentUser) { Require.NotNull(userGroup, "userGroup"); Require.NotNull(userGroupMembership, "userGroupMembership"); Require.IsTrue(() => userGroupMembership.UserGroup.Equals(userGroup), "userGroupMembership"); Require.IsFalse(() => userGroupMembership.MembershipType == UserGroupMembershipType.Quit, "userGroupMembership"); UserGroupMembership currentUsersMembershipInGroup = UserGroupService.FindMembershipsByUserAndGroup(currentUser, userGroup); IList <UserGroupMembership> members = UserGroupService.FindMembershipsByGroups(PageRequest.All, new List <UserGroup> { userGroup }, new List <UserGroupMembershipType> { UserGroupMembershipType.Administrator, UserGroupMembershipType.Member }).ToList(); IDictionary <UserGroupMembership, int> userGroupMembersKarma = PeanutService.GetUserGroupMembersKarma(userGroup); return(View("UserGroupMembershipStatistics", new UserGroupMembershipStatisticsViewModel(userGroupMembership, members, new UserGroupMembershipOptions(userGroupMembership, currentUsersMembershipInGroup), PeanutService.GetPeanutsUserGroupMembershipStatistics(userGroupMembership), userGroupMembersKarma ))); }