Esempio n. 1
0
        public void AddNamedParameters(object namedParameters, CrudMethod crudMethodType)
        {
            if (namedParameters == null)
            {
                return;
            }

            var ignoreAttribute = new List <Type> {
                typeof(IgnoreAttribute)
            };

            switch (crudMethodType)
            {
            case CrudMethod.Insert:
                ignoreAttribute.Add(typeof(IgnoreOnInsertAttribute));
                break;

            case CrudMethod.Update:
                ignoreAttribute.Add(typeof(IgnoreOnUpdateAttribute));
                break;
            }

            var props = namedParameters.GetType().GetProperties();

            foreach (var p in props)
            {
                var name             = p.Name;
                var customAttributes = p.GetCustomAttributes(true);
                if (customAttributes.Any(x => x is ColumnAttribute))
                {
                    name = ((ColumnAttribute)customAttributes.Single(x => x is ColumnAttribute)).Name;
                }

                if (customAttributes.Any(x => ignoreAttribute.Contains(x.GetType())))
                {
                    continue;
                }

                var value = p.GetValue(namedParameters, null);
                if (DBNull.Value.Equals(value))
                {
                    value = null;
                }

                NamedParameters.Add(new KeyValuePair <string, object>(name, value));
            }
        }
Esempio n. 2
0
 public IDbClient AddNamedParameters(object namedParameters, CrudMethod crudMethodType)
 {
     _parameterManager.AddNamedParameters(namedParameters, crudMethodType);
     return(this);
 }