// Load ------------------------------------------------ /// <summary> /// Creates the instance of the specified definition. /// </summary> /// <param name="scope">The scope to consider.</param> /// <param name="xmlstring">The XML string to consider.</param> /// <param name="scriptVariableSet">The set of script variables to consider.</param> /// <param name="log">The log to consider.</param> public static ITBdoExtensionItemConfiguration <T> LoadConfiguration <T>( this IBdoScope scope, string xmlstring, IScriptVariableSet scriptVariableSet = null, IBdoLog log = null) where T : IBdoExtensionItemDefinition { BdoExtensionItemKind extensionItemKind = typeof(T).GetExtensionItemKind(); ITBdoExtensionItemConfiguration <T> configuration = default; switch (extensionItemKind) { case BdoExtensionItemKind.Carrier: configuration = XmlHelper.LoadFromString <BdoCarrierConfiguration>(xmlstring, scope, scriptVariableSet, log) as ITBdoExtensionItemConfiguration <T>; break; case BdoExtensionItemKind.Connector: configuration = XmlHelper.LoadFromString <BdoConnectorConfiguration>(xmlstring, scope, scriptVariableSet, log) as ITBdoExtensionItemConfiguration <T>; break; case BdoExtensionItemKind.Entity: configuration = XmlHelper.LoadFromString <BdoEntityConfiguration>(xmlstring, scope, scriptVariableSet, log) as ITBdoExtensionItemConfiguration <T>; break; case BdoExtensionItemKind.Format: configuration = XmlHelper.LoadFromString <BdoFormatConfiguration>(xmlstring, scope, scriptVariableSet, log) as ITBdoExtensionItemConfiguration <T>; break; case BdoExtensionItemKind.Task: configuration = XmlHelper.LoadFromString <BdoTaskConfiguration>(xmlstring, scope, scriptVariableSet, log) as ITBdoExtensionItemConfiguration <T>; break; } return(configuration); }
/// <summary> /// Instantiates a new instance of the BdoExtensionItemConfiguration class. /// </summary> /// <param name="kind">The kind to consider.</param> /// <param name="definitionUniqueId">The definition unique ID to consider.</param> /// <param name="items">The items to consider.</param> protected TBdoExtensionItemConfiguration( BdoExtensionItemKind kind, string definitionUniqueId, params IDataElement[] items) { Kind = kind; DefinitionUniqueId = definitionUniqueId; Items = items?.ToList(); }
/// <summary> /// Loads the extension dictionary of the specified kind from the specified assembly. /// </summary> /// <param name="assembly">The assembly to consider.</param> /// <param name="kind">The kind of item to consider.</param> /// <param name="extensionDefinition">The extension definition to consider.</param> /// <param name="log">The log to consider.</param> /// <returns></returns> private int LoadDictionary( Assembly assembly, BdoExtensionItemKind kind, IBdoExtensionDefinition extensionDefinition = null, IBdoLog log = null) { if (assembly == null) { return(-1); } switch (kind) { case BdoExtensionItemKind.Carrier: return(LoadCarrierDictionaryFromAssembly(assembly, extensionDefinition, log)); case BdoExtensionItemKind.Connector: return(LoadConnectorDictionaryFromAssembly(assembly, extensionDefinition, log)); case BdoExtensionItemKind.Entity: return(LoadEntityDictionaryFromAssembly(assembly, extensionDefinition, log)); case BdoExtensionItemKind.Format: return(LoadFormatDictionaryFromAssembly(assembly, extensionDefinition, log)); case BdoExtensionItemKind.Handler: return(LoadHandlerDictionaryFromAssembly(assembly, extensionDefinition, log)); case BdoExtensionItemKind.Metrics: return(LoadMetricsDictionaryFromAssembly(assembly, extensionDefinition, log)); case BdoExtensionItemKind.Routine: return(LoadRoutineDictionaryFromAssembly(assembly, extensionDefinition, log)); case BdoExtensionItemKind.Scriptword: return(LoadScripwordDictionaryFromAssembly(assembly, extensionDefinition, log)); case BdoExtensionItemKind.Task: return(LoadTaskDictionaryFromAssembly(assembly, extensionDefinition, log)); case BdoExtensionItemKind.Any: case BdoExtensionItemKind.None: break; } return(-1); }
/// <summary> /// Gets the dictionary resource name. /// </summary> /// <returns>Returns the class of the specified dictionary.</returns> private string GetDictionaryResourceName <T>() where T : IBdoExtensionItemDefinitionDto { BdoExtensionItemKind itemKind = typeof(T).GetExtensionItemKind(); return(itemKind switch { BdoExtensionItemKind.Carrier => "BindOpen.Carriers", BdoExtensionItemKind.Connector => "BindOpen.Connectors", BdoExtensionItemKind.Entity => "BindOpen.Entities", BdoExtensionItemKind.Format => "BindOpen.Formats", BdoExtensionItemKind.Handler => "BindOpen.Handlers", BdoExtensionItemKind.Metrics => "BindOpen.Metrics", BdoExtensionItemKind.Routine => "BindOpen.Routines", BdoExtensionItemKind.Scriptword => "BindOpen.Scriptwords", BdoExtensionItemKind.Task => "BindOpen.Tasks", _ => null, });
/// <summary> /// Instantiates a new instance of the TBdoExtensionTitledItemConfiguration class. /// </summary> /// <param name="kind">The kind to consider.</param> /// <param name="definitionUniqueId">The definition unique ID to consider.</param> protected TBdoExtensionTitledItemConfiguration( BdoExtensionItemKind kind, string definitionUniqueId) : base(kind, definitionUniqueId) { }