/// <summary> /// Creates the control(s) necessary for prompting user for a new value /// </summary> /// <param name="configurationValues">The configuration values.</param> /// <param name="id"></param> /// <returns> /// The control /// </returns> public override System.Web.UI.Control EditControl(Dictionary <string, ConfigurationValue> configurationValues, string id) { var mergeTemplatePicker = new MergeTemplatePicker { ID = id }; return(mergeTemplatePicker); }
/// <summary> /// Sets the value. /// Expects value as a MergeTemplate.Guid as string /// </summary> /// <param name="control">The control.</param> /// <param name="configurationValues">The configuration values.</param> /// <param name="value">The value.</param> public override void SetEditValue( System.Web.UI.Control control, Dictionary<string, ConfigurationValue> configurationValues, string value ) { MergeTemplatePicker mergeTemplatePicker = control as MergeTemplatePicker; if ( mergeTemplatePicker != null ) { Guid guid = value.AsGuid(); // get the item (or null) and set it var mergeTemplate = new MergeTemplateService( new RockContext() ).Get( guid ); mergeTemplatePicker.SetValue( mergeTemplate ); } }
/// <summary> /// Reads new values entered by the user for the field /// returns MergeTemplate.Guid as string /// </summary> /// <param name="control">Parent control that controls were added to in the CreateEditControl() method</param> /// <param name="configurationValues">The configuration values.</param> /// <returns></returns> public override string GetEditValue( System.Web.UI.Control control, Dictionary<string, ConfigurationValue> configurationValues ) { MergeTemplatePicker mergeTemplatePicker = control as MergeTemplatePicker; if ( mergeTemplatePicker != null ) { int? mergeTemplateId = mergeTemplatePicker.SelectedValue.AsIntegerOrNull(); if ( mergeTemplateId.HasValue ) { var mergeTemplate = new MergeTemplateService( new RockContext() ).Get( mergeTemplateId.Value ); if ( mergeTemplate != null ) { return mergeTemplate.Guid.ToString(); } } } return string.Empty; }