using System; namespace Stary.Evo { public interface ICanSendEvent:IBelongToArchitecture { } public static class CanSendEventExtension { public static void SendEvent(this ICanSendEvent self,T key) where T : IConvertible { self.GetArchitecture().SendEvent(key); } public static void SendEvent(this ICanSendEvent self,T key,T1 value) where T : IConvertible { self.GetArchitecture().SendEvent(key,value); } public static void SendEvent(this ICanSendEvent self,T key,T1 value1,T2 value2) where T : IConvertible { self.GetArchitecture().SendEvent(key,value1,value2); } public static void SendEvent(this ICanSendEvent self,T key,T1 value1,T2 value2,T3 value3) where T : IConvertible { self.GetArchitecture().SendEvent(key,value1,value2, value3); } public static void SendEvent(this ICanSendEvent self,T key,object[] values) where T : IConvertible { self.GetArchitecture().SendEvent(key,values); } } }