int AddEventInvokeCall(int index, PropertyDefinition property)
{
index = AddOnChangedMethodCall(index, property);
if (propertyData.AlreadyNotifies.Contains(property.Name))
{
moduleWeaver.LogDebug($"\t\t\t{property.Name} skipped since call already exists");
return index;
}
moduleWeaver.LogDebug($"\t\t\t{property.Name}");
if (typeNode.EventInvoker.InvokerType == InvokerTypes.BeforeAfterGeneric)
{
return AddBeforeAfterGenericInvokerCall(index, property);
}
if (typeNode.EventInvoker.InvokerType == InvokerTypes.BeforeAfter)
{
return AddBeforeAfterInvokerCall(index, property);
}
if (typeNode.EventInvoker.InvokerType == InvokerTypes.PropertyChangedArg)
{
return AddPropertyChangedArgInvokerCall(index, property);
}
if (typeNode.EventInvoker.InvokerType == InvokerTypes.SenderPropertyChangedArg)
{
return AddSenderPropertyChangedArgInvokerCall(index, property);
}
return AddSimpleInvokerCall(index, property);
}