Example #1
0
        private string FindInterfaceGenericTypeArguments(IHasMediatorKey key, int compareTo = 1, Func <Type[], string> converter = null)
        {
            var interfaces   = key.GetType().GetInterfaces();
            var allAvailable = interfaces.Select(x => x.GetGenericArguments());

            var types = allAvailable.FirstOrDefault(x =>
            {
                return(x.Length == compareTo);
            });

            if (converter == null)
            {
                converter = t => t.First().Name;
            }

            return(types == null ? null : converter(types));
        }
Example #2
0
        private string FromTypedResultOutlet(IHasMediatorKey key)
        {
            Func <Type[], string> converter = (types) => $"{types.First().Name}-{types.Last().Name}";

            return(FindInterfaceGenericTypeArguments(key, compareTo: 2, converter: converter));
        }
Example #3
0
 private string FromTypedOutlet(IHasMediatorKey key)
 {
     return(FindInterfaceGenericTypeArguments(key));
 }
Example #4
0
        private string FromOutlet(IHasMediatorKey key)
        {
            var o = key as IOutlet;

            return(o == null ? null : o.OutletKey);
        }