private void AddFamilyMember() { var rows = nfmMembers.FamilyMemberRows; var familyMemberGuid = Guid.NewGuid(); string familyMemberGuidString = familyMemberGuid.ToString().Replace("-", "_"); var familyMemberRow = new NewFamilyMembersRow(); nfmMembers.Controls.Add(familyMemberRow); familyMemberRow.ID = string.Format("row_{0}", familyMemberGuidString); familyMemberRow.RoleUpdated += familyMemberRow_RoleUpdated; familyMemberRow.DeleteClick += familyMemberRow_DeleteClick; familyMemberRow.PersonGuid = familyMemberGuid; familyMemberRow.Gender = Gender.Unknown; familyMemberRow.RequireGender = nfmMembers.RequireGender; familyMemberRow.RequireGrade = nfmMembers.RequireGrade; familyMemberRow.ValidationGroup = BlockValidationGroup; var familyGroupType = GroupTypeCache.GetFamilyGroupType(); if (familyGroupType != null && familyGroupType.DefaultGroupRoleId.HasValue) { familyMemberRow.RoleId = familyGroupType.DefaultGroupRoleId; familyMemberRow.ShowGrade = familyGroupType.DefaultGroupRoleId == _childRoleId; } else { familyMemberRow.ShowGrade = false; } var ConnectionStatusValue = DefinedValueCache.Read(GetAttributeValue("DefaultConnectionStatus").AsGuid()); if (ConnectionStatusValue != null) { familyMemberRow.ConnectionStatusValueId = ConnectionStatusValue.Id; } if (rows.Count > 0) { familyMemberRow.LastName = rows[0].LastName; } var contactInfoRow = new NewFamilyContactInfoRow(); nfciContactInfo.Controls.Add(contactInfoRow); contactInfoRow.ID = string.Format("ci_row_{0}", familyMemberGuidString); contactInfoRow.PersonGuid = familyMemberGuid; foreach (var attributeControl in attributeControls) { var attributeRow = new NewFamilyAttributesRow(); attributeControl.Controls.Add(attributeRow); attributeRow.ID = string.Format("{0}_{1}", attributeControl.ID, familyMemberGuidString); attributeRow.AttributeList = attributeControl.AttributeList; attributeRow.PersonGuid = familyMemberGuid; } }
/// <summary> /// Handles the DeleteClick event of the familyMemberRow control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> void familyMemberRow_DeleteClick(object sender, EventArgs e) { NewFamilyMembersRow row = sender as NewFamilyMembersRow; var familyMember = FamilyMembers.FirstOrDefault(m => m.Person.Guid.Equals(row.PersonGuid)); if (familyMember != null) { FamilyMembers.Remove(familyMember); } CreateControls(true); }
/// <summary> /// Handles the DeleteClick event of the familyMemberRow control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> void familyMemberRow_DeleteClick(object sender, EventArgs e) { NewFamilyMembersRow row = sender as NewFamilyMembersRow; foreach (var attributeControl in attributeControls) { var attributeRow = attributeControl.AttributesRows.FirstOrDefault(r => r.PersonGuid == row.PersonGuid); if (attributeRow != null) { attributeControl.Controls.Remove(attributeRow); } } nfmMembers.Controls.Remove(row); }
private void AddFamilyMember() { var rows = nfmMembers.FamilyMemberRows; var familyMemberGuid = Guid.NewGuid(); var familyMemberRow = new NewFamilyMembersRow(); nfmMembers.Controls.Add(familyMemberRow); familyMemberRow.ID = string.Format("row_{0}", familyMemberGuid.ToString().Replace("-", "_")); familyMemberRow.RoleUpdated += familyMemberRow_RoleUpdated; familyMemberRow.DeleteClick += familyMemberRow_DeleteClick; familyMemberRow.PersonGuid = familyMemberGuid; familyMemberRow.Gender = Gender.Unknown; familyMemberRow.RequireGender = _requireGender; familyMemberRow.RequireGrade = _requireGrade; familyMemberRow.ValidationGroup = BlockValidationGroup; var familyGroupType = GroupTypeCache.GetFamilyGroupType(); if (familyGroupType != null && familyGroupType.DefaultGroupRoleId.HasValue) { familyMemberRow.RoleId = familyGroupType.DefaultGroupRoleId; familyMemberRow.ShowGrade = familyGroupType.DefaultGroupRoleId == _childRoleId; } else { familyMemberRow.ShowGrade = false; } if (rows.Count > 0) { familyMemberRow.LastName = rows[0].LastName; } foreach (var attributeControl in attributeControls) { var attributeRow = new NewFamilyAttributesRow(); attributeControl.Controls.Add(attributeRow); attributeRow.ID = string.Format("{0}_{1}", attributeControl.ID, familyMemberGuid); attributeRow.AttributeList = attributeControl.AttributeList; attributeRow.PersonGuid = familyMemberGuid; } }
private void CreateControls(bool setSelection) { // Load all the attribute controls attributeControls.Clear(); pnlAttributes.Controls.Clear(); phDuplicates.Controls.Clear(); var rockContext = new RockContext(); var attributeService = new AttributeService(rockContext); var locationService = new LocationService(rockContext); foreach (string categoryGuid in GetAttributeValue("AttributeCategories").SplitDelimitedValues(false)) { Guid guid = Guid.Empty; if (Guid.TryParse(categoryGuid, out guid)) { var category = CategoryCache.Read(guid); if (category != null) { var attributeControl = new NewFamilyAttributes(); attributeControl.ClearRows(); pnlAttributes.Controls.Add(attributeControl); attributeControls.Add(attributeControl); attributeControl.ID = "familyAttributes_" + category.Id.ToString(); attributeControl.CategoryId = category.Id; foreach (var attribute in attributeService.GetByCategoryId(category.Id)) { if (attribute.IsAuthorized(Authorization.EDIT, CurrentPerson)) { attributeControl.AttributeList.Add(AttributeCache.Read(attribute)); } } } } } nfmMembers.ClearRows(); nfciContactInfo.ClearRows(); var groupMemberService = new GroupMemberService(rockContext); var familyGroupType = GroupTypeCache.GetFamilyGroupType(); int adultRoleId = familyGroupType.Roles.First(a => a.Guid == Rock.SystemGuid.GroupRole.GROUPROLE_FAMILY_MEMBER_ADULT.AsGuid()).Id; var homeLocationGuid = Rock.SystemGuid.DefinedValue.GROUP_LOCATION_TYPE_HOME.AsGuid(); var location = locationService.Get(acAddress.Street1, acAddress.Street2, acAddress.City, acAddress.State, acAddress.PostalCode, acAddress.Country); foreach (var familyMember in FamilyMembers) { string familyMemberGuidString = familyMember.Person.Guid.ToString().Replace("-", "_"); var familyMemberRow = new NewFamilyMembersRow(); nfmMembers.Controls.Add(familyMemberRow); familyMemberRow.ID = string.Format("row_{0}", familyMemberGuidString); familyMemberRow.RoleUpdated += familyMemberRow_RoleUpdated; familyMemberRow.DeleteClick += familyMemberRow_DeleteClick; familyMemberRow.PersonGuid = familyMember.Person.Guid; familyMemberRow.RequireGender = nfmMembers.RequireGender; familyMemberRow.RequireGrade = nfmMembers.RequireGrade; familyMemberRow.RoleId = familyMember.GroupRoleId; familyMemberRow.ShowGrade = familyMember.GroupRoleId == _childRoleId; familyMemberRow.ValidationGroup = BlockValidationGroup; var contactInfoRow = new NewFamilyContactInfoRow(); nfciContactInfo.Controls.Add(contactInfoRow); contactInfoRow.ID = string.Format("ci_row_{0}", familyMemberGuidString); contactInfoRow.PersonGuid = familyMember.Person.Guid; contactInfoRow.IsMessagingEnabled = _SMSEnabled; contactInfoRow.PersonName = familyMember.Person.FullName; if (_homePhone != null) { var homePhoneNumber = familyMember.Person.PhoneNumbers.Where(p => p.NumberTypeValueId == _homePhone.Id).FirstOrDefault(); if (homePhoneNumber != null) { contactInfoRow.HomePhoneNumber = PhoneNumber.FormattedNumber(homePhoneNumber.CountryCode, homePhoneNumber.Number); contactInfoRow.HomePhoneCountryCode = homePhoneNumber.CountryCode; } } if (_cellPhone != null) { var cellPhoneNumber = familyMember.Person.PhoneNumbers.Where(p => p.NumberTypeValueId == _cellPhone.Id).FirstOrDefault(); if (cellPhoneNumber != null) { contactInfoRow.CellPhoneNumber = PhoneNumber.FormattedNumber(cellPhoneNumber.CountryCode, cellPhoneNumber.Number); contactInfoRow.CellPhoneCountryCode = cellPhoneNumber.CountryCode; } } contactInfoRow.Email = familyMember.Person.Email; if (setSelection) { if (familyMember.Person != null) { familyMemberRow.TitleValueId = familyMember.Person.TitleValueId; familyMemberRow.FirstName = familyMember.Person.FirstName; familyMemberRow.LastName = familyMember.Person.LastName; familyMemberRow.SuffixValueId = familyMember.Person.SuffixValueId; familyMemberRow.Gender = familyMember.Person.Gender; familyMemberRow.BirthDate = familyMember.Person.BirthDate; familyMemberRow.ConnectionStatusValueId = familyMember.Person.ConnectionStatusValueId; familyMemberRow.GradeOffset = familyMember.Person.GradeOffset; } } foreach (var attributeControl in attributeControls) { var attributeRow = new NewFamilyAttributesRow(); attributeControl.Controls.Add(attributeRow); attributeRow.ID = string.Format("{0}_{1}", attributeControl.ID, familyMemberGuidString); attributeRow.AttributeList = attributeControl.AttributeList; attributeRow.PersonGuid = familyMember.Person.Guid; attributeRow.PersonName = familyMember.Person.FullName; if (setSelection) { attributeRow.SetEditValues(familyMember.Person); } } if (Duplicates.ContainsKey(familyMember.Person.Guid)) { var dupRow = new HtmlGenericControl("div"); dupRow.AddCssClass("row"); dupRow.ID = string.Format("dupRow_{0}", familyMemberGuidString); phDuplicates.Controls.Add(dupRow); var newPersonCol = new HtmlGenericControl("div"); newPersonCol.AddCssClass("col-md-6"); newPersonCol.ID = string.Format("newPersonCol_{0}", familyMemberGuidString); dupRow.Controls.Add(newPersonCol); newPersonCol.Controls.Add(PersonHtmlPanel( familyMemberGuidString, familyMember.Person, familyMember.GroupRole, location, rockContext)); LinkButton lbRemoveMember = new LinkButton(); lbRemoveMember.ID = string.Format("lbRemoveMember_{0}", familyMemberGuidString); lbRemoveMember.AddCssClass("btn btn-danger btn-xs"); lbRemoveMember.Text = "Remove"; lbRemoveMember.Click += lbRemoveMember_Click; newPersonCol.Controls.Add(lbRemoveMember); var dupPersonCol = new HtmlGenericControl("div"); dupPersonCol.AddCssClass("col-md-6"); dupPersonCol.ID = string.Format("dupPersonCol_{0}", familyMemberGuidString); dupRow.Controls.Add(dupPersonCol); var duplicateHeader = new HtmlGenericControl("h4"); duplicateHeader.InnerText = "Possible Duplicate Records"; dupPersonCol.Controls.Add(duplicateHeader); foreach (var duplicate in Duplicates[familyMember.Person.Guid]) { GroupTypeRole groupTypeRole = null; Location duplocation = null; var familyGroupMember = groupMemberService.Queryable() .Where(a => a.PersonId == duplicate.Id) .Where(a => a.Group.GroupTypeId == familyGroupType.Id) .Select(s => new { s.GroupRole, GroupLocation = s.Group.GroupLocations.Where(a => a.GroupLocationTypeValue.Guid == homeLocationGuid).Select(a => a.Location).FirstOrDefault() }) .FirstOrDefault(); if (familyGroupMember != null) { groupTypeRole = familyGroupMember.GroupRole; duplocation = familyGroupMember.GroupLocation; } dupPersonCol.Controls.Add(PersonHtmlPanel( familyMemberGuidString, duplicate, groupTypeRole, duplocation, rockContext)); } } } ShowPage(); }
/// <summary> /// Handles the RoleUpdated event of the familyMemberRow control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> /// <exception cref="System.NotImplementedException"></exception> void familyMemberRow_RoleUpdated(object sender, EventArgs e) { NewFamilyMembersRow row = sender as NewFamilyMembersRow; row.ShowGrade = row.RoleId == _childRoleId; }
private void CreateControls(List <GroupMember> familyMembers, bool setSelection) { // Load all the attribute controls attributeControls.Clear(); pnlAttributes.Controls.Clear(); foreach (string categoryGuid in GetAttributeValue("AttributeCategories").SplitDelimitedValues(false)) { Guid guid = Guid.Empty; if (Guid.TryParse(categoryGuid, out guid)) { var category = CategoryCache.Read(guid); if (category != null) { var attributeControl = new NewFamilyAttributes(); attributeControl.ClearRows(); pnlAttributes.Controls.Add(attributeControl); attributeControls.Add(attributeControl); attributeControl.ID = "familyAttributes_" + category.Id.ToString(); attributeControl.CategoryId = category.Id; foreach (var attribute in new AttributeService(new RockContext()).GetByCategoryId(category.Id)) { if (attribute.IsAuthorized(Authorization.EDIT, CurrentPerson)) { attributeControl.AttributeList.Add(AttributeCache.Read(attribute)); } } } } } nfmMembers.ClearRows(); foreach (var familyMember in familyMembers) { var familyMemberRow = new NewFamilyMembersRow(); nfmMembers.Controls.Add(familyMemberRow); familyMemberRow.ID = string.Format("row_{0}", familyMember.Person.Guid.ToString().Replace("-", "_")); familyMemberRow.RoleUpdated += familyMemberRow_RoleUpdated; familyMemberRow.DeleteClick += familyMemberRow_DeleteClick; familyMemberRow.PersonGuid = familyMember.Person.Guid; familyMemberRow.RequireGender = _requireGender; familyMemberRow.RequireGrade = _requireGrade; familyMemberRow.RoleId = familyMember.GroupRoleId; familyMemberRow.ShowGrade = familyMember.GroupRoleId == _childRoleId; if (setSelection) { if (familyMember.Person != null) { familyMemberRow.TitleValueId = familyMember.Person.TitleValueId; familyMemberRow.FirstName = familyMember.Person.FirstName; familyMemberRow.LastName = familyMember.Person.LastName; familyMemberRow.SuffixValueId = familyMember.Person.SuffixValueId; familyMemberRow.Gender = familyMember.Person.Gender; familyMemberRow.BirthDate = familyMember.Person.BirthDate; familyMemberRow.ConnectionStatusValueId = familyMember.Person.ConnectionStatusValueId; familyMemberRow.Grade = familyMember.Person.Grade; } } foreach (var attributeControl in attributeControls) { var attributeRow = new NewFamilyAttributesRow(); attributeControl.Controls.Add(attributeRow); attributeRow.ID = string.Format("{0}_{1}", attributeControl.ID, familyMember.Person.Guid); attributeRow.AttributeList = attributeControl.AttributeList; attributeRow.PersonGuid = familyMember.Person.Guid; if (setSelection) { attributeRow.SetEditValues(familyMember.Person); } } } ShowAttributeCategory(CurrentCategoryIndex); }
private void CreateControls(List <GroupMember> familyMembers, bool setSelection) { // Load all the attribute controls attributeControls.Clear(); pnlAttributes.Controls.Clear(); foreach (string categoryGuid in GetAttributeValue("AttributeCategories").SplitDelimitedValues(false)) { Guid guid = Guid.Empty; if (Guid.TryParse(categoryGuid, out guid)) { var category = CategoryCache.Read(guid); if (category != null) { var attributeControl = new NewFamilyAttributes(); attributeControl.ClearRows(); pnlAttributes.Controls.Add(attributeControl); attributeControls.Add(attributeControl); attributeControl.ID = "familyAttributes_" + category.Id.ToString(); attributeControl.CategoryId = category.Id; foreach (var attribute in new AttributeService(new RockContext()).GetByCategoryId(category.Id)) { if (attribute.IsAuthorized(Authorization.EDIT, CurrentPerson)) { attributeControl.AttributeList.Add(AttributeCache.Read(attribute)); } } } } } nfmMembers.ClearRows(); nfciContactInfo.ClearRows(); foreach (var familyMember in familyMembers) { string familyMemberGuidString = familyMember.Person.Guid.ToString().Replace("-", "_"); var familyMemberRow = new NewFamilyMembersRow(); nfmMembers.Controls.Add(familyMemberRow); familyMemberRow.ID = string.Format("row_{0}", familyMemberGuidString); familyMemberRow.RoleUpdated += familyMemberRow_RoleUpdated; familyMemberRow.DeleteClick += familyMemberRow_DeleteClick; familyMemberRow.PersonGuid = familyMember.Person.Guid; familyMemberRow.RequireGender = nfmMembers.RequireGender; familyMemberRow.RequireGrade = nfmMembers.RequireGrade; familyMemberRow.RoleId = familyMember.GroupRoleId; familyMemberRow.ShowGrade = familyMember.GroupRoleId == _childRoleId; var contactInfoRow = new NewFamilyContactInfoRow(); nfciContactInfo.Controls.Add(contactInfoRow); contactInfoRow.ID = string.Format("ci_row_{0}", familyMemberGuidString); contactInfoRow.PersonGuid = familyMember.Person.Guid; if (_homePhone != null) { var homePhoneNumber = familyMember.Person.PhoneNumbers.Where(p => p.NumberTypeValueId == _homePhone.Id).FirstOrDefault(); if (homePhoneNumber != null) { contactInfoRow.HomePhoneNumber = homePhoneNumber.NumberFormatted; contactInfoRow.HomePhoneCountryCode = homePhoneNumber.CountryCode; } } if (_cellPhone != null) { var cellPhoneNumber = familyMember.Person.PhoneNumbers.Where(p => p.NumberTypeValueId == _cellPhone.Id).FirstOrDefault(); if (cellPhoneNumber != null) { contactInfoRow.CellPhoneNumber = cellPhoneNumber.NumberFormatted; contactInfoRow.CellPhoneCountryCode = cellPhoneNumber.CountryCode; } } contactInfoRow.Email = familyMember.Person.Email; if (setSelection) { if (familyMember.Person != null) { familyMemberRow.TitleValueId = familyMember.Person.TitleValueId; familyMemberRow.FirstName = familyMember.Person.FirstName; familyMemberRow.LastName = familyMember.Person.LastName; familyMemberRow.SuffixValueId = familyMember.Person.SuffixValueId; familyMemberRow.Gender = familyMember.Person.Gender; familyMemberRow.BirthDate = familyMember.Person.BirthDate; familyMemberRow.ConnectionStatusValueId = familyMember.Person.ConnectionStatusValueId; familyMemberRow.GradeOffset = familyMember.Person.GradeOffset; } } foreach (var attributeControl in attributeControls) { var attributeRow = new NewFamilyAttributesRow(); attributeControl.Controls.Add(attributeRow); attributeRow.ID = string.Format("{0}_{1}", attributeControl.ID, familyMemberGuidString); attributeRow.AttributeList = attributeControl.AttributeList; attributeRow.PersonGuid = familyMember.Person.Guid; if (setSelection) { attributeRow.SetEditValues(familyMember.Person); } } } ShowPage(CurrentPageIndex); }