本文整理汇总了C#中Rock.Model.GroupTypeService.Contains方法的典型用法代码示例。如果您正苦于以下问题:C# GroupTypeService.Contains方法的具体用法?C# GroupTypeService.Contains怎么用?C# GroupTypeService.Contains使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Rock.Model.GroupTypeService
的用法示例。
在下文中一共展示了GroupTypeService.Contains方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetMetricValues
/// <summary>
/// Gets the metric values.
/// </summary>
/// <param name="isPrimary">if set to <c>true</c> [is primary].</param>
/// <returns></returns>
protected List<MetricValue> GetMetricValues( bool isPrimary )
{
var rockContext = new RockContext();
var metricService = new MetricService( rockContext );
List<Guid> sourceGuids = null;
var preKey = isPrimary ? string.Empty : "Comparison";
IQueryable<MetricValue> metricValues = null;
var attributeValue = GetAttributeValue( preKey + "MetricSource" );
if ( string.IsNullOrWhiteSpace( attributeValue ) )
{
attributeValue = string.Empty;
}
var pairs = MetricCategoriesFieldAttribute.GetValueAsGuidPairs( attributeValue );
sourceGuids = pairs.Select( p => p.MetricGuid ).ToList();
if ( sourceGuids.Any() )
{
metricValues = metricService.GetByGuids( sourceGuids ).SelectMany( m => m.MetricValues );
}
else
{
nbMetricWarning.Visible = true;
pnlMetricDisplay.Visible = false;
return null;
}
if ( GetAttributeValue( preKey + "RespectCampusContext" ).AsBoolean() )
{
var campusContext = RockPage.GetCurrentContext( EntityTypeCache.Read( typeof( Campus ) ) );
if ( campusContext != null )
{
metricValues = FilterMetricValuesByPartition( metricValues, "Campus", campusContext.Id );
}
}
if ( GetAttributeValue( preKey + "RespectGroupContext" ).AsBoolean() )
{
var groupTypeContext = RockPage.GetCurrentContext( EntityTypeCache.Read( typeof( GroupType ) ) );
var groupContext = RockPage.GetCurrentContext( EntityTypeCache.Read( typeof( Group ) ) );
if ( groupContext != null )
{
metricValues = FilterMetricValuesByPartition( metricValues, "Group", groupContext.Id );
}
else if ( groupTypeContext != null )
{
var groupTypeIds = new GroupTypeService( rockContext ).GetAllAssociatedDescendents( groupTypeContext.Id ).Select( gt => gt.Id );
var groupIds = new GroupService( rockContext ).Queryable().Where( g => groupTypeIds.Contains( g.GroupTypeId ) ).Select( g => g.Id );
metricValues = metricValues.Where( a => a.MetricValuePartitions.Any( mvp => mvp.MetricPartition.Label == "Group" && groupIds.Any( i => i == mvp.EntityId ) ) );
}
}
if ( GetAttributeValue( preKey + "RespectDateContext" ).AsBoolean() )
{
var dateRangeString = RockPage.GetUserPreference( ContextPreferenceName );
if ( !string.IsNullOrWhiteSpace( dateRangeString ) )
{
var dateRange = SlidingDateRangePicker.CalculateDateRangeFromDelimitedValues( dateRangeString );
metricValues = metricValues.Where( v => v.MetricValueDateTime >= dateRange.Start && v.MetricValueDateTime <= dateRange.End );
}
}
if ( GetAttributeValue( preKey + "RespectScheduleContext" ).AsBoolean() )
{
var scheduleContext = RockPage.GetCurrentContext( EntityTypeCache.Read( typeof( Schedule ) ) );
if ( scheduleContext != null )
{
metricValues = FilterMetricValuesByPartition( metricValues, "Schedule", scheduleContext.Id );
}
}
return metricValues.ToList();
}
示例2: ShowReadonlyDetails
/// <summary>
/// Shows the readonly details.
/// </summary>
/// <param name="groupType">The groupType.</param>
private void ShowReadonlyDetails( GroupType groupType )
{
SetEditMode( false );
if ( groupType != null )
{
hfGroupTypeId.SetValue( groupType.Id );
lReadOnlyTitle.Text = groupType.ToString().FormatAsHtmlTitle();
lDescription.Text = groupType.Description;
groupType.LoadAttributes();
hlType.Text = groupType.GetAttributeValue( "CheckInType" );
hlType.Visible = true;
DescriptionList mainDetailsDescList = new DescriptionList();
DescriptionList leftDetailsDescList = new DescriptionList();
DescriptionList rightDetailsDescList = new DescriptionList();
string scheduleList = string.Empty;
using ( var rockContext = new RockContext() )
{
var descendantGroupTypeIds = new GroupTypeService( rockContext ).GetAllAssociatedDescendents( groupType.Id ).Select( a => a.Id );
scheduleList = new GroupLocationService( rockContext )
.Queryable().AsNoTracking()
.Where( a =>
a.Group.GroupType.Id == groupType.Id ||
descendantGroupTypeIds.Contains( a.Group.GroupTypeId ) )
.SelectMany( a => a.Schedules )
.Select( s => s.Name )
.Distinct()
.OrderBy( s => s )
.ToList()
.AsDelimited( ", " );
}
if ( !string.IsNullOrWhiteSpace( scheduleList ) )
{
mainDetailsDescList.Add( "Scheduled Times", scheduleList );
}
groupType.LoadAttributes();
if ( groupType.AttributeValues.ContainsKey( "core_checkin_CheckInType" ) )
{
leftDetailsDescList.Add( "Check-in Type", groupType.AttributeValues["core_checkin_CheckInType"].ValueFormatted );
}
if ( groupType.AttributeValues.ContainsKey( "core_checkin_SecurityCodeLength" ) )
{
leftDetailsDescList.Add( "Security Code Length", groupType.AttributeValues["core_checkin_SecurityCodeLength"].ValueFormatted );
}
if ( groupType.AttributeValues.ContainsKey( "core_checkin_SearchType" ) )
{
rightDetailsDescList.Add( "Search Type", groupType.AttributeValues["core_checkin_SearchType"].ValueFormatted );
}
if ( groupType.AttributeValues.ContainsKey( "core_checkin_PhoneSearchType" ) )
{
rightDetailsDescList.Add( "Phone Number Compare", groupType.AttributeValues["core_checkin_PhoneSearchType"].ValueFormatted );
}
lblMainDetails.Text = mainDetailsDescList.Html;
lblLeftDetails.Text = leftDetailsDescList.Html;
lblRightDetails.Text = rightDetailsDescList.Html;
}
}
示例3: BindGrid
/// <summary>
/// Binds the grid.
/// </summary>
protected void BindGrid()
{
AddScheduleColumns();
var rockContext = new RockContext();
var groupLocationService = new GroupLocationService( rockContext );
var groupLocationQry = groupLocationService.Queryable();
int groupTypeId;
// if this page has a PageParam for groupTypeId use that to limit which groupTypeId to see. Otherwise, use the groupTypeId specified in the filter
int? groupTypeIdPageParam = this.PageParameter( "groupTypeId" ).AsInteger( false );
if ( groupTypeIdPageParam.HasValue )
{
groupTypeId = groupTypeIdPageParam ?? Rock.Constants.All.Id;
}
else
{
groupTypeId = ddlGroupType.SelectedValueAsInt() ?? Rock.Constants.All.Id;
}
if ( groupTypeId != Rock.Constants.All.Id )
{
var descendantGroupTypeIds = new GroupTypeService( rockContext ).GetAllAssociatedDescendents( groupTypeId ).Select( a => a.Id );
// filter to groups that either are of the GroupType or are of a GroupType that has the selected GroupType as a parent (ancestor)
groupLocationQry = groupLocationQry.Where( a => a.Group.GroupType.Id == groupTypeId || descendantGroupTypeIds.Contains( a.Group.GroupTypeId ) );
}
if ( gGroupLocationSchedule.SortProperty != null )
{
groupLocationQry = groupLocationQry.Sort( gGroupLocationSchedule.SortProperty );
}
else
{
groupLocationQry = groupLocationQry.OrderBy( a => a.Group.Name ).ThenBy( a => a.Location.Name );
}
var qryList = groupLocationQry.Select( a =>
new
{
GroupLocationId = a.Id,
GroupName = a.Group.Name,
LocationName = a.Location.Name,
ScheduleIdList = a.Schedules.Select( s => s.Id ),
a.LocationId
} ).ToList();
int parentLocationId = pkrParentLocation.SelectedValueAsInt() ?? Rock.Constants.All.Id;
if ( parentLocationId != Rock.Constants.All.Id )
{
var descendantLocationIds = new LocationService( rockContext ).GetAllDescendents( parentLocationId ).Select( a => a.Id );
qryList = qryList.Where( a => descendantLocationIds.Contains( a.LocationId ) ).ToList();
}
// put stuff in a datatable so we can dynamically have columns for each Schedule
DataTable dataTable = new DataTable();
dataTable.Columns.Add( "GroupLocationId" );
dataTable.Columns.Add( "GroupName" );
dataTable.Columns.Add( "LocationName" );
foreach ( var field in gGroupLocationSchedule.Columns.OfType<CheckBoxEditableField>() )
{
dataTable.Columns.Add( field.DataField, typeof( bool ) );
}
foreach ( var row in qryList )
{
DataRow dataRow = dataTable.NewRow();
dataRow["GroupLocationId"] = row.GroupLocationId;
dataRow["GroupName"] = row.GroupName;
dataRow["LocationName"] = row.LocationName;
foreach ( var field in gGroupLocationSchedule.Columns.OfType<CheckBoxEditableField>() )
{
int scheduleId = int.Parse( field.DataField.Replace( "scheduleField_", string.Empty ) );
dataRow[field.DataField] = row.ScheduleIdList.Any( a => a == scheduleId );
}
dataTable.Rows.Add( dataRow );
}
gGroupLocationSchedule.DataSource = dataTable;
gGroupLocationSchedule.DataBind();
}