2015-06-02 2 views
0

При сохранении определенной сущности я хочу отправить уведомление по электронной почте, если свойство Approved этого объекта изменилось.Возможно ли узнать, изменилось ли какое-либо свойство на измененном объекте?

  if (changedEntity.Entity is Option) 
      { 
       // Pseudo 
       if changedEntity.Entity.Approved changed { 
        send notification() 
       } 
      } 

Есть ли определенный способ сделать это? Или это можно сделать, сравнив CurrentValues с OriginalValues?

ответ

0

Если вы знаете конкретный объект, который вы хотите, чтобы «смотреть», вы можете использовать EntityAspect.propertyChanged события (см: http://breeze.github.io/doc-js/api-docs/classes/EntityAspect.html#event_propertyChanged), как это:

// assume order is an order entity attached to an EntityManager. 
myEntity.entityAspect.propertyChanged.subscribe(function(propertyChangedArgs) { 
    // this code will be executed anytime a property value changes on the 'myEntity' entity. 
    if (propertyChangedArgs.propertyName === "Approved") { 
     // perform your logic here. 
    } 
}); 

Или, если вы хотите смотреть специфическое свойство на каждой сущности, вы можете выполнить подобный тест с использованием EntityManger.entityChanged события (см http://breeze.github.io/doc-js/api-docs/classes/EntityManager.html#event_entityChanged)

myEntityManager.entityChanged.subscribe(function (args) { 
    // entity will be the entity that was just changed; 
    var entity = args.entity; 
    // entityAction will be the type of change that occured. 
    var entityAction = args.entityAction; 
    if (entityAction == breeze.EntityAction.PropertyChange) { 
     var propChangArgs = args.args; 
     if (propChangeArgs.propertyName === "Approved") { 
      // perform your logic here 
     } 
    } 

    }); 

Больше йм ail можно найти здесь: http://breeze.github.io/doc-js/lap-changetracking.html

+0

Я знаю, что могу слушать это конкретное событие, но я сохраняю его в любом случае, поэтому я хотел бы сделать это в save changes() :) – Peter

+1

Тогда да, просто пойдите и используйте myEntity.entityAspect.originalValues. Этот хеш будет иметь только значения для измененных свойств. –

+0

Спасибо @jaytraband Я попробую это завтра. – Peter