/// <summary> /// Adds new factory to the facility. /// </summary> /// <param name="customConfiguration"></param> /// <returns></returns> public INHFacilityConfiguration AddFactory(Action<IFactoryConfiguration> customConfiguration) { var factoryConfig=new FactoryConfiguration(); customConfiguration(factoryConfig); this.factoryConfigurations.Add(factoryConfig); return this; }
public ViaCEPTimerTriggerFunctionTest() { _httpClient = new HttpClient(); _httpClient.BaseAddress = new Uri("https://viacep.com.br/ws/"); _logger = FactoryConfiguration.CreateLogger(); }
public List <EntityConfiguration> GetAll() { return(FactoryConfiguration.GetList(base.DataContext.Configuration.OrderByDescending(p => p.ModifyDate).ToList())); }
public List <EntityConfiguration> GetActives() { return(FactoryConfiguration.GetList(base.DataContext.Configuration.Where(p => p.Status == true).ToList())); }
private MethodInfo MatchMethods(FactoryConfiguration factory, Type type, string methodName, bool isStatic) { MethodInfo[] methods = type.GetMethods(); MethodInfo bestMethodMatch = null; int bestScore = int.MaxValue; foreach (MethodInfo method in methods) { if (method.Name != methodName) { continue; } int score = 0; ParameterInfo[] parameters = method.GetParameters(); //if param count doesnt match , move to next ctor if (parameters.Length != factory.ParameterConfigurations.Count) { continue; } if (parameters.Length == 0) { return(method); } #region Match parameters for (int i = 0; i < parameters.Length; i++) { ParameterConfiguration parameterConfig = (ParameterConfiguration)factory.ParameterConfigurations[i]; Type type1 = parameters[i].ParameterType; Type type2 = parameterConfig.Type; if (type2 == null) { //untyped parameter try { ValueConfiguration parameterValueConfig = (ValueConfiguration)parameterConfig.Value; object res = Convert.ChangeType(parameterValueConfig.Value, type1); } catch { continue; } score++; } else { //typed parameter if (type1.IsAssignableFrom(type2)) { if (type1 == type2) { //same type score++; } else if (type2.IsSubclassOf(type1)) { //subclass Type tmpType = type2; while (tmpType != type1) { score++; tmpType = tmpType.BaseType; } } else { //interface score++; } } else { //ignore this continue; } } } #endregion if (score < bestScore && score != 0) { bestMethodMatch = method; bestScore = score; } } return(bestMethodMatch); }
public IContainer Configure(XmlElement xmlRoot) { IContainer container = new Container(); XmlElement o = xmlRoot; if (o == null) { return(container); } ArrayList objectConfigurations = new ArrayList(); ArrayList listConfigurations = new ArrayList(); ArrayList factoryConfigurations = new ArrayList(); foreach (XmlNode configNode in o) { if (configNode.Name == "object") { IObjectConfiguration objectConfig = ConfigureObject(configNode, container); objectConfigurations.Add(objectConfig); } if (configNode.Name == "list") { IListConfiguration listConfig = ConfigureList(configNode, container); listConfigurations.Add(listConfig); } if (configNode.Name == "factory") { IFactoryConfiguration factoryConfig = ConfigureFactory(configNode, container); factoryConfigurations.Add(factoryConfig); } } foreach (FactoryConfiguration factoryConfig in factoryConfigurations) { FillFactoryParameterTypes(factoryConfig); if (factoryConfig.Object != null) { factoryConfig.Type = factoryConfig.Object.Type; } bool isStatic = factoryConfig.Object == null; MethodInfo bestMethodMatch = MatchMethods(factoryConfig, factoryConfig.Type, factoryConfig.MethodName, isStatic) ; if (bestMethodMatch == null) { throw new Exception(string.Format("Can not find Method for type '{0}' that matches your parameters", factoryConfig.Type)); } factoryConfig.Method = bestMethodMatch; } foreach (ObjectConfiguration objectConfig in objectConfigurations) { FillCtorParameterTypes(objectConfig); if (objectConfig.InstanceValue is FactoryConfiguration) { FactoryConfiguration factory = objectConfig.InstanceValue as FactoryConfiguration; objectConfig.Type = factory.Method.ReturnType; } else { ConstructorInfo bestCtorMatch = MatchConstructors(objectConfig); if (bestCtorMatch == null) { throw new Exception(string.Format("Can not find CTOR for type '{0}' that matches your parameters", objectConfig.Type)); } objectConfig.Constructor = bestCtorMatch; } } foreach (ListConfiguration listConfig in listConfigurations) { FillItemTypes(listConfig); } //cache configuration return(container); }
public static void Boot() { //Configure the DI Container FactoryConfiguration.Configure(); }
public static void InitFactoryTime(IModelProject project) { FactoryConfiguration.Check(project, InitializeFacotryTime); }
public static void InitFactoryTime(IExperimentResultItem result) { FactoryConfiguration.Check(result.Model, InitializeFacotryTime); }
public static void InitFactoryTime(IModelProject project) { FactoryConfiguration.Check(project, CreateFactoryTime); }