using System.Threading.Tasks; namespace taloyhtio.idp.parser.common.domain { public interface IEventHandler { Task Process(BaseEvent request); } public interface IEventHandler : IEventHandler where T : INotification { } public abstract class BaseEventHandler// : IRequestHandler, TResponse> { public async Task Handle(BaseEvent handle) //, CancellationToken cancellationToken) { var request = handle.Request; await Handle(request); } public abstract Task Handle(TRequest request); } public class BaseEvent { public TRequest Request { get; set; } public BaseEvent() : base() { } public BaseEvent(BaseEvent t) : base() { Request = t.Request; } } }