/// <summary> /// Gets the occurrence items. /// </summary> private ScheduleOccurrence GetOccurrence() { DateTime? occurrenceDate = PageParameter( "Occurrence" ).AsDateTime(); // If an occurrence date was not specified in query string, use the selected date if ( !occurrenceDate.HasValue && Page.IsPostBack && _allowAdd && dpOccurrenceDate.SelectedDate.HasValue ) { occurrenceDate = dpOccurrenceDate.SelectedDate; } if ( occurrenceDate.HasValue ) { // Try to find the selected occurrence based on group's schedule if ( _group != null ) { lHeading.Text = _group.Name + " Attendance"; // Get all the occurrences for this group ( without loading attendance yet ) var occurrences = new ScheduleService( _rockContext ) .GetGroupOccurrences( _group, false ) .OrderBy( o => o.StartDateTime ) .ToList(); // If occurrences were found, loop through them looking for the selected occurrence var occurrence = occurrences .Where( o => occurrenceDate.Value >= o.StartDateTime && occurrenceDate.Value < o.EndDateTime ) .FirstOrDefault(); if ( occurrence != null ) { return occurrence; } } // If an occurrence date was included, but no occurrence was found with that date, and new // occurrences can be added, create a new one if ( _allowAdd ) { return new ScheduleOccurrence( occurrenceDate.Value, occurrenceDate.Value.Date.AddDays(1) ); } } return null; }