private static void ApplyConfigurationInternal(Component compToModify, ConfigurationDatum datum) { PropertyInfo[] allProps = compToModify.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.FlattenHierarchy); for (int datumPropIndex = 0; datumPropIndex < datum.PropertyInfo.Count; ++datumPropIndex) { ConfigurationDatum.ConfigurationPropertyInfoContainer propConfigInfo = datum.PropertyInfo[datumPropIndex]; if (propConfigInfo == null || propConfigInfo.PropertyName == null || propConfigInfo.PropertyName.Length == 0) { continue; } PropertyInfo inf; for (int obPropIndex = 0; obPropIndex < allProps.Length; ++obPropIndex) { inf = allProps[obPropIndex]; if (inf.Name.CompareTo(propConfigInfo.PropertyName) != 0) { continue; } if (inf.PropertyType.ToString() != propConfigInfo.PropertyType) { continue; } object toSet = GetValueAsObject(propConfigInfo.PropertyType, propConfigInfo.ValueToSet); inf.SetValue(compToModify, toSet); } } }
/// <summary> /// Saves the configuration. /// </summary> /// <param name="name">The name.</param> /// <param name="obj">The obj.</param> /// <param name="userName">Name of the user.</param> /// <returns></returns> public virtual int SaveConfiguration(string name, object obj, string userName) { Validator.ValidateStringArgumentIsNotNullOrEmptyString(name, NAME); Validator.ValidateArgumentIsSerializable(obj, OBJ); Validator.ValidateStringArgumentIsNotNullOrEmptyString(userName, USERNAME); Serializer serializer = new Serializer(); string xml = serializer.SerializeObject(obj, obj.GetType()); ConfigurationDatum configurationDatum = new ConfigurationDatum(ConfigurationDatum.Columns.Name, name); configurationDatum.Name = name; configurationDatum.Type = obj.GetType().AssemblyQualifiedName; configurationDatum.ValueX = xml.Trim(); if (configurationDatum.ConfigurationDataId == 0) { configurationDatum.CreatedDate = DateTime.UtcNow; } else { configurationDatum.ModifiedDate = DateTime.UtcNow; } configurationDatum.Save(userName); return(configurationDatum.ConfigurationDataId); }
public void ApplyConfiguration(System.Type type, GameObject ob, int configVariant = 0) { //sanity if (ob == null) { Logger.Log(this, Logger.Level.Critical, "Object to bind to is null or empty. Why you do this?"); return; } if (!_configDataDict.ContainsKey(type.ToString())) { Logger.Log(this, Logger.Level.Critical, "Configuration datum doest exist for type " + type.ToString()); return; } string key = type.ToString(); ConfigurationData data = _configDataDict[key]; if (data == null || data.Data == null || data.Data.Count == 0) { Logger.Log(this, Logger.Level.Critical, "Configuration data is empty for type " + type.ToString()); return; } if (!data.Data.ContainsKey(configVariant)) { Logger.Log(this, Logger.Level.Critical, "Configuration datum for type " + type.ToString() + " and variant " + configVariant + " cannot be found."); return; } ConfigurationDatum datum = data.Data[configVariant]; if (datum == null) { Logger.Log(this, Logger.Level.Critical, "Configuration datum for type " + type.ToString() + " and variant " + configVariant + " is null or empty."); return; } Transform goToModify = ob.transform.Find(datum.GameObjectHierarchy); if (goToModify == null) { Logger.Log(this, Logger.Level.Critical, "cannot find child at hierarchy " + datum.GameObjectHierarchy); return; } Component compToModify = goToModify.GetComponent(type); if (compToModify == null) { Logger.Log(this, Logger.Level.Critical, "cannot find component of type " + datum.TypeOfComponent + " at hierarchy " + datum.GameObjectHierarchy); return; } ApplyConfigurationInternal(compToModify, datum); }
/// <summary> /// Fetches the configuration by name. /// </summary> /// <param name="configurationSectionName">Name of the configuration section.</param> /// <returns></returns> public ConfigurationDatum FetchConfigurationByName(string configurationSectionName) { Validator.ValidateStringArgumentIsNotNullOrEmptyString(configurationSectionName, CONFIGURATION_SECTION_NAME); ConfigurationDatumCollection configurationDatumCollection = new ConfigurationDatumCollection(). Where(ConfigurationDatum.Columns.Name, configurationSectionName). Load(); ConfigurationDatum configurationDatum = null; if (configurationDatumCollection.Count == 1) { configurationDatum = configurationDatumCollection[0]; } return(configurationDatum); }
/// <summary> /// Fetches the configuration by id. /// </summary> /// <param name="configurationDataId">The configuration data id.</param> /// <returns></returns> public virtual ConfigurationDatum FetchConfigurationById(int configurationDataId) { Validator.ValidateIntegerIsGreaterThanZero(configurationDataId, ConfigurationContants.ARGUMENT_CONFIGURATION_DATA_ID); ConfigurationDatumCollection configurationDatumCollection = new ConfigurationDatumController().FetchByID(configurationDataId); ConfigurationDatum configurationDatum = null; if (configurationDatumCollection.Count == 1) { configurationDatum = configurationDatumCollection[0]; } return(configurationDatum); }
public void Insert(string Name,string Type,string ValueX,string CreatedBy,DateTime CreatedDate,string ModifiedBy,DateTime ModifiedDate,bool IsDeleted) { ConfigurationDatum item = new ConfigurationDatum(); item.Name = Name; item.Type = Type; item.ValueX = ValueX; item.CreatedBy = CreatedBy; item.CreatedDate = CreatedDate; item.ModifiedBy = ModifiedBy; item.ModifiedDate = ModifiedDate; item.IsDeleted = IsDeleted; item.Save(UserName); }
/// <summary> /// Saves the configuration. /// </summary> /// <param name="name">The name.</param> /// <param name="obj">The obj.</param> /// <param name="userName">Name of the user.</param> /// <returns></returns> public virtual int SaveConfiguration(string name, object obj, string userName) { Validator.ValidateStringArgumentIsNotNullOrEmptyString(name, NAME); Validator.ValidateArgumentIsSerializable(obj, OBJ); Validator.ValidateStringArgumentIsNotNullOrEmptyString(userName, USERNAME); Serializer serializer = new Serializer(); string xml = serializer.SerializeObject(obj, obj.GetType()); ConfigurationDatum configurationDatum = new ConfigurationDatum(ConfigurationDatum.Columns.Name, name); configurationDatum.Name = name; configurationDatum.Type = obj.GetType().AssemblyQualifiedName; configurationDatum.ValueX = xml.Trim(); if (configurationDatum.ConfigurationDataId == 0) { configurationDatum.CreatedDate = DateTime.UtcNow; } else { configurationDatum.ModifiedDate = DateTime.UtcNow; } configurationDatum.Save(userName); return configurationDatum.ConfigurationDataId; }