private static void Fill(ConfigurationDataSet dataSet, ActionElementCollection actions, Guid?parentActionId) { foreach (ActionElement action in actions) { ConfigurationDataSet.ActionRow actionRow = dataSet.Action.FindByActionId(action.Id); if (actionRow != null) { if (!actionRow.BuiltIn) { actionRow = null; } } if (actionRow == null) { actionRow = dataSet.Action.NewActionRow(); LoadActionAttributes(actionRow, action, parentActionId); dataSet.Action.AddActionRow(actionRow); } FillAlternativeParents(dataSet.ActionsParentActions, action); RoleProvider.FillRolesActions(dataSet, action); int visibleChildSettingsCount = 0; foreach (SettingElement s in action.Settings) { if (s.Visible) { visibleChildSettingsCount++; } } if (visibleChildSettingsCount > 0) { if (string.IsNullOrEmpty(action.NavigateUrl)) { actionRow.NavigateUrl = ResourceProvider.SettingsPageVirtualPath + "?actionid=" + actionRow.ActionId.ToString("N"); } SettingProvider.Fill(dataSet.Setting, dataSet.SettingListsValues, action.Settings, null, actionRow.ActionId, GetActionSettingLevels(actionRow.AuthenticationRequired, actionRow.InstanceRequired)); dataSet.Setting.AcceptChanges(); dataSet.SettingListsValues.AcceptChanges(); } Fill(dataSet, action.Actions, actionRow.ActionId); } }