using ECPDAL.Collaboration.DTOs; using ECPDAL.Collaboration.Interfaces; using ECPDAL.Collaboration.QueryBuilders; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace ECPDAL.Collaboration.Implementations; public class CollaborationSpaceIntegrationDAL(IQueryExecutor _qe) : ICollaborationSpaceIntegrationDAL { public async Task> GetIntegrationsForSpaceAsync( int collaborationSpaceId, LoginDTO login, CancellationToken ct) { var rows = await _qe.QueryAsync( login, CollaborationSpaceIntegrationQB.GET_INTEGRATIONS_FOR_SPACE, new { CollaborationSpaceId = collaborationSpaceId, login.DatabaseName }, cancellationToken: ct).ConfigureAwait(false); return rows.ToList(); } public async Task GetIntegrationAsync( int collaborationSpaceId, string provider, LoginDTO login, CancellationToken ct) { var rows = await _qe.QueryAsync( login, CollaborationSpaceIntegrationQB.GET_INTEGRATION, new { CollaborationSpaceId = collaborationSpaceId, Provider = provider, login.DatabaseName }, cancellationToken: ct).ConfigureAwait(false); return rows.FirstOrDefault(); } public async Task InsertIntegrationAsync(CollaborationSpaceIntegrationDTO dto, LoginDTO login, CancellationToken ct) { await _qe.ExecuteAsync( login, CollaborationSpaceIntegrationQB.INSERT_INTEGRATION, dto, cancellationToken: ct).ConfigureAwait(false); } public async Task UpdateIntegrationAsync(CollaborationSpaceIntegrationDTO dto, LoginDTO login, CancellationToken ct) { await _qe.ExecuteAsync( login, CollaborationSpaceIntegrationQB.UPDATE_INTEGRATION, dto, cancellationToken: ct).ConfigureAwait(false); } }