Beside the point I know but :
if (typeof(IAuditableEntity).IsAssignableFrom(entity.GetType())) {
to
var auditable = entity as IAuditableEntity;
if (auditable != null) {isn't easier to read ? On Dec 18, 6:35 am, "Stefan Sedich" <[email protected]> wrote: > Hello, > > I am setting date last modified audit on an entity, I implement an > IAuditableEntity interface and use a helper to set the date modified: > > public override bool OnFlushDirty(object entity, object id, object[] > currentState, object[] previousState, string[] propertyNames, > global::NHibernate.Type.IType[] types) { > > if (typeof(IAuditableEntity).IsAssignableFrom(entity.GetType())) { > > // If entity is auditable as this is only an update > set the last modified date. > SetValue(propertyNames, currentState, item => > item.LastModified, DateTime.Now); > > } > > return false; > } > > Type safe helper: > > public void SetValue<T>(string[] propertyNames, object[] state, > Expression<System.Func<IAuditableEntity, T>> propertyExpression, T > value) { > > var memberExpression = propertyExpression.Body as > MemberExpression; > if (memberExpression == null) > throw new ArgumentException("The member expression was > not a valid member expression."); > > string name = memberExpression.Member.Name; > int index = propertyNames.ToList().IndexOf(name); > > if(index == -1) > throw new > InvalidOperationException(string.Format("Property {0} does no exist on > entity.", name)); > > state[index] = value; > > } > > Now the question is, I saw that you must set the current state and not > the entity directly why would > > var ent = entity as IAuditableEntity; > ent.LastModified = DateTime.Now; > > Not work properly or will it be fine to do this? > > Thanks > > -- > Stefan Sedich > Software Developerhttp://weblogs.asp.net/stefansedich --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
