sozsoft-platform/api/modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Application.Contracts/ISqlObjectManagerAppService.cs

59 lines
2.4 KiB
C#
Raw Normal View History

2026-02-24 20:44:16 +00:00
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace Sozsoft.SqlQueryManager.Application.Contracts;
/// <summary>
/// SQL Query Manager - executes T-SQL and provides database metadata.
/// Does not persist SQL objects to its own tables.
2026-02-24 20:44:16 +00:00
/// </summary>
public interface ISqlObjectManagerAppService : IApplicationService
{
/// <summary>
/// Returns tables (and optionally templates) available on the given data source.
2026-02-24 20:44:16 +00:00
/// </summary>
Task<SqlObjectExplorerDto> GetAllObjectsAsync(string dataSourceCode);
/// <summary>
/// Executes raw T-SQL against the specified data source.
/// </summary>
2026-02-24 20:44:16 +00:00
Task<SqlQueryExecutionResultDto> ExecuteQueryAsync(ExecuteSqlQueryDto input);
// Database Metadata Operations
Task<List<DatabaseColumnDto>> GetTableColumnsAsync(string dataSourceCode, string schemaName, string tableName);
Task<string> GetTableCreateScriptAsync(string dataSourceCode, string schemaName, string tableName);
2026-02-24 20:44:16 +00:00
/// <summary>
/// Gets the SQL definition/body of a native SQL Server object (Stored Procedure, View, or Function)
/// </summary>
Task<string> GetNativeObjectDefinitionAsync(string dataSourceCode, string schemaName, string objectName);
/// <summary>
/// Saves the T-SQL script to Seeds/SqlData/{fileName}.sql in the DbMigrator project.
/// Called automatically after a successful SqlTableDesigner deploy so the script can be re-seeded.
/// </summary>
Task SaveTableScriptAsync(SaveTableScriptDto input);
/// <summary>
/// Deletes matching SQL seed files from Seeds/SqlData when objects are dropped from the UI.
/// Non-existing files are ignored.
/// </summary>
Task DeleteSqlDataFilesAsync(DeleteSqlDataFilesDto input);
/// <summary>
/// Lists .sql files currently available under DbMigrator Seeds/SqlData.
/// </summary>
2026-05-27 12:36:46 +00:00
Task<List<SqlDataFileDto>> GetSqlDataFilesAsync(string dataDirectoryName = "SqlData", string relativePath = "");
/// <summary>
/// Reads a .sql seed file content from the selected data directory.
/// </summary>
Task<string> GetSqlDataFileContentAsync(string dataDirectoryName = "SqlData", string relativePath = "");
2026-05-27 12:36:46 +00:00
/// <summary>
/// Moves a SQL seed file between the selected data directory root and HostData.
/// </summary>
Task MoveSqlDataFileAsync(MoveSqlDataFileDto input);
2026-02-24 20:44:16 +00:00
}