Generic Handler #1098
JavadSayedi
started this conversation in
General
Generic Handler
#1098
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hi, I have written this code for haveing genetic get for all entities but MediateR dont call my Handler.
using Cando.Domain.Entities;
using Cando.Domain.Repository;
namespace Cando.Application.Features.GenericEntity.Queries;
public record GetGenericEntityCommand<TDto, TEntity, TKey>
: IRequest
where TDto : class, IDto, new()
where TEntity : class, IEntity, new()
where TKey : struct
{
public required TKey Id { get; set; }
}
public class GetGenericEntityCommandValidator<TDto, TEntity, TKey>
: AbstractValidator<GetGenericEntityCommand<TDto, TEntity, TKey>>
where TDto : class, IDto, new()
where TEntity : class, IEntity, new()
where TKey : struct
{
public GetGenericEntityCommandValidator(IMultiLingual multiLingual)
{
RuleFor(x => x.Id).NotEmpty().WithMessage(multiLingual.GetMessage("Required"));
}
}
public interface IGetGenericEntityCommandHandler<TDto, TEntity, TKey>
: IGenericEntityCommandHandler<GetGenericEntityCommand<TDto, TEntity, TKey>, TDto>
where TDto : class, IDto, new()
where TEntity : class, IEntity, new()
where TKey : struct
{
}
public class GetGenericEntityCommandHandler<TDto, TEntity, TKey>(IQueryRepository<TEntity, TKey> repository)
: IGetGenericEntityCommandHandler<TDto, TEntity, TKey>,
IRequestHandler<GetGenericEntityCommand<TDto, TEntity, TKey>, TDto>
where TDto : class, IDto, new()
where TEntity : class, IEntity, new()
where TKey : struct
{
public async Task Handle(GetGenericEntityCommand<TDto, TEntity, TKey> request, CancellationToken cancellationToken)
{
TEntity? entity = await repository.GetByIdAsync(request.Id, cancellationToken);
return entity.Adapt();
}
}
Beta Was this translation helpful? Give feedback.
All reactions