or if (entity is IAuditableEntity) ? :)
On Thu, Dec 18, 2008 at 11:08 PM, Daniel Fernandes < [email protected]> wrote: > > 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 > > > -- Tuna Toksöz http://tunatoksoz.com Typos included to enhance the readers attention! --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
