Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added ETL-Abstractions.ico
Binary file not shown.
Binary file added ETL-Abstractions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed ETL.png
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>1.0.0</Version>
<Copyright>Copyright {copyright year} {author}</Copyright>

</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>1.0.0</Version>
<Copyright>Copyright {copyright year} {author}</Copyright>

</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>1.0.0</Version>
<Copyright>Copyright {copyright year} {author}</Copyright>

</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>1.0.0</Version>
<Copyright>Copyright {copyright year} {author}</Copyright>

</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>1.0.0</Version>
<Copyright>Copyright {copyright year} {author}</Copyright>

</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>1.0.0</Version>
<Copyright>Copyright {copyright year} {author}</Copyright>

</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>1.0.0</Version>
<Copyright>Copyright {copyright year} {author}</Copyright>

</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>1.0.0</Version>
<Copyright>Copyright {copyright year} {author}</Copyright>

</PropertyGroup>

Expand Down
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 1 addition & 2 deletions src/Wolfgang.Etl.Abstractions/LoaderBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,7 @@ protected set
}
}





/// <summary>
/// The maximum number of items to load. Once the loader has reached this limit,
Expand Down
36 changes: 36 additions & 0 deletions src/Wolfgang.Etl.Abstractions/Report.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using System;

namespace Wolfgang.Etl.Abstractions;

/// <summary>
/// Provides a report of the current count in an ETL process.
/// </summary>
/// <remarks>
/// This class can be used as a base class for other progress reports and expanded
/// with additional information such as total count, count remaining, etc.
/// </remarks>
public record Report
{
/// <summary>
/// Constructs a new instance of the <see cref="Report"/> class with the specified current count.
/// </summary>
/// <param name="currentCount"></param>
Copy link

Copilot AI Aug 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The param documentation for 'currentCount' is missing a description. It should explain what the current count represents.

Suggested change
/// <param name="currentCount"></param>
/// <param name="currentCount">The number of items that have been processed so far in the ETL process.</param>

Copilot uses AI. Check for mistakes.
/// <exception cref="ArgumentOutOfRangeException"></exception>
public Report(int currentCount)
{
if (currentCount < 0)
{
throw new ArgumentOutOfRangeException(nameof(currentCount), "Current count cannot be less than 0.");
}

CurrentCount = currentCount;
}



/// <summary>
/// The number of items that have been processed so far in the ETL process.
/// </summary>
public int CurrentCount { get; }

}
16 changes: 16 additions & 0 deletions src/Wolfgang.Etl.Abstractions/TransformerBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,16 @@ CancellationToken token



/// <summary>
/// The worker method that performs the actual transformation.
/// </summary>
/// <param name="items">
/// IAsyncEnumerable&lt;TSource&gt; - A list of 0 or more items to be transformed
/// </param>
/// <param name="token">
/// A CancellationToken to observe while waiting for the task to complete.
/// </param>
/// <returns></returns>
Copy link

Copilot AI Aug 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The returns tag is empty and should describe what the method returns. It should specify that it returns an IAsyncEnumerable containing the transformed items.

Suggested change
/// <returns></returns>
/// <returns>
/// An <see cref="IAsyncEnumerable{TDestination}"/> containing the transformed items.
/// </returns>

Copilot uses AI. Check for mistakes.
protected abstract IAsyncEnumerable<TDestination> TransformWorkerAsync
(
IAsyncEnumerable<TSource>items,
Expand All @@ -281,6 +291,12 @@ CancellationToken token



/// <summary>
/// Creates a progress report object of type TProgress.
/// </summary>
/// <returns>
/// TProgress - A new instance of the progress report object.
/// </returns>
protected abstract TProgress CreateProgressReport();


Expand Down
24 changes: 16 additions & 8 deletions src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,36 @@

<PropertyGroup>
<TargetFrameworks>
net462;net472;net48;net481;
netstandard2.0;netstandard2.1;
net8.0;net9.0
net462;net472;net48;net481;
netstandard2.0;netstandard2.1;
net8.0;net9.0
</TargetFrameworks>
<LangVersion>latest</LangVersion>
<Version>0.5.0</Version>
<Version>0.6.0</Version>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<Title>$(AssemblyName)</Title>
<Authors>Chris Wolfgang</Authors>
<Description>Contains interfaces and base classes used to build ETL applications</Description>
<Copyright>2025</Copyright>
<PackageProjectUrl>https://github.com/Chris-Wolfgang/ETL-Abstractions</PackageProjectUrl>
<Copyright>Copyright {copyright year} {author}</Copyright>
Copy link

Copilot AI Aug 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The copyright field contains placeholder text '{copyright year} {author}' instead of actual values. This should be replaced with the actual copyright year and author name.

Suggested change
<Copyright>Copyright {copyright year} {author}</Copyright>
<Copyright>Copyright 2024 Chris Wolfgang</Copyright>

Copilot uses AI. Check for mistakes.
<PackageProjectUrl>https://github.com/Chris-Wolfgang/ETL-Abstractions</PackageProjectUrl>
<PackageReadmeFile>README.md</PackageReadmeFile>
<RepositoryUrl>https://github.com/Chris-Wolfgang/ETL-Abstractions</RepositoryUrl>
<AssemblyVersion>1.0.0</AssemblyVersion>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
<PackageIcon>ETL.png</PackageIcon>
<PackageIcon>ETL-Abstractions.png</PackageIcon>
<ApplicationIcon>ETL-Abstractions.ico</ApplicationIcon>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<SignAssembly>False</SignAssembly>
<PackageTags>ETL;Extract-Transform-Load;</PackageTags>
</PropertyGroup>

<ItemGroup>
<None Include="..\..\ETL.png">
<Content Include="ETL-Abstractions.ico" />
</ItemGroup>

<ItemGroup>
<None Include="..\..\ETL-Abstractions.png">
<Pack>True</Pack>
<PackagePath>\</PackagePath>
</None>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@

<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<Copyright>Copyright {copyright year} {author}</Copyright>
Copy link

Copilot AI Aug 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The copyright field contains placeholder text '{copyright year} {author}' instead of actual values. This should be replaced with the actual copyright year and author name.

Suggested change
<Copyright>Copyright {copyright year} {author}</Copyright>
<Copyright>Copyright 2024 Wolfgang</Copyright>

Copilot uses AI. Check for mistakes.

</PropertyGroup>

<ItemGroup>
Expand Down