using Grpc.Core; using System; using System.Security.Cryptography; using System.Threading.Tasks; using Caats.Infrastructure.Authorization; using Caats.Infrastructure.Constants; using Caats.Infrastructure.Helper; using Caats.Proto; using Caats.Services.PersonAPI.Infrastructure; using Caats.Services.PersonAPI.Repositories; namespace Caats.Service.Infrastructure.Extensibility; [PluginServiceDto(typeof(PersonDto))] public class MyTestCaatsPersonPlugin : PluginBase { private readonly IPersonRepository _repository; public MyTestCaatsPersonPlugin(IPersonRepository repository) { _repository = repository; } public override PluginDto Ident() => new() { }; public async override Task<(RequestMsg, ResponseMsg?)> OnBeforeCreate(RequestMsg request, Lazy identity, ServerCallContext context) { var candidate = RequestMsgHelper.GetSingleOrDefault(request); candidate.GivenName = "Alle heißen Franz"; var modified = RequestMsgHelper.CreateWithSingle(candidate); modified.PartitionIndex = request.PartitionIndex; return (modified, null); } }