public GetByDateAndLocation ( System.DateTime date, int locationId ) : IQueryable |
||
date | System.DateTime | A |
locationId | int | A |
return | IQueryable |
/// <summary> /// Reads the specified id. /// </summary> /// <param name="id">The id.</param> /// <returns></returns> public static KioskLocationAttendance Read( int id ) { string cacheKey = KioskLocationAttendance.CacheKey( id ); ObjectCache cache = MemoryCache.Default; KioskLocationAttendance locationAttendance = cache[cacheKey] as KioskLocationAttendance; if ( locationAttendance != null ) { return locationAttendance; } else { var rockContext = new Rock.Data.RockContext(); var location = new LocationService(rockContext).Get( id ); if ( location != null ) { locationAttendance = new KioskLocationAttendance(); locationAttendance.LocationId = location.Id; locationAttendance.LocationName = location.Name; locationAttendance.Groups = new List<KioskGroupAttendance>(); var attendanceService = new AttendanceService(rockContext); foreach ( var attendance in attendanceService.GetByDateAndLocation( RockDateTime.Today, location.Id ) ) { AddAttendanceRecord( locationAttendance, attendance ); } var cachePolicy = new CacheItemPolicy(); cachePolicy.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds( 60 ); cache.Set( cacheKey, locationAttendance, cachePolicy ); return locationAttendance; } } return null; }
/// <summary> /// Gets the attendance count for all of the schedules for a location. This will show on the schedule buttons. /// </summary> /// <param name="location"></param> protected void GetScheduleAttendance( CheckInLocation location ) { if ( location != null ) { var rockContext = new RockContext(); var attendanceService = new AttendanceService( rockContext ); var attendanceQuery = attendanceService.GetByDateAndLocation( DateTime.Now, location.Location.Id ); ScheduleAttendanceList.Clear(); foreach ( var schedule in location.Schedules ) { var attendance = new ScheduleAttendance(); attendance.ScheduleId = schedule.Schedule.Id; attendance.AttendanceCount = attendanceQuery.Where( l => l.ScheduleId == attendance.ScheduleId ).Count(); ScheduleAttendanceList.Add( attendance ); } } }