protected override IEnumerable <object> ResolveEventTargets(IEventMessage message, object parentEntity, PropertyInfo field, IForwardingMode eventForwardingMode) { var fieldValue = (IEnumerable)field.GetValue(parentEntity); return(fieldValue == null ? Enumerable.Empty <object>() : eventForwardingMode.FilterCandidates(message, fieldValue.Cast <object>())); }
protected abstract IEnumerable <object> ResolveEventTargets(IEventMessage message, object parentEntity, PropertyInfo field, IForwardingMode eventForwardingMode);
protected override IEnumerable <object> ResolveEventTargets(IEventMessage message, object parentEntity, PropertyInfo field, IForwardingMode eventForwardingMode) { var fieldValue = field.GetValue(parentEntity); var valuesCollection = field.GetType().GetProperty(nameof(IDictionary.Values))?.GetValue(fieldValue) as IEnumerable; return(valuesCollection == null?Enumerable.Empty <object>() : eventForwardingMode.FilterCandidates(message, valuesCollection.Cast <object>())); }