using System.Threading.Tasks; namespace webapi.Domain.SeedWork { 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 packet = new BaseRequest //{ // IsAdmin = handle.IsAdmin, // //Localization = handle.Localization // JuridicalPersonId = handle.JuridicalPersonId, // UserId = handle.UserId //}; var request = handle.Request; await Handle(request); //, cancellationToken); } public abstract Task Handle(TRequest request); //, CancellationToken cancellationToken); } public class BaseEvent// : BaseRequest, IRequest { public TRequest Request { get; set; } public BaseEvent() : base() { } public BaseEvent(BaseEvent t) : base() { Request = t.Request; //JuridicalPersonId = t.JuridicalPersonId; //UserId = t.UserId; //IsAdmin = t.IsAdmin; } } //public interface IEventHandler: IEventHandler where T: INotification //{ // //Task Process(); //} //public interface IEventHandler where T : INotification where TResult : Entity //IRepository //{ // Task Process(); //} }