private bool CanEdit(Person person) { return(CurrentPerson .GetFamilies() .SelectMany(f => f.Members) .Select(m => m.PersonId).Contains(person.Id)); }
protected override void OnLoad(EventArgs e) { nbAlert.Visible = false; if (CurrentPerson == null) { nbAlert.Visible = true; nbAlert.Text = "Please log in to continue."; return; } if (!Page.IsPostBack) { RockContext rockContext = new RockContext(); var familyMembers = CurrentPerson.GetFamilies().SelectMany(f => f.Members).Select(m => m.Person).ToList(); AddCaretakees(familyMembers, rockContext); var groupTypeStrings = GetAttributeValue("GroupTypes").SplitDelimitedValues(); var groupTypeIds = new List <int>(); foreach (var groupType in groupTypeStrings) { var groupTypeCache = GroupTypeCache.Get(groupType.AsGuid()); if (groupTypeCache != null) { groupTypeIds.Add(groupTypeCache.Id); } } if (!groupTypeIds.Any()) { nbAlert.Visible = true; nbAlert.Text = "Please configure this block."; return; } var groups = new GroupService(rockContext).Queryable() .Where(g => g.IsActive && !g.IsArchived && groupTypeIds.Contains(g.GroupTypeId)); var members = groups.SelectMany(g => g.Members); var lava = GetAttributeValue("LavaTemplate"); if (lava.IsNotNullOrWhiteSpace()) { BindLava(members, familyMembers, rockContext); } else { BindGrid(members, familyMembers, rockContext); } } }
/// <summary> /// Loads the campuses /// </summary> protected void LoadCampusDropdowns() { var campusEntityType = EntityTypeCache.Read(typeof(Campus)); var currentCampus = RockPage.GetCurrentContext(campusEntityType) as Campus; var campusIdString = Request.QueryString["campusId"]; if (campusIdString != null) { var campusId = campusIdString.AsInteger(); if (currentCampus == null || currentCampus.Id != campusId) { currentCampus = SetCampusContext(campusId, false); } } if (currentCampus == null && GetAttributeValue("DefaultToCurrentUser").AsBoolean() && CurrentPerson != null) { currentCampus = CurrentPerson.GetFamilies().First().Campus; } if (currentCampus != null) { var mergeObjects = new Dictionary <string, object>(); mergeObjects.Add("CampusName", currentCampus.Name); lCurrentCampusSelection.Text = GetAttributeValue("CampusCurrentItemTemplate").ResolveMergeFields(mergeObjects); _currentCampusText = GetAttributeValue("CampusCurrentItemTemplate").ResolveMergeFields(mergeObjects); } else { lCurrentCampusSelection.Text = GetAttributeValue("NoCampusText"); _currentCampusText = GetAttributeValue("NoCampusText"); } var campusList = CampusCache.All() .Select(a => new CampusItem { Name = a.Name, Id = a.Id }) .ToList(); // run lava on each campus string dropdownItemTemplate = GetAttributeValue("CampusDropdownItemTemplate"); if (!string.IsNullOrWhiteSpace(dropdownItemTemplate)) { foreach (var campus in campusList) { var mergeObjects = new Dictionary <string, object>(); mergeObjects.Add("CampusName", campus.Name); campus.Name = dropdownItemTemplate.ResolveMergeFields(mergeObjects); } } // check if the campus can be unselected if (!string.IsNullOrEmpty(GetAttributeValue("CampusClearSelectionText"))) { var blankCampus = new CampusItem { Name = GetAttributeValue("CampusClearSelectionText"), Id = Rock.Constants.All.Id }; campusList.Insert(0, blankCampus); } rptCampuses.DataSource = campusList; rptCampuses.DataBind(); }
protected override void OnLoad(EventArgs e) { nbAlert.Visible = false; if (CurrentPerson == null) { nbAlert.Visible = true; nbAlert.Text = "Please log in to continue."; return; } if (!Page.IsPostBack) { RockContext rockContext = new RockContext(); var familyMembers = CurrentPerson.GetFamilies().SelectMany(f => f.Members).Select(m => m.Person).ToList(); AddCaretakees(familyMembers, rockContext); var groupTypeStrings = GetAttributeValue("GroupTypes").SplitDelimitedValues(); var groupTypeIds = new List <int>(); foreach (var groupType in groupTypeStrings) { var groupTypeCache = GroupTypeCache.Get(groupType.AsGuid()); if (groupTypeCache != null) { groupTypeIds.Add(groupTypeCache.Id); } } var groups = new GroupService(rockContext).Queryable() .Where(g => g.IsActive && !g.IsArchived && groupTypeIds.Contains(g.GroupTypeId)); if (!groups.Any()) { nbAlert.Visible = true; nbAlert.Text = "Please configure this block."; return; } var members = groups.SelectMany(g => g.Members); var gridData = new List <GridData>(); AttributeMatrixService attributeMatrixService = new AttributeMatrixService(rockContext); foreach (var person in familyMembers) { //Get all the camp group members for this person List <GroupMember> medicalMembers = members.Where(m => m.PersonId == person.Id).ToList(); if (!medicalMembers.Any()) { continue; } GridData data = new GridData { Id = person.PrimaryAlias.Guid, Name = person.FullName, Group = string.Join("<br>", medicalMembers.Select(m => m.Group.Name)), Medications = "No Medication Information" }; person.LoadAttributes(); var attribute = person.GetAttributeValue(GetAttributeValue("MedicationMatrixKey")); var attributeMatrix = attributeMatrixService.Get(attribute.AsGuid()); if (attributeMatrix != null) { var lava = attributeMatrix.AttributeMatrixTemplate.FormattedLava; var template = attributeMatrix.AttributeMatrixTemplate; template.LoadAttributes(); AttributeMatrixItem tempAttributeMatrixItem = new AttributeMatrixItem(); tempAttributeMatrixItem.AttributeMatrix = attributeMatrix; tempAttributeMatrixItem.LoadAttributes(); Dictionary <string, object> mergeFields = Rock.Lava.LavaHelper.GetCommonMergeFields(this.RockPage, null, new Rock.Lava.CommonMergeFieldsOptions { GetLegacyGlobalMergeFields = false }); mergeFields.Add("AttributeMatrix", attributeMatrix); mergeFields.Add("ItemAttributes", tempAttributeMatrixItem.Attributes.Select(a => a.Value).OrderBy(a => a.Order).ThenBy(a => a.Name)); mergeFields.Add("AttributeMatrixItems", attributeMatrix.AttributeMatrixItems.OrderBy(a => a.Order)); var medications = lava.ResolveMergeFields(mergeFields); data.Medications = medications; } gridData.Add(data); } gGrid.DataSource = gridData; gGrid.DataBind(); } }