Esempio n. 1
0
        /// <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();
        }