public void LoadSummaryData( Group group, ScheduleOccurrence occurrence )
{
if ( group != null && occurrence != null )
{
var attendances = new AttendanceService( (RockContext)this.Context )
.Queryable().AsNoTracking()
.Where( a =>
a.PersonAliasId.HasValue &&
a.GroupId.HasValue &&
a.GroupId == group.Id &&
a.LocationId.Equals( occurrence.LocationId ) &&
a.ScheduleId.Equals( occurrence.ScheduleId ) &&
DbFunctions.TruncateTime( a.StartDateTime ).Equals( occurrence.Date ) )
.ToList();
if ( attendances.Any() )
{
occurrence.DidAttendCount = attendances
.Where( t => t.DidAttend.HasValue && t.DidAttend.Value )
.Select( t => t.PersonAliasId.Value )
.Distinct()
.Count();
occurrence.DidNotOccurCount = attendances
.Where( t => t.DidNotOccur.HasValue && t.DidNotOccur.Value )
.Select( t => t.PersonAliasId.Value )
.Distinct()
.Count();
occurrence.TotalCount = attendances
.Select( t => t.PersonAliasId )
.Distinct()
.Count();
}
}
}