private static void AddActionsByType(Dictionary <DataSourceId, List <DataActionSourceId> > result, string providerName, Type dataInterfaceType) { IEnumerable <IDataActionId> dataActionIdsByType = DataActionProviderPluginFacade.GetActionsByType(providerName, dataInterfaceType); List <DataActionSourceId> dataActionSourceIdsByType = dataActionIdsByType.ToList <IDataActionId, DataActionSourceId>(id => new DataActionSourceId(id, providerName)); foreach (List <DataActionSourceId> actionList in result.Values) { actionList.AddRange(dataActionSourceIdsByType); } }
private static void AddActionsByData <T>(Dictionary <DataSourceId, List <DataActionSourceId> > result, string providerName, IQueryable <T> data) where T : class, IData { Dictionary <DataSourceId, List <IDataActionId> > dataActionIdsByData = DataActionProviderPluginFacade.GetActionsByData <T>(providerName, data); if (dataActionIdsByData != null) { foreach (KeyValuePair <DataSourceId, List <IDataActionId> > kvp in dataActionIdsByData) { List <DataActionSourceId> dataActionSourceIds; if (result.TryGetValue(kvp.Key, out dataActionSourceIds) == false) { throw new InvalidOperationException(string.Format("The DataActionProvider {0} returned a DataSourceId that was not a part of the data query", providerName)); } List <DataActionSourceId> dataActionSourceIdsByData = kvp.Value.ToList <IDataActionId, DataActionSourceId>(id => new DataActionSourceId(id, providerName)); dataActionSourceIds.AddRange(dataActionSourceIdsByData); } } }