using System.Text.Json; using System.Text.Json.Nodes; using Alchegos.Core.Services.RabbitMQ; namespace Alchegos.Gitea.Webhook.Handlers; public class ProjectPlanEventHandler : IGiteaEventHandler { public async Task HandleAsync(JsonNode payload, IRabbitPublisher publisher) { string projectName = payload["title"]?.ToString(); string action = payload["action"]?.ToString(); string plan = payload["content"]?.ToString(); Dictionary routingKeys = new Dictionary { {"create", "new_project_plan_created"}, {"update", "project_plan_updated"}, }; Dictionary message = new() { { "project_name", projectName }, { "project_plan", plan } }; await publisher.PublishAsync( exchange: "alchegos", routingKey: routingKeys.GetValueOrDefault(action, ""), message: JsonSerializer.Serialize(message) ); } }