PlanTempusApp/PlanTempus.Components/Organizations/Create/CreateOrganizationHandler.cs

44 lines
No EOL
1.3 KiB
C#

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<CreateOrganizationResult> 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<CreateOrganizationResult>(sql, new
{
ConnectionString = command.ConnectionString,
CreatedBy = command.CreatedById
});
db.Success();
return data.First();
}
catch (Exception ex)
{
db.Error(ex);
throw;
}
}
}
}