Example #1
0
        /// <summary>
        /// Enlist a DbSet for automatic Auditing
        /// </summary>
        public EntityAuditor <TEntity> Audit <TEntity>(IDbSet <TEntity> dbSet) where TEntity : class
        {
            var def = new EntityAuditor <TEntity>(this.GetEntityPkProperty <TEntity>().ToPropertyInfo());

            _entityAuditors.Add(def);
            return(def);
        }
Example #2
0
        /// <summary>
        /// Enlist an Entity for automatic Auditing.
        /// Use this overload to explicitly declare a primary key selector.
        /// </summary>
        /// <example>db.Products.Audit(p => p.ProductID);</example>
        /// <typeparam name="TEntity">Type of Entity you wish to audit</typeparam>
        public static EntityAuditor <TEntity> Audit <TEntity>(this Table <TEntity> table, Expression <Func <TEntity, object> > pkSelector) where TEntity : class
        {
            var context = (IAuditableContext)table.Context;
            var def     = new EntityAuditor <TEntity>(pkSelector.ToPropertyInfo());

            context.EntityAuditors.Add(def);
            return(def);
        }
Example #3
0
        /// <summary>
        /// Enlist an Entity for automatic Auditing.
        /// Use this overload to resolve primary keys automatically.
        /// </summary>
        /// <example>db.Products.Audit();</example>
        /// <typeparam name="TEntity">Type of Entity you wish to audit</typeparam>
        public static EntityAuditor <TEntity> Audit <TEntity>(this Table <TEntity> table) where TEntity : class
        {
            var context = (IAuditableContext)table.Context;
            var def     = new EntityAuditor <TEntity>(context.GetEntityPkProperty <TEntity>().ToPropertyInfo());

            context.EntityAuditors.Add(def);
            return(def);
        }