Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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;
        }