// 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);
        }
Beispiel #2
0
 /// <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,
            });
Beispiel #5
0
 /// <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)
 {
 }