public PartialViewResult SelectAdministrator()
    {
      AdminUserSelectModel m = new AdminUserSelectModel();
      m.GetPostHref = (u) => Url.Action("AddAdministrator", "Admin", new { userId = u.Ids.First() });
      m.CancelHref = Url.Action("Administrators");
      m.SelectionTitle = "Select New Administrator";
      int total; //TODO: paging
      m.Users = UserRepository.GetUsers(0, int.MaxValue, out total)
        .Where(u => u.Ids.Intersect(AppService.Admins).Count() == 0).ToPagedList(0, int.MaxValue, total);

      return PartialView("AdminUserSelect", m);
    }
    public PartialViewResult SelectContributor(string workspace, string collection)
    {
      AdminUserSelectModel m = new AdminUserSelectModel();
      m.GetPostHref = (u) => Url.Action("AddContributor", "Admin", new { workspace = Scope.Workspace, collection = Scope.Collection, userId = u.Ids.First() });
      m.CancelHref = Url.Action("People", new { workspace = workspace, collection = collection });
      m.SelectionTitle = "Select New Contributor";
      int total; //TODO: paging
      m.Users = UserRepository.GetUsers(0, int.MaxValue, out total)
        .Where(u => u.Ids.Intersect(Workspace.Contributors).Count() == 0).ToPagedList(0, int.MaxValue, total);

      return PartialView("AdminUserSelect", m);
    }