docs: add XML documentation and ConfigManager implementation plans
Add comprehensive XML documentation (param/returns tags) across 132 source files to improve IntelliSense and API discoverability. Include ConfigManager design documents and implementation plans for phases 1-9.
This commit is contained in:
@@ -7,6 +7,9 @@ public record DevPipelinesRoot(
|
||||
DevPipelineSettings? Settings,
|
||||
Dictionary<string, DevPipelineConfig> Pipelines)
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the effective settings, using defaults if not specified.
|
||||
/// </summary>
|
||||
public DevPipelineSettings EffectiveSettings => Settings ?? new DevPipelineSettings();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,12 @@ public class DevEtlRegistry
|
||||
private readonly string _cacheDirectory;
|
||||
private readonly ILogger<DevEtlRegistry>? _logger;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the DevEtlRegistry.
|
||||
/// </summary>
|
||||
/// <param name="pipelineFactory">The factory for creating ETL pipelines.</param>
|
||||
/// <param name="cacheDirectory">The directory containing cached protobuf files.</param>
|
||||
/// <param name="logger">Optional logger for recording ETL operations.</param>
|
||||
public DevEtlRegistry(
|
||||
IDevEtlPipelineFactory pipelineFactory,
|
||||
string cacheDirectory,
|
||||
@@ -32,8 +38,16 @@ public class DevEtlRegistry
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of available tables that can be loaded.
|
||||
/// </summary>
|
||||
public IEnumerable<string> GetAvailableTables() => _pipelineFactory.GetAvailableTables();
|
||||
|
||||
/// <summary>
|
||||
/// Runs the ETL pipeline for a single table.
|
||||
/// </summary>
|
||||
/// <param name="tableName">The name of the table to load.</param>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
public async Task<PipelineResult> RunAsync(string tableName, CancellationToken cancellationToken = default)
|
||||
{
|
||||
_logger?.LogInformation("Running dev ETL for {TableName}", tableName);
|
||||
@@ -51,6 +65,10 @@ public class DevEtlRegistry
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Runs the ETL pipeline for all available tables sequentially.
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
public async Task<IReadOnlyList<PipelineResult>> RunAllAsync(CancellationToken cancellationToken = default)
|
||||
{
|
||||
var results = new List<PipelineResult>();
|
||||
|
||||
@@ -31,6 +31,9 @@ public class DevEtlPipelineFactory : IDevEtlPipelineFactory
|
||||
/// <summary>
|
||||
/// Creates a new development pipeline factory.
|
||||
/// </summary>
|
||||
/// <param name="connectionFactory">Factory for creating database connections.</param>
|
||||
/// <param name="options">Configuration options for the development pipeline.</param>
|
||||
/// <param name="logger">Logger for pipeline operations.</param>
|
||||
public DevEtlPipelineFactory(
|
||||
IDbConnectionFactory connectionFactory,
|
||||
IOptions<DevPipelineOptions> options,
|
||||
@@ -49,6 +52,9 @@ public class DevEtlPipelineFactory : IDevEtlPipelineFactory
|
||||
/// <summary>
|
||||
/// Creates a new development pipeline factory with pre-loaded config (for testing).
|
||||
/// </summary>
|
||||
/// <param name="connectionFactory">Factory for creating database connections.</param>
|
||||
/// <param name="config">Pre-loaded pipeline configuration.</param>
|
||||
/// <param name="logger">Logger for pipeline operations.</param>
|
||||
internal DevEtlPipelineFactory(
|
||||
IDbConnectionFactory connectionFactory,
|
||||
DevPipelinesRoot config,
|
||||
|
||||
@@ -26,8 +26,17 @@ public sealed class ProtobufZstdFileSource : IImportSource
|
||||
private BufferedStream? _bufferedStream;
|
||||
private IDataReader? _reader;
|
||||
|
||||
/// <summary>
|
||||
/// The name of this source, including the file name.
|
||||
/// </summary>
|
||||
public string SourceName => $"Protobuf:{Path.GetFileName(_filePath)}";
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ProtobufZstdFileSource"/> class.
|
||||
/// </summary>
|
||||
/// <param name="filePath">The path to the zstd-compressed protobuf file.</param>
|
||||
/// <exception cref="ArgumentException">Thrown when filePath is null or empty.</exception>
|
||||
/// <exception cref="FileNotFoundException">Thrown when the file does not exist.</exception>
|
||||
public ProtobufZstdFileSource(string filePath)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(filePath))
|
||||
@@ -39,6 +48,12 @@ public sealed class ProtobufZstdFileSource : IImportSource
|
||||
_filePath = filePath;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reads and decompresses the protobuf file, returning an IDataReader for deserialization.
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>An IDataReader for reading the decompressed protobuf data.</returns>
|
||||
/// <exception cref="InvalidOperationException">Thrown if ReadDataAsync has already been called.</exception>
|
||||
public async Task<IDataReader> ReadDataAsync(CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (_fileStream != null)
|
||||
@@ -85,6 +100,9 @@ public sealed class ProtobufZstdFileSource : IImportSource
|
||||
_fileStream = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Disposes of all unmanaged resources associated with this source.
|
||||
/// </summary>
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_reader != null)
|
||||
|
||||
Reference in New Issue
Block a user