in src/BackupExplorer/Parser/TransactionChangeManager.cs [63:129]
internal void OnStateManagerChanged(object sender, NotifyStateManagerChangedEventArgs e)
{
log.Info($" StateManagerChanged with event Action:- {e.Action}");
var rebuildEvent = e as NotifyStateManagerRebuildEventArgs;
if (rebuildEvent != null)
{
var reliableStates = rebuildEvent.ReliableStates.ToEnumerable();
foreach (var reliableState in reliableStates)
{
var reliableStateType1 = reliableState.GetType();
switch (ReliableStateKindUtils.KindOfReliableState(reliableState))
{
case ReliableStateKind.ReliableDictionary:
{
var keyType = reliableStateType1.GetGenericArguments()[0];
var valueType = reliableStateType1.GetGenericArguments()[1];
// use reflection to call my own method because key/value types are known at runtime.
this.GetType().GetMethod("AddDictionaryChangedHandler", BindingFlags.Instance | BindingFlags.NonPublic)
.MakeGenericMethod(keyType, valueType)
.Invoke(this, new object[] { reliableState });
break;
}
case ReliableStateKind.ReliableQueue:
case ReliableStateKind.ReliableConcurrentQueue:
default:
break;
}
}
this.reliabilitySimulator.GrantReadAccess();
return;
}
var addoperation = e as NotifyStateManagerSingleEntityChangedEventArgs;
var reliableStateType = addoperation.ReliableState.GetType();
switch (ReliableStateKindUtils.KindOfReliableState(addoperation.ReliableState))
{
case ReliableStateKind.ReliableDictionary:
{
var keyType = reliableStateType.GetGenericArguments()[0];
var valueType = reliableStateType.GetGenericArguments()[1];
// use reflection to call my own method because key/value types are known at runtime.
this.GetType().GetMethod("AddDictionaryChangedHandler", BindingFlags.Instance | BindingFlags.NonPublic)
.MakeGenericMethod(keyType, valueType)
.Invoke(this, new object[] { addoperation.ReliableState });
break;
}
case ReliableStateKind.ReliableQueue:
{
log.Info("Queue is present in the Backup. Backup Viewer cannot handle these events");
break;
}
case ReliableStateKind.ReliableConcurrentQueue:
{
log.Info("Concurrent Queue is present in the backup. Backup Viewer cannot handle these events.");
break;
}
default:
break;
}
}