Taylohtio/IDP/parsers/parser-management-fee/common/domain/IEventHandler.cs

39 lines
917 B
C#

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