using Insight.Database; using PlanTempus.Core.Sql; namespace PlanTempus.Components.Organizations.Create { public class CreateOrganizationHandler { private readonly IDatabaseOperations _databaseOperations; public CreateOrganizationHandler(IDatabaseOperations databaseOperations) { _databaseOperations = databaseOperations; } public async Task Handle(CreateOrganizationCommand command) { using var db = _databaseOperations.CreateScope(nameof(CreateOrganizationHandler)); try { var sql = @" INSERT INTO organizations (connection_string, created_by) VALUES (@ConnectionString, @CreatedBy) RETURNING id, created_at"; var data = await db.Connection.QuerySqlAsync(sql, new { ConnectionString = command.ConnectionString, CreatedBy = command.CreatedById }); db.Success(); return data.First(); } catch (Exception ex) { db.Error(ex); throw; } } } }