/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!Page.IsPostBack) { pnlDetails.Visible = _canEdit; if (_canEdit) { BindDropDown(); ShowDetails(); if (CurrentGroupFilters.Any()) { pnlDidNotMeet.Visible = false; } } else { nbNotice.Heading = "Sorry"; nbNotice.Text = "<p>You're not authorized to update the attendance for the selected group.</p>"; nbNotice.NotificationBoxType = NotificationBoxType.Danger; nbNotice.Visible = true; } } else { } if (GetAttributeValue("AutoCount").AsBoolean()) { ScriptManager.RegisterStartupScript(this, this.GetType(), "AutoCount", "doCount = true;", true); } }
protected List <GroupMember> GetFilteredMembers() { if (CurrentGroupFilters.Any()) { CurrentGroupMember.LoadAttributes(); var filterAttribute = CurrentGroupFilters.FirstOrDefault(); var filter = CurrentGroupMember.GetAttributeValue(filterAttribute); return(GetFilteredMembers(filter)); } else { return(CurrentGroup.Members.ToList()); } }
public List <GroupMember> GetFilteredMembers(string filter) { List <GroupMember> members = new List <GroupMember>(); if (CurrentGroupFilters.Any()) { var filterAttribute = CurrentGroupFilters.FirstOrDefault(); foreach (var member in CurrentGroup.Members) { member.LoadAttributes(); if (member.GetAttributeValue(filterAttribute) == filter) { members.Add(member); } } } return(members); }
private List <string> GetCurrentGroupFilterValues() { var filterValues = new List <string>(); if (CurrentGroupFilters.Any()) { var filterAttribute = CurrentGroupFilters.FirstOrDefault(); foreach (var member in CurrentGroup.Members) { member.LoadAttributes(); var filterValue = member.GetAttributeValue(filterAttribute); if (filterAttribute != null && !filterValues.Contains(filterValue)) { filterValues.Add(filterValue); } } } return(filterValues); }
private void BindDropDown() { RockContext rockContext = new RockContext(); if (CurrentGroup.Schedule != null) { AttendanceService attendanceService = new AttendanceService(rockContext); var occurances = attendanceService.Queryable().Where(a => a.Occurrence.GroupId == CurrentGroup.Id) .DistinctBy(s => s.StartDateTime) .Select(s => s.StartDateTime) .Take(50) .ToList() .Select(s => new { Id = (s - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds, Name = s.ToString("MMM d, yyyy - h:mmtt") }) .ToList(); if (CurrentGroup.Schedule.ScheduleType == ScheduleType.Named || CurrentGroup.Schedule.ScheduleType == ScheduleType.Custom) { var prevSchedules = CurrentGroup.Schedule .GetScheduledStartTimes(Rock.RockDateTime.Today.AddYears(-1), Rock.RockDateTime.Today.AddDays(1)) .OrderByDescending(o => o) .Take(10) .Select(s => new { Id = (s - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds, Name = s.ToString("MMM d, yyyy - h:mmtt") }) .Where(a => !occurances.Select(o => o.Id).Contains(a.Id)) .ToList(); occurances.AddRange(prevSchedules); } else if (CurrentGroup.Schedule.ScheduleType == ScheduleType.Weekly) { var schedules = new List <DateTime>(); DateTime lastSchedule = Rock.RockDateTime.Today; //Crawl backward to find the last time this occured while (lastSchedule.DayOfWeek != CurrentGroup.Schedule.WeeklyDayOfWeek) { lastSchedule = lastSchedule.AddDays(-1); } lastSchedule = lastSchedule.AddMinutes(CurrentGroup.Schedule.WeeklyTimeOfDay.Value.TotalMinutes); schedules.Add(lastSchedule); for (int i = 1; i < 10; i++) { schedules.Add(lastSchedule.AddDays(i * -7)); } occurances.AddRange(schedules .Select(s => new { Id = (s - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds, Name = s.ToString("MMM d, yyyy - h:mmtt") } ) .Where(a => !occurances.Select(o => o.Id).Contains(a.Id)) ); } ddlOccurence.DataSource = occurances.OrderByDescending(o => o.Id); ddlOccurence.DataBind(); //Drop down for filter values ddlFilter.Visible = (GetAttributeValue("ShowFilters").AsBoolean() && CurrentGroupFilters.Any()); if (ddlFilter.Visible) { ddlFilter.DataSource = CurrentGroupFilterValues .Select(s => new { Id = s, Name = s, } ); ddlFilter.DataBind(); CurrentGroupMember.LoadAttributes(); ddlFilter.SelectedValue = CurrentGroupMember.GetAttributeValue(CurrentGroupFilters.FirstOrDefault()); } } }