Exemple #1
0
        protected override void ProcessRecord()
        {
            switch (ParameterSetName)
            {
            case "Current":
                WriteObject(Context.User);
                break;

            case "Filter":
                var filter = Filter;

                if (filter.Is("*") || filter.Is("%"))
                {
                    int total;
                    var users =
                        new PagingIterator <MembershipUser>(
                            pageIndex => Membership.GetAllUsers(pageIndex, ResultPageSize, out total));
                    WriteUsers(users);
                }
                else if (filter.Contains("?") || filter.Contains("*"))
                {
                    var pattern = filter.Replace("*", "%").Replace("?", "%");
                    int total;

                    if (filter.Contains("@"))
                    {
                        var users =
                            new PagingIterator <MembershipUser>(
                                pageIndex =>
                                Membership.FindUsersByEmail(pattern, pageIndex, ResultPageSize, out total));
                        WriteUsers(users);
                    }
                    else
                    {
                        var users =
                            new PagingIterator <MembershipUser>(
                                pageIndex =>
                                Membership.FindUsersByName(pattern, pageIndex, ResultPageSize, out total));
                        WriteUsers(users);
                    }
                }
                break;

            default:
                if (this.CanFindAccount(Identity, AccountType.User))
                {
                    WriteObject(User.FromName(Identity.Name, Authenticated));
                }
                break;
            }
        }
 private void WriteUsers(PagingIterator <MembershipUser> users)
 {
     if (IsParameterSpecified("ResultPageSize"))
     {
         foreach (var user in users)
         {
             WriteObject(User.FromName(user.UserName, Authenticated));
         }
     }
     else
     {
         var accumulatedUsers = new Enumerable <User>(() => users.ToList(), o => User.FromName(((MembershipUser)o).UserName, Authenticated));
         WriteObject(accumulatedUsers, true);
     }
 }