Получить список забаненных пользователей по дате убывания - PullRequest
1 голос
/ 27 февраля 2011

Я делаю что-то подобное, чтобы получить список всех заблокированных пользователей:

public IQueryable<Aspnet_User> GetBannedUsers()
{
    return db.Aspnet_Memberships.Where(x => x.IsApproved == false).Select(x => x.Aspnet_User);
}

Я делаю это, чтобы заблокировать пользователей:

MembershipUser user = Membership.GetUser(username);
if (user != null)
{
    user.IsApproved = isApproved;
    Membership.UpdateUser(user);
}

как я могу получить список забаненных пользователей, упорядоченных по дате, когда они были забанены. последний забаненный должен быть первым.

Ответы [ 2 ]

2 голосов
/ 27 февраля 2011

По умолчанию членство в asp.net не сохраняет эту дату, поэтому вам придется использовать обходной путь. Аккуратный подход состоит в том, чтобы представить вашу собственную таблицу, но я предлагаю злоупотреблять LastLoginDate. Механизм по умолчанию не будет касаться этой даты, пока пользователь не войдет в систему должным образом (что предотвращает ваш! IsApproved).

Модифицированный код для блокировки пользователя:

MembershipUser user = Membership.GetUser(username);             
if (user != null)             
{                 
  user.IsApproved = isApproved;
  user.LastLoginDate = DateTime.Now;
  Membership.UpdateUser(user);             
}

Код для сортировки по дате запрета, копия вставлена ​​из ответа @ Femaref:

public IQueryable<Aspnet_User> GetBannedUsers()            
{ 
  return db.Aspnet_Memberships          
    .Where(x => x.IsApproved == false)                        
    .OrderByDescening(x => x.LastLoginDate) 
    .Select(x => x.Aspnet_User);
}
2 голосов
/ 27 февраля 2011
public IQueryable<Aspnet_User> GetBannedUsers()
{
    return db.Aspnet_Memberships
             .Where(x => x.IsApproved == false)
             .OrderByDescening(x => x.BannedDate) //adjust property here
             .Select(x => x.Aspnet_User);
}
...