GOT A WORK AROUND, EXPERTS PLEASE VERIFY !!!
GivenEntity entObj =
new
GivenEntity();
//FETCHED AND DID SOME CHANGES IN ENTITY HERE
//FETCHING CONTEXT CHANGES
Telerik.OpenAccess.ContextChanges contextChanges = _context.GetChanges();
//CHECK WHETHER ANY FIELDS UPDATED AGAINST GIVEN ENTITY
IList<GivenEntity> Updates = contextChanges.GetUpdates<GivenEntity>();
//IF THERE ARE FIELDS WHICH WERE UPDATED THEN STEP IN AND IDENTIFY THOSE FIELDS
if
(Updates.Count > 0)
{
//FETCHING ALL FIELDS FROM ENTITY WHERE WERE MODIFIED
IEnumerable<
string
> modifiedFields = _context.GetMemberNames(entObj, Telerik.OpenAccess.ObjectState.Dirty);
//LOOPING THROUGH EACH MODIFIED FIELD TO GET ITS OLD AND NEW VALUE
foreach
(var array
in
modifiedFields)
{
//FETCHING ENTITY ROW
var b = Updates.FirstOrDefault();
//FETCHING ALL PROPERTIES / ATTRIBUTES AGAINST THAT ENTITY ROW
var c = b.GetType().GetProperties();
//CHECKING WHETHER MODIFIED FIELD EXIST IN ENTITY PROPERTIES / ATTRIBUTES OR NOT
var d = c.Where(g => g.Name.ToLower().Equals(array.ToLower())).FirstOrDefault();
//IF EXISTS THEN GETTING ITS CURRENT / NEW VALUE
var newValue = d.GetValue(b,
null
);
//HERE GETTING ITS ORIGINAL / OLD VALUE
var oldValue = _context.GetOriginalValue<
string
>(_entObj, array);
MessageBox.Show(
"OLD = "
+ oldValue +
" , NEW = "
+ newValue );
}
}
EXPERTS PLEASE VERIFY !!! IF I AM DOING ANY THING WRONG HERE