private void BindGrid() { var qry = new UserLoginService().Queryable() .Where( l => !_personId.HasValue || l.PersonId == _personId.Value ); // username filter string usernameFilter = gfSettings.GetUserPreference( "Username" ); if (!string.IsNullOrWhiteSpace(usernameFilter)) { qry = qry.Where( l => l.UserName.StartsWith( usernameFilter ) ); } // provider filter Guid guid = Guid.Empty; if (Guid.TryParse(gfSettings.GetUserPreference( "Authentication Provider" ), out guid)) { qry = qry.Where( l => l.EntityType.Guid.Equals( guid ) ); } // created filter var drp = new DateRangePicker(); drp.DelimitedValues = gfSettings.GetUserPreference( "Created" ); if ( drp.LowerValue.HasValue ) { qry = qry.Where( l => l.CreationDateTime >= drp.LowerValue.Value ); } if ( drp.UpperValue.HasValue ) { DateTime upperDate = drp.UpperValue.Value.Date.AddDays( 1 ); qry = qry.Where( l => l.CreationDateTime < upperDate ); } // last login filter var drp2 = new DateRangePicker(); drp2.DelimitedValues = gfSettings.GetUserPreference( "Last Login" ); if ( drp2.LowerValue.HasValue ) { qry = qry.Where( l => l.LastLoginDateTime >= drp2.LowerValue.Value ); } if ( drp2.UpperValue.HasValue ) { DateTime upperDate = drp2.UpperValue.Value.Date.AddDays( 1 ); qry = qry.Where( l => l.LastLoginDateTime < upperDate ); } // Is Confirmed filter bool isConfirmed = false; if (bool.TryParse(gfSettings.GetUserPreference( "Is Confirmed" ), out isConfirmed)) { qry = qry.Where( l => l.IsConfirmed == isConfirmed || ( !isConfirmed && l.IsConfirmed == null ) ); } // is locked out filter bool isLockedOut = false; if ( bool.TryParse( gfSettings.GetUserPreference( "Is Locked Out" ), out isLockedOut ) ) { qry = qry.Where( l => l.IsLockedOut == isLockedOut || ( !isLockedOut && l.IsLockedOut == null ) ); } // Sort SortProperty sortProperty = gUserLogins.SortProperty; if ( sortProperty == null ) { sortProperty = new SortProperty( new GridViewSortEventArgs( "UserName", SortDirection.Ascending ) ); } gUserLogins.DataSource = qry.Sort( sortProperty ) .Select( l => new { Id = l.Id, UserName = l.UserName, PersonId = l.PersonId, PersonName = l.Person.LastName + ", " + l.Person.NickName, ProviderName = l.EntityType.FriendlyName, CreationDateTime = l.CreationDateTime, LastLoginDateTime = l.LastLoginDateTime, IsConfirmed = l.IsConfirmed, IsLockedOut = l.IsLockedOut } ).ToList(); gUserLogins.DataBind(); }