/// <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 Control EditControl(Dictionary <string, ConfigurationValue> configurationValues, string id) { var editControl = new RockDropDownList { ID = id }; editControl.Items.Add(new ListItem()); var activityTypes = new ConnectionActivityTypeService(new RockContext()) .Queryable().AsNoTracking() .OrderBy(s => s.ConnectionType.Name) .ThenBy(s => s.Name) .Select(s => new { s.Guid, s.Name, ConnectionTypeName = s.ConnectionType.Name }) .ToList(); if (activityTypes.Any()) { foreach (var activity in activityTypes) { var listItem = new ListItem(activity.Name, activity.Guid.ToString().ToUpper()); listItem.Attributes.Add("OptionGroup", activity.ConnectionTypeName); editControl.Items.Add(listItem); } return(editControl); } return(null); }
/// <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 Control EditControl( Dictionary<string, ConfigurationValue> configurationValues, string id ) { var editControl = new RockDropDownList { ID = id }; editControl.Items.Add( new ListItem() ); var activityTypes = new ConnectionActivityTypeService( new RockContext() ) .Queryable().AsNoTracking() .OrderBy( s => s.ConnectionType.Name ) .ThenBy( s => s.Name ) .Select( s => new { s.Guid, s.Name, ConnectionTypeName = s.ConnectionType.Name } ) .ToList(); if ( activityTypes.Any() ) { foreach ( var activity in activityTypes ) { var listItem = new ListItem( activity.Name, activity.Guid.ToString().ToUpper() ); listItem.Attributes.Add( "OptionGroup", activity.ConnectionTypeName ); editControl.Items.Add( listItem ); } return editControl; } return null; }
/// <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 Control EditControl(Dictionary <string, ConfigurationValue> configurationValues, string id) { var includeInactive = false; int?connectionTypeFilterId = null; if (configurationValues != null) { includeInactive = configurationValues.ContainsKey(INCLUDE_INACTIVE_KEY) && configurationValues[INCLUDE_INACTIVE_KEY].Value.AsBoolean(); connectionTypeFilterId = configurationValues.ContainsKey(CONNECTION_TYPE_FILTER) ? configurationValues[CONNECTION_TYPE_FILTER].Value.AsIntegerOrNull() : null; } var activityTypes = new ConnectionActivityTypeService(new RockContext()) .Queryable().AsNoTracking() .Where(o => o.IsActive || includeInactive) .OrderBy(o => o.ConnectionType.Name) .ThenBy(o => o.Name) .Select(o => new { o.Guid, o.Name, o.ConnectionType }) .ToList(); var editControl = new RockDropDownList { ID = id }; editControl.Items.Add(new ListItem()); if (activityTypes.Any()) { foreach (var activityType in activityTypes) { if (connectionTypeFilterId != null && (activityType.ConnectionType == null || activityType.ConnectionType.Id != connectionTypeFilterId)) { continue; } var listItem = new ListItem(activityType.Name, activityType.Guid.ToString().ToUpper()); // Don't add an option group if there is a filter since that would be only one group. if (connectionTypeFilterId == null && activityType.ConnectionType != null) { listItem.Attributes.Add("OptionGroup", activityType.ConnectionType.Name); } editControl.Items.Add(listItem); } return(editControl); } return(null); }