/// <summary> /// Handles the Click event of the btnSave control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void btnSave_Click(object sender, EventArgs e) { PersonBadge PersonBadge = null; var rockContext = new RockContext(); PersonBadgeService PersonBadgeService = new PersonBadgeService(rockContext); if (PersonBadgeId != 0) { PersonBadge = PersonBadgeService.Get(PersonBadgeId); } if (PersonBadge == null) { PersonBadge = new PersonBadge(); PersonBadgeService.Add(PersonBadge); } PersonBadge.Name = tbName.Text; PersonBadge.Description = tbDescription.Text; if (!string.IsNullOrWhiteSpace(compBadgeType.SelectedValue)) { var badgeType = EntityTypeCache.Read(compBadgeType.SelectedValue.AsGuid()); if (badgeType != null) { PersonBadge.EntityTypeId = badgeType.Id; } } PersonBadge.LoadAttributes(rockContext); Rock.Attribute.Helper.GetEditValues(phAttributes, PersonBadge); if (!Page.IsValid) { return; } if (!PersonBadge.IsValid) { return; } rockContext.WrapTransaction(() => { rockContext.SaveChanges(); PersonBadge.SaveAttributeValues(rockContext); }); PersonBadgeCache.Flush(PersonBadge.Id); NavigateToParentPage(); }