Exemple #1
0
        /// <summary>
        /// Encrypts password fields of the setting value to store it securely
        /// </summary>
        /// <param name="settingValue">Value</param>
        /// <param name="settingDefiniton">Definition</param>
        /// <returns>Encrypted application setting value</returns>
        private SettingValue Encrypt(SettingValue settingValue, SettingDefinition settingDefiniton)
        {
            if (settingValue == null || settingDefiniton == null)
            {
                return(settingValue);
            }

            for (int i = 1; i <= 15; i++)
            {
                FormInputType inputType = (FormInputType)settingDefiniton.GetType().GetProperty("FieldInputType" + i.ToString()).GetValue(settingDefiniton, null);

                if (inputType == FormInputType.Password)
                {
                    string value = (string)settingValue.GetType().GetProperty("Field" + i.ToString()).GetValue(settingValue, null);
                    value = _encryptionProvider.Encrypt(value, _configurationFactory().SymmetricKey);
                    settingValue.GetType().GetProperty("Field" + i.ToString()).SetValue(settingValue, value);
                }
            }
            return(settingValue);
        }
        public static void Set(this SettingValue settingValue, SettingDefinition settingDef, string fieldName, string value)
        {
            for (int i = 1; i <= FieldCount; i++)
            {
                string name = (string)settingDef.GetType().GetProperty("Field" + i.ToString()).GetValue(settingDef, null);

                if (fieldName == name)
                {
                    settingValue.GetType().GetProperty("Field" + i.ToString()).SetValue(settingValue, value);
                    return;
                }
            }
        }
Exemple #3
0
        public void UpdateSettingValue(SettingValue settingValue)
        {
            SettingDefinition settingDef = this.GetSettingDefinitionById(settingValue.SettingDefinitionID);

            for (int i = 1; i <= 15; i++)
            {
                bool   isRequired = (bool)settingDef.GetType().GetProperty("FieldRequired" + i.ToString()).GetValue(settingDef, null);
                string value      = (string)settingValue.GetType().GetProperty("Field" + i.ToString()).GetValue(settingValue, null);

                if (isRequired && string.IsNullOrEmpty(value))
                {
                    throw new ASException(this._resourceManager.GetString("Setting_InvalidSettingValue"));
                }
            }
            settingValue = Encrypt(settingValue, settingDef);
            _dbContext.Entry(settingValue).State = EntityState.Modified;
            _dbContext.SaveChanges();
        }
Exemple #4
0
        protected T GetFieldValue <T>(SettingValue value, string fieldName)
        {
            T fieldValue = default(T);

            for (int i = 1; i <= TotalFieldCount; i++)
            {
                string pFieldName = (string)value.SettingDefinition.GetType()
                                    .GetProperty("Field" + i.ToString()).GetValue(value.SettingDefinition, null);

                if (!string.IsNullOrEmpty(pFieldName) &&
                    pFieldName.Equals(fieldName, StringComparison.InvariantCultureIgnoreCase))
                {
                    fieldValue = (T)Convert.ChangeType(value.GetType().GetProperty("Field" + i.ToString()).GetValue(value, null), typeof(T));
                    break;
                }
            }

            return(fieldValue);
        }