/// <summary> /// Handles the SaveClick event of the dlgField 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 dlgField_SaveClick( object sender, EventArgs e ) { var formGuid = hfFormGuid.Value.AsGuid(); var attributeGuid = hfAttributeGuid.Value.AsGuid(); if ( FormFieldsState.ContainsKey( formGuid ) ) { var attributeForm = FormFieldsState[formGuid].FirstOrDefault( a => a.Guid.Equals( attributeGuid ) ); if ( attributeForm == null ) { attributeForm = new RegistrationTemplateFormField(); attributeForm.Order = FormFieldsState[formGuid].Any() ? FormFieldsState[formGuid].Max( a => a.Order ) + 1 : 0; attributeForm.Guid = attributeGuid; FormFieldsState[formGuid].Add( attributeForm ); } attributeForm.PreText = ceAttributePreText.Text; attributeForm.PostText = ceAttributePostText.Text; attributeForm.FieldSource = ddlFieldSource.SelectedValueAsEnum<RegistrationFieldSource>(); if ( ddlPersonField.Visible ) { attributeForm.PersonFieldType = ddlPersonField.SelectedValueAsEnum<RegistrationPersonFieldType>(); } attributeForm.IsInternal = cbInternalField.Checked; attributeForm.IsSharedValue = cbCommonValue.Checked; int? attributeId = null; switch ( attributeForm.FieldSource ) { case RegistrationFieldSource.PersonField: { attributeForm.ShowCurrentValue = cbUsePersonCurrentValue.Checked; attributeForm.IsGridField = cbShowOnGrid.Checked; attributeForm.IsRequired = cbRequireInInitialEntry.Checked; break; } case RegistrationFieldSource.PersonAttribute: { attributeId = ddlPersonAttributes.SelectedValueAsInt(); attributeForm.ShowCurrentValue = cbUsePersonCurrentValue.Checked; attributeForm.IsGridField = cbShowOnGrid.Checked; attributeForm.IsRequired = cbRequireInInitialEntry.Checked; break; } case RegistrationFieldSource.GroupMemberAttribute: { attributeId = ddlGroupTypeAttributes.SelectedValueAsInt(); attributeForm.ShowCurrentValue = false; attributeForm.IsGridField = cbShowOnGrid.Checked; attributeForm.IsRequired = cbRequireInInitialEntry.Checked; break; } case RegistrationFieldSource.RegistrationAttribute: { Rock.Model.Attribute attribute = new Rock.Model.Attribute(); edtRegistrationAttribute.GetAttributeProperties( attribute ); attributeForm.Attribute = attribute; attributeForm.Id = attribute.Id; attributeForm.ShowCurrentValue = false; attributeForm.IsGridField = attribute.IsGridColumn; attributeForm.IsRequired = attribute.IsRequired; break; } } if ( attributeId.HasValue ) { using ( var rockContext = new RockContext() ) { var attribute = new AttributeService( rockContext ).Get( attributeId.Value ); if ( attribute != null ) { attributeForm.Attribute = attribute.Clone( false ); attributeForm.Attribute.FieldType = attribute.FieldType.Clone( false ); attributeForm.AttributeId = attribute.Id; } } } } HideDialog(); BuildControls( true ); }