// Connectors ------------------------------------------------ /// <summary> /// Creates the instance of the specified definition. /// </summary> /// <param name="scope">The scope to consider.</param> /// <param name="definitionUniqueId">The unique ID of the definition to consider.</param> /// <param name="log">The log to consider.</param> public static IBdoConnectorConfiguration CreateConnectorConfiguration( this IBdoScope scope, string definitionUniqueId, IBdoLog log = null) { IBdoConnectorConfiguration configuration = null; IBdoConnectorDefinition definition = scope.ExtensionStore.GetItemDefinitionWithUniqueId <BdoConnectorDefinition>(definitionUniqueId); if (definition == null) { log?.AddError("Could not retrieve the extension item '" + definitionUniqueId + "' of kind '" + BdoExtensionItemKind.Connector.ToString() + "'"); } else { configuration = BdoExtensionFactory.CreateConnectorConfiguration(definitionUniqueId); configuration.Update(definition); } return(configuration); }
/// <summary> /// Creates the instance of the specified definition. /// </summary> /// <param name="scope">The scope to consider.</param> /// <param name="configuration">The configuration to consider.</param> /// <param name="name">The name to consider.</param> /// <param name="log">The log to consider.</param> /// <param name="scriptVariableSet">The script variable set to use.</param> /// <returns>Returns the created connector.</returns> public static IBdoConnector CreateConnector( this IBdoScope scope, IBdoConnectorConfiguration configuration = null, string name = null, IBdoLog log = null, IScriptVariableSet scriptVariableSet = null) { BdoConnector connector = null; if (scope?.Check(true).HasErrorsOrExceptions() == false) { if (configuration != null) { // we get the connector class reference IBdoConnectorDefinition definition = scope.ExtensionStore.GetItemDefinitionWithUniqueId <IBdoConnectorDefinition>(configuration?.DefinitionUniqueId); if (definition == null) { log?.AddError("Could not retrieve the extension connector '" + configuration.DefinitionUniqueId + "' definition"); } else { // we intantiate the connector AssemblyHelper.CreateInstance(definition.RuntimeType, out object item).AddEventsTo(log); if (item != null) { connector = item as BdoConnector; connector.Name = name ?? configuration?.Name; connector.WithScope(scope); connector.UpdateFromElementSet <DetailPropertyAttribute>(configuration, scope, scriptVariableSet); } } } } return(connector); }