// Carriers ------------------------------------------------ /// <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 IBdoCarrierConfiguration CreateCarrierConfiguration( this IBdoScope scope, string definitionUniqueId, IBdoLog log = null) { IBdoCarrierConfiguration configuration = null; IBdoCarrierDefinition definition = scope.ExtensionStore.GetItemDefinitionWithUniqueId <BdoCarrierDefinition>(definitionUniqueId); if (definition == null) { log?.AddError("Could not retrieve the extension item '" + definitionUniqueId + "' of kind '" + BdoExtensionItemKind.Carrier.ToString() + "'"); } else { configuration = BdoExtensionFactory.CreateCarrierConfiguration(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 carrier.</returns> public static BdoCarrier CreateCarrier( this IBdoScope scope, IBdoCarrierConfiguration configuration = null, string name = null, IBdoLog log = null, IScriptVariableSet scriptVariableSet = null) { BdoCarrier carrier = null; if (scope?.Check(true).HasErrorsOrExceptions() == false) { if (configuration != null) { // we get the carrier class reference IBdoCarrierDefinition definition = scope.ExtensionStore.GetItemDefinitionWithUniqueId <IBdoCarrierDefinition>(configuration.DefinitionUniqueId); if (definition == null) { log?.AddError("Could not retrieve the extension carrier '" + configuration.DefinitionUniqueId + "' definition"); } else { // we intantiate the carrier AssemblyHelper.CreateInstance(definition.RuntimeType, out object item).AddEventsTo(log); if (item != null) { carrier = item as BdoCarrier; carrier.Name = name ?? configuration?.Name; carrier.UpdateFromElementSet <DetailPropertyAttribute>(configuration, scope, scriptVariableSet); } } } } return(carrier); }