Exemple #1
0
        internal static bool TryCreateReference(
            Type candidateType,
            out IDataProcessorReference reference)
        {
            Guard.NotNull(candidateType, nameof(candidateType));

            reference = null;

            if (candidateType.IsPublicAndInstantiatableOfType(typeof(IDataProcessor)))
            {
                // There must be an empty, public constructor
                if (candidateType.TryGetEmptyPublicConstructor(out var constructor))
                {
                    try
                    {
                        reference = new DataProcessorReference(candidateType);
                    }
                    catch (InvalidOperationException e)
                    {
                        Console.Error.WriteLine($"Data processor disabled: {candidateType}.");
                        Console.Error.WriteLine($"{e.Message}");
                        return(false);
                    }
                }
            }

            return(reference != null);
        }
        /// <summary>
        ///     Generate a data processor reference from a given type.
        /// </summary>
        /// <param name="candidateType">
        ///     Data extension type.
        /// </param>
        /// <param name="reference">
        ///     Data extension reference.
        /// </param>
        /// <returns>
        ///     <c>true</c> if succeeded, <c>false</c> otherwise.
        /// </returns>
        public bool TryCreateDataProcessorReference(
            Type candidateType,
            out IDataProcessorReference reference)
        {
            Guard.NotNull(candidateType, nameof(candidateType));

            return(DataProcessorReference.TryCreateReference(candidateType, out reference));
        }
        public bool AddDataProcessorReference(IDataProcessorReference dataProcessorReference)
        {
            Guard.NotNull(dataProcessorReference, nameof(dataProcessorReference));

            return(this.dataProcessors.Add(dataProcessorReference));
        }