Exemple #1
0
        public void SenderMessageReturnFalse()
        {
            var  factory = new FactoryConfig();
            bool results = factory.RecieveMessage();

            Assert.IsFalse(results, "Message Recieved Cannot be empty.");
        }
Exemple #2
0
        public void SenderMessageReturnFalse()
        {
            var  factory = new FactoryConfig();
            bool results = factory.SendMessage(string.Empty);

            Assert.IsFalse(results, "Message Cannot be empty");
        }
Exemple #3
0
        public void SenderMessageReturnTrue()
        {
            var  factory = new FactoryConfig();
            bool results = factory.SendMessage("Ziggy");

            Assert.IsTrue(results, "Message Sent Succeffuly");
        }
Exemple #4
0
        public void SenderMessageReturnTrue()
        {
            var  factory = new FactoryConfig();
            bool results = factory.RecieveMessage();

            Assert.IsTrue(results, "Message Recieved Succeffuly.");
        }
Exemple #5
0
 public void Setup(FactoryConfig config)
 {
     _produces = config.Produces;
     foreach (var type in _produces)
     {
         _queued[type] = 0;
     }
 }
        private void ManageFactoryConfig()
        {
            ProcessCellService service = new ProcessCellService();
            FactoryConfig      factory = service.GetFactoryConfig();

            Procescells          = new ObservableCollection <Procescell>(factory.Procescells);
            Bins                 = new ObservableCollection <Bin>(factory.Bins);
            ParameterDefinitions = new ObservableCollection <ParameterDefinition>(factory.ParameterDefinitions);
            Units                = new ObservableCollection <OAUnitDefinition>(factory.OAUnitDefinitions);
        }
Exemple #7
0
        private ClassConfig GetMatchSubType(MetaData metaData, Type subType, FactoryConfig factoryConfig)
        {
            foreach (var config in metaData.Configs)
            {
                if (config.Key == subType)
                {
                    return(config.Value);
                }
            }

            return(null);
        }
        //Gets Procescells, Units, Bins & ParameterDefinitions
        public FactoryConfig GetFactoryConfig()
        {
            using (var context = new ConfigurationToolContext())
            {
                var procescellRepository          = new ProcessCellRepository(context);
                var binRepository                 = new BinRepository(context);
                var parameterDefinitionRepository = new ParameterDefinitionRepository(context);
                var OAUnitDefinitionRepository    = new OAUnitDefinitionRepository(context);
                var factoryConfig                 = new FactoryConfig();

                factoryConfig.ParameterDefinitions = parameterDefinitionRepository.GetAll();
                factoryConfig.Procescells          = procescellRepository.GetAll();
                factoryConfig.Bins = binRepository.GetAll();
                factoryConfig.OAUnitDefinitions = OAUnitDefinitionRepository.GetAll();

                return(factoryConfig);
            }
        }
        /// <summary>
        /// 根据元数据以及过滤数据规则配置查找出匹配的子类
        /// </summary>
        /// <param name="metaData">元数据</param>
        /// <param name="filters">过滤数据</param>
        /// <param name="factoryConfig">容器配置</param>
        /// <returns></returns>
        private ClassConfig GetMatchSubType(MetaData metaData, object[] filters, FactoryConfig factoryConfig)
        {
            ClassConfig defaultConfig = null;

            foreach (var config in metaData.Configs)
            {
                if (config.Value.IsMatch(filters, factoryConfig))
                {
                    return(config.Value);
                }

                if (config.Value.IsDefault)
                {
                    defaultConfig = config.Value;
                }
            }

            //没有匹配的情况下如果有默认的就用默认的
            return(defaultConfig);
        }
Exemple #10
0
 static FactoryContainer()
 {
     defaultConfig = new FactoryConfig();
 }
Exemple #11
0
 internal override TService Resolve <TService>(MetaData metaData, object[] filter, object[] constructorArgs, FactoryConfig factoryConfig)
 {
     return(CreateInstance <TService>(metaData, metaData.SubTypes.First(), constructorArgs, factoryConfig));
 }
Exemple #12
0
 public FactoryContainer(FactoryConfig factoryConfig)
 {
     this.factoryConfig = factoryConfig;
 }
Exemple #13
0
 /// <summary>
 /// 初始化工厂配置
 /// </summary>
 private LazySqlFactory()
 {
     factoryConfig = new FactoryConfig();
 }
 public StandardContainer(FactoryConfig factoryConfig) : base(factoryConfig)
 {
 }
Exemple #15
0
 internal abstract TService Resolve <TService>(MetaData metaData, object[] filter, object[] constructorArgs, FactoryConfig factoryConfig);
Exemple #16
0
        private TService TryStoreSingleObject <TService>(MetaData metaData, Type type, object target, object[] constructorArgs, FactoryConfig factoryConfig, bool settingSingle)
        {
            if (constructorArgs != null || factoryConfig.CompentMode == CompentMode.PerRequest)
            {
                return((TService)target);
            }

            if (factoryConfig.CompentMode == CompentMode.BySetting && settingSingle == false)
            {
                return((TService)target);
            }

            lock (cacehObjects)
            {
                object obj;
                if (cacehObjects.TryGetValue(type, out obj))
                {
                    return((TService)obj);
                }
                else
                {
                    cacehObjects.Add(type, target);
                }
            }

            return((TService)target);
        }
Exemple #17
0
        /// <summary>
        /// 根据元数据和类型构造参数和配置创造实例
        /// </summary>
        /// <typeparam name="TService">原始类型</typeparam>
        /// <param name="metaData">元数据</param>
        /// <param name="type">需要创建的类型</param>
        /// <param name="constructorArgs">构造参数</param>
        /// <param name="factoryConfig">容器配置</param>
        /// <param name="settingSingle">是否设置为单例</param>
        /// <returns>TService类型</returns>
        protected TService CreateInstance <TService>(MetaData metaData, Type type, object[] constructorArgs, FactoryConfig factoryConfig, bool settingSingle = true)
        {
            if (type == null)
            {
                return(default(TService));
            }

            //如果有缓存直接从缓存拿取
            object obj;

            if (constructorArgs == null && cacehObjects.TryGetValue(type, out obj))
            {
                return((TService)obj);
            }

            obj = Activator.CreateInstance(type, constructorArgs);
            return(TryStoreSingleObject <TService>(metaData, type, obj, constructorArgs, factoryConfig, settingSingle));
        }
Exemple #18
0
 public FactoryContainer()
 {
     this.factoryConfig = defaultConfig;
 }
Exemple #19
0
        internal override TService Resolve <TService>(MetaData metaData, object[] filter, object[] constructorArgs, FactoryConfig factoryConfig)
        {
            //根据接口元数据查找匹配的子类类型配置
            var type   = typeof(TService);
            var config = GetMatchSubType(metaData, type, factoryConfig);

            if (config == null)
            {
                return(default(TService));
            }

            var args = GetAjustConstructorArgs(config, constructorArgs);

            return(CreateInstance <TService>(metaData, config.InstanceType, args, factoryConfig, config.Single));
        }