Generally speaking, if a Task based method does not return anything you can return a completed Task
public Task Handle(CreatePersonCommand message, CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
Now, in MediatR terms a value needs te be returned. In case of no value you can use Unit:
public Task<Unit> Handle(CreatePersonCommand message, CancellationToken cancellationToken)
{
return Task.FromResult(Unit.Value);
}
or, in case of some async code somewhere
public async Task<Unit> Handle(CreatePersonCommand message, CancellationToken cancellationToken)
{
await Task.Delay(100);
return Unit.Value;
}
The class signature should then be:
public class CreatePersonHandler : IRequestHandler<CreatePersonCommand>
which is short for
public class CreatePersonHandler : IRequestHandler<CreatePersonCommand, Unit>