jaydata-reso
Version:
Jaydata fork for RESO Web API
32 lines (27 loc) • 1.25 kB
JavaScript
$data.Class.define('$data.Notifications.ChangeCollector', $data.Notifications.ChangeCollectorBase, null, {
buildData: function (entities) {
var result = [];
entities.forEach(function (element) {
var resObj = { entityState: element.data.entityState, typeName: element.data.getType().name };
var enumerableMemDefCollection = [];
switch (element.data.entityState) {
case $data.EntityState.Added:
enumerableMemDefCollection = element.data.getType().memberDefinitions.getPublicMappedProperties();
break;
case $data.EntityState.Modified:
enumerableMemDefCollection = element.data.changedProperties;
break;
case $data.EntityState.Deleted:
enumerableMemDefCollection = element.data.getType().memberDefinitions.getKeyProperties();
break;
default:
break;
}
enumerableMemDefCollection.forEach(function (memDef) {
resObj[memDef.name] = element.data[memDef.name];
});
result.push(resObj);
});
return result;
}
}, null);