本文整理汇总了C#中Rock.Model.CommunicationService.Where方法的典型用法代码示例。如果您正苦于以下问题:C# CommunicationService.Where方法的具体用法?C# CommunicationService.Where怎么用?C# CommunicationService.Where使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Rock.Model.CommunicationService
的用法示例。
在下文中一共展示了CommunicationService.Where方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BindGrid
private void BindGrid()
{
using ( new UnitOfWorkScope() )
{
var communications = new CommunicationService()
.Queryable()
.Where( c => c.Status != CommunicationStatus.Transient );
string subject = rFilter.GetUserPreference( "Subject" );
if ( !string.IsNullOrWhiteSpace( subject ) )
{
communications = communications.Where( c => c.Subject.StartsWith( subject ) );
}
Guid entityTypeGuid = Guid.Empty;
if ( Guid.TryParse( rFilter.GetUserPreference( "Channel" ), out entityTypeGuid ) )
{
communications = communications.Where( c => c.ChannelEntityType != null && c.ChannelEntityType.Guid.Equals( entityTypeGuid ) );
}
string status = rFilter.GetUserPreference( "Status" );
if ( !string.IsNullOrWhiteSpace( status ) )
{
var communicationStatus = (CommunicationStatus)System.Enum.Parse( typeof( CommunicationStatus ), status );
communications = communications.Where( c => c.Status == communicationStatus );
}
if ( canApprove )
{
int personId = 0;
if ( int.TryParse( rFilter.GetUserPreference( "Created By" ), out personId ) && personId != 0 )
{
communications = communications.Where( c => c.SenderPersonId.HasValue && c.SenderPersonId.Value == personId );
}
}
else
{
communications = communications.Where( c => c.SenderPersonId.HasValue && c.SenderPersonId.Value == CurrentPersonId );
}
string content = rFilter.GetUserPreference( "Content" );
if ( !string.IsNullOrWhiteSpace( content ) )
{
communications = communications.Where( c => c.ChannelDataJson.Contains( content ) );
}
var recipients = new CommunicationRecipientService().Queryable();
var sortProperty = gCommunication.SortProperty;
var queryable = communications
.Join( recipients,
c => c.Id,
r => r.CommunicationId,
( c, r ) => new { c, r } )
.GroupBy( cr => cr.c )
.Select( g => new CommunicationItem
{
Id = g.Key.Id,
Communication = g.Key,
Recipients = g.Count(),
PendingRecipients = g.Count( s => s.r.Status == CommunicationRecipientStatus.Pending ),
SuccessRecipients = g.Count( s => s.r.Status == CommunicationRecipientStatus.Success ),
FailedRecipients = g.Count( s => s.r.Status == CommunicationRecipientStatus.Failed ),
CancelledRecipients = g.Count( s => s.r.Status == CommunicationRecipientStatus.Cancelled )
} );
if ( sortProperty != null )
{
queryable = queryable.Sort( sortProperty );
}
else
{
queryable = queryable.OrderByDescending( c => c.Communication.Id );
}
gCommunication.DataSource = queryable.ToList();
gCommunication.DataBind();
}
}
示例2: BindGrid
/// <summary>
/// Binds the grid.
/// </summary>
private void BindGrid()
{
var rockContext = new RockContext();
var communications = new CommunicationService( rockContext )
.Queryable( "ChannelEntityType,Sender,Reviewer" )
.Where( c => c.Status != CommunicationStatus.Transient );
string subject = rFilter.GetUserPreference( "Subject" );
if ( !string.IsNullOrWhiteSpace( subject ) )
{
communications = communications.Where( c => c.Subject.Contains( subject ) );
}
Guid entityTypeGuid = Guid.Empty;
if ( Guid.TryParse( rFilter.GetUserPreference( "Channel" ), out entityTypeGuid ) )
{
communications = communications.Where( c => c.ChannelEntityType != null && c.ChannelEntityType.Guid.Equals( entityTypeGuid ) );
}
string status = rFilter.GetUserPreference( "Status" );
if ( !string.IsNullOrWhiteSpace( status ) )
{
var communicationStatus = (CommunicationStatus)System.Enum.Parse( typeof( CommunicationStatus ), status );
communications = communications.Where( c => c.Status == communicationStatus );
}
if ( canApprove )
{
int personId = 0;
if ( int.TryParse( rFilter.GetUserPreference( "Created By" ), out personId ) && personId != 0 )
{
communications = communications.Where( c => c.SenderPersonId.HasValue && c.SenderPersonId.Value == personId );
}
}
else
{
communications = communications.Where( c => c.SenderPersonId.HasValue && c.SenderPersonId.Value == CurrentPersonId );
}
string content = rFilter.GetUserPreference( "Content" );
if ( !string.IsNullOrWhiteSpace( content ) )
{
communications = communications.Where( c => c.ChannelDataJson.Contains( content ) );
}
var drp = new DateRangePicker();
drp.DelimitedValues = rFilter.GetUserPreference( "Date Range" );
if ( drp.LowerValue.HasValue )
{
communications = communications.Where( a => a.ReviewedDateTime >= drp.LowerValue.Value );
}
if ( drp.UpperValue.HasValue )
{
DateTime upperDate = drp.UpperValue.Value.Date.AddDays( 1 );
communications = communications.Where( a => a.ReviewedDateTime < upperDate );
}
var recipients = new CommunicationRecipientService( rockContext ).Queryable();
var queryable = communications
.Select( c => new CommunicationItem
{
Id = c.Id,
Communication = c,
Recipients = recipients
.Where( r => r.CommunicationId == c.Id)
.Count(),
PendingRecipients = recipients
.Where( r => r.CommunicationId == c.Id && r.Status == CommunicationRecipientStatus.Pending)
.Count(),
CancelledRecipients = recipients
.Where( r => r.CommunicationId == c.Id && r.Status == CommunicationRecipientStatus.Cancelled)
.Count(),
FailedRecipients = recipients
.Where( r => r.CommunicationId == c.Id && r.Status == CommunicationRecipientStatus.Failed)
.Count(),
DeliveredRecipients = recipients
.Where( r => r.CommunicationId == c.Id &&
(r.Status == CommunicationRecipientStatus.Delivered || r.Status == CommunicationRecipientStatus.Opened))
.Count(),
OpenedRecipients = recipients
.Where( r => r.CommunicationId == c.Id && r.Status == CommunicationRecipientStatus.Opened)
.Count()
} );
var sortProperty = gCommunication.SortProperty;
if ( sortProperty != null )
{
queryable = queryable.Sort( sortProperty );
}
else
{
queryable = queryable.OrderByDescending( c => c.Communication.Id );
}
//.........这里部分代码省略.........
示例3: BindGrid
/// <summary>
/// Binds the grid.
/// </summary>
private void BindGrid()
{
// If configured for a person and person is null, return
int personEntityTypeId = EntityTypeCache.Read<Person>().Id;
if ( ContextTypesRequired.Any( e => e.Id == personEntityTypeId ) && _person == null )
{
return;
}
var rockContext = new RockContext();
var qryCommunications = new CommunicationService( rockContext ).Queryable().Where( c => c.Status != CommunicationStatus.Transient );
string subject = tbSubject.Text;
if ( !string.IsNullOrWhiteSpace( subject ) )
{
qryCommunications = qryCommunications.Where( c => c.Subject.Contains( subject ) );
}
Guid? entityTypeGuid = cpMedium.SelectedValue.AsGuidOrNull();
if ( entityTypeGuid.HasValue )
{
qryCommunications = qryCommunications.Where( c => c.MediumEntityType != null && c.MediumEntityType.Guid.Equals( entityTypeGuid.Value ) );
}
var communicationStatus = ddlStatus.SelectedValue.ConvertToEnumOrNull<CommunicationStatus>();
if ( communicationStatus.HasValue )
{
qryCommunications = qryCommunications.Where( c => c.Status == communicationStatus.Value );
}
// only communications for the selected recipient (_person)
if ( _person != null )
{
qryCommunications = qryCommunications
.Where( c =>
c.Recipients.Any( a =>
a.PersonAlias.PersonId == _person.Id &&
a.Status == CommunicationRecipientStatus.Delivered ) );
}
if ( drpDates.LowerValue.HasValue )
{
qryCommunications = qryCommunications.Where( a => a.CreatedDateTime >= drpDates.LowerValue.Value );
}
if ( drpDates.UpperValue.HasValue )
{
DateTime upperDate = drpDates.UpperValue.Value.Date.AddDays( 1 );
qryCommunications = qryCommunications.Where( a => a.CreatedDateTime < upperDate );
}
string content = tbContent.Text;
if ( !string.IsNullOrWhiteSpace( content ) )
{
qryCommunications = qryCommunications.Where( c => c.MediumDataJson.Contains( content ) );
}
var sortProperty = gCommunication.SortProperty;
if ( sortProperty != null )
{
qryCommunications = qryCommunications.Sort( sortProperty );
}
else
{
qryCommunications = qryCommunications.OrderByDescending( c => c.CreatedDateTime );
}
gCommunication.EntityTypeId = EntityTypeCache.Read<Rock.Model.Communication>().Id;
gCommunication.SetLinqDataSource( qryCommunications.Include(a => a.MediumEntityType).AsNoTracking() );
gCommunication.DataBind();
}
示例4: BindGrid
/// <summary>
/// Binds the grid.
/// </summary>
private void BindGrid()
{
var rockContext = new RockContext();
var communications = new CommunicationService( rockContext )
.Queryable().AsNoTracking()
.Where( c => c.Status != CommunicationStatus.Transient );
string subject = tbSubject.Text;
if ( !string.IsNullOrWhiteSpace( subject ) )
{
communications = communications.Where( c => c.Subject.Contains( subject ) );
}
Guid? entityTypeGuid = cpMedium.SelectedValue.AsGuidOrNull();
if ( entityTypeGuid.HasValue )
{
communications = communications.Where( c => c.MediumEntityType != null && c.MediumEntityType.Guid.Equals( entityTypeGuid.Value ) );
}
string status = ddlStatus.SelectedValue;
if ( !string.IsNullOrWhiteSpace( status ) )
{
var communicationStatus = (CommunicationStatus)System.Enum.Parse( typeof( CommunicationStatus ), status );
communications = communications.Where( c => c.Status == communicationStatus );
}
if ( canApprove )
{
if ( ppSender.PersonId.HasValue )
{
communications = communications
.Where( c =>
c.SenderPersonAlias != null &&
c.SenderPersonAlias.PersonId == ppSender.PersonId.Value );
}
}
else
{
// If can't approve, only show current person's communications
communications = communications
.Where( c =>
c.SenderPersonAlias != null &&
c.SenderPersonAlias.PersonId == CurrentPersonId );
}
if ( drpDates.LowerValue.HasValue )
{
communications = communications.Where( a => a.CreatedDateTime >= drpDates.LowerValue.Value );
}
if ( drpDates.UpperValue.HasValue )
{
DateTime upperDate = drpDates.UpperValue.Value.Date.AddDays( 1 );
communications = communications.Where( a => a.CreatedDateTime < upperDate );
}
string content = tbContent.Text;
if ( !string.IsNullOrWhiteSpace( content ) )
{
communications = communications.Where( c => c.MediumDataJson.Contains( content ) );
}
var recipients = new CommunicationRecipientService( rockContext ).Queryable();
var queryable = communications
.Select( c => new CommunicationItem {
Id = c.Id,
MediumEntityTypeId = c.MediumEntityTypeId,
MediumName = c.MediumEntityTypeId.HasValue ? c.MediumEntityType.FriendlyName : null,
Subject = c.Subject,
CreatedDateTime = c.CreatedDateTime,
Sender = c.SenderPersonAlias != null ? c.SenderPersonAlias.Person : null,
ReviewedDateTime = c.ReviewedDateTime,
Reviewer = c.ReviewerPersonAlias != null ? c.ReviewerPersonAlias.Person : null,
Status = c.Status,
Recipients = recipients.Where( r => r.CommunicationId == c.Id ).Count(),
PendingRecipients = recipients.Where( r => r.CommunicationId == c.Id && r.Status == CommunicationRecipientStatus.Pending ).Count(),
CancelledRecipients = recipients.Where( r => r.CommunicationId == c.Id && r.Status == CommunicationRecipientStatus.Cancelled ).Count(),
FailedRecipients = recipients.Where( r => r.CommunicationId == c.Id && r.Status == CommunicationRecipientStatus.Failed ).Count(),
DeliveredRecipients = recipients.Where( r => r.CommunicationId == c.Id && ( r.Status == CommunicationRecipientStatus.Delivered || r.Status == CommunicationRecipientStatus.Opened ) ).Count(),
OpenedRecipients = recipients.Where( r => r.CommunicationId == c.Id && r.Status == CommunicationRecipientStatus.Opened ).Count()
});
var sortProperty = gCommunication.SortProperty;
if ( sortProperty != null )
{
queryable = queryable.Sort( sortProperty );
}
else
{
queryable = queryable.OrderByDescending( c => c.CreatedDateTime );
}
gCommunication.EntityTypeId = EntityTypeCache.Read<Rock.Model.Communication>().Id;
gCommunication.SetLinqDataSource( queryable );
gCommunication.DataBind();
//.........这里部分代码省略.........