public override void OnModify(DbPropertyValues originalValues, DbPropertyValues currentValues) { base.OnModify(originalValues, currentValues); var reflectionHelper = new ReflectionHelper <BookingRequestDO>(); var statePropertyName = reflectionHelper.GetPropertyName(br => br.State); if (!MiscUtils.AreEqual(originalValues[statePropertyName], currentValues[statePropertyName])) { var state = (int)currentValues[statePropertyName]; switch (state) { case BookingRequestState.NeedsBooking: AlertManager.BookingRequestNeedsProcessing(Id); break; case BookingRequestState.Resolved: AlertManager.BookingRequestMarkedProcessed(Id, BookerID); break; } } }