/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { RockContext rockContext = new RockContext(); var service = new GroupMemberScheduleTemplateService(rockContext); var qry = service.Queryable().OrderBy(a => a.Name); gList.SetLinqDataSource(qry); gList.DataBind(); }
/// <summary> /// Gets the preference page content and view model. /// </summary> /// <param name="groupGuid"></param> /// <returns>A <see cref="PreferencePageContentBag"/> to be used when the preference page is displayed.</returns> private PreferencePageContentBag GetPreferenceTemplateContent(Guid groupGuid) { var rockContext = new RockContext(); var groupService = new GroupService(rockContext); // Get the group from the corresponding Guid. var group = groupService.Get(groupGuid); // Get the corresponding group member record. var groupMember = GetGroupMemberRecord(rockContext, group.Id, CurrentPersonId); // Get the reminder days offset. var selectedOffset = groupMember.ScheduleReminderEmailOffsetDays == null ? 0 : groupMember.ScheduleReminderEmailOffsetDays.Value; // Templates for all and this group type. var groupMemberScheduleTemplateService = new GroupMemberScheduleTemplateService(rockContext); var groupMemberScheduleTemplates = groupMemberScheduleTemplateService .Queryable() .AsNoTracking() .Where(x => x.GroupTypeId == null || x.GroupTypeId == group.GroupTypeId) .Select(x => new { Value = ( Guid? )x.Guid, Text = x.Name }) .ToList(); var scheduleListItems = new List <ListItemViewModel>(); foreach (var scheduleKey in groupMemberScheduleTemplates) { scheduleListItems.Add(new ListItemViewModel { Value = scheduleKey.Value.ToStringSafe(), Text = scheduleKey.Text }); } var selectedScheduleTemplate = groupMember.ScheduleTemplate != null ? groupMember.ScheduleTemplate.Guid : Guid.Empty; // The dictionary of merge fields. var mergeFields = RequestContext.GetCommonMergeFields(); mergeFields.AddOrReplace("Group", group); var assignmentScheduleList = GetAssignmentScheduleList(group.Id); DateTimeOffset?selectedStartDate = null; if (groupMember.ScheduleStartDate != null) { selectedStartDate = groupMember.ScheduleStartDate.Value.ToRockDateTimeOffset(); } // Return all of the necessary information to display on the preference page. return(new PreferencePageContentBag { SelectedOffset = selectedOffset, ListItems = scheduleListItems, SelectedSchedule = selectedScheduleTemplate, SelectedStartDate = selectedStartDate, AssignmentScheduleAndLocations = assignmentScheduleList }); }