Taylohtio/IDP/webapi/webapi.Domain/SeedWork/IEventHandler.cs

59 lines
1.7 KiB
C#

using System.Threading.Tasks;
namespace webapi.Domain.SeedWork
{
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 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<TRequest>// : BaseRequest<TRequest>, IRequest<TResponse>
{
public TRequest Request { get; set; }
public BaseEvent() : base()
{
}
public BaseEvent(BaseEvent<TRequest> t) : base()
{
Request = t.Request;
//JuridicalPersonId = t.JuridicalPersonId;
//UserId = t.UserId;
//IsAdmin = t.IsAdmin;
}
}
//public interface IEventHandler<T>: IEventHandler where T: INotification
//{
// //Task Process();
//}
//public interface IEventHandler<TResult, T> where T : INotification where TResult : Entity //IRepository
//{
// Task<TResult> Process();
//}
}