using EventBus; namespace ActiveMQCommunication { public class MQEventData : IEventData { EasyMQ.IBus _Bus; public MQEventData(EasyMQ.IBus bus,string eventName,string hash) { _Bus = bus; EventName = eventName; Hash = hash; } public string EventName { get; private set; } public string Hash { get; private set; } public void Clear() { } public T Publish(object sender, TData data, Properties? properties = null) { bool timeout = false; var val = _Bus.RPC.Request(data, ref timeout, properties == null ?null: properties.PropertiesToDic()); if (timeout || val==null) return default; return val; } public Task PublishAsync(object sender, TData data, Properties? properties = null) { return Task.Run(() => Publish(sender, data, properties)); } public List PublishList(object sender, TData data, Properties? properties = null) { bool timeout = false; var val = _Bus.RPC.Request>(data, ref timeout, properties == null ? null : properties.PropertiesToDic()); if (timeout || val == null) return new List(); return val; } public Task> PublishListAsync(object sender, TData data, Properties? properties = null) { return Task.Run(() => PublishList(sender, data, properties)); } public Guid Subscrip(Func, T> func, Properties? properties = null) { _Bus.RPC.Respond((data, pro) => { return func.Invoke(this, new EventArgs(data, Guid.Empty, this)); },properties==null?"":properties.PropertiesToselector()); return Guid.Empty; } public Guid SubscripList(Func, List> func, Properties? properties = null) { _Bus.RPC.Respond>((data, pro) => { return func.Invoke(this, new EventArgs(data, Guid.Empty, this)); }, properties == null ? "" : properties.PropertiesToselector()); return Guid.Empty; } public void UnSubscrip(Guid guid) { } } }