Skip to content

Commit 2491d6d

Browse files
committed
Feat: Import of old code
1 parent 30bce90 commit 2491d6d

20 files changed

+1882
-96
lines changed

.github/workflows/release.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ jobs:
1818
dotnet-version: '9.x'
1919

2020
- name: Restore dependencies
21-
run: dotnet restore TEMPLATE.sln
21+
run: dotnet restore CodeOfChaos.Parsers.sln
2222

2323
- name: Build
24-
run: dotnet build TEMPLATE.sln --configuration Release --no-restore
24+
run: dotnet build CodeOfChaos.Parsers.sln --configuration Release --no-restore
2525

2626
# Ensure that the tests must pass
2727
# The job will fail automatically if any test fails because `dotnet test` exits with a non-zero code
2828
- name: Run tests - Extensions
2929
run: dotnet run -c Release --no-restore --no-build
30-
working-directory: "tests/TEMPLATE"
30+
working-directory: "tests/CodeOfChaos.Parsers.Csv"
3131

3232
- name: Publish to NuGet
3333
env:
3434
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
3535
run: |
36-
dotnet nuget push src/TEMPLATE/*.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json --skip-duplicate
36+
dotnet nuget push src/CodeOfChaos.Parsers/*.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json --skip-duplicate
+39-39
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
1-
2-
Microsoft Visual Studio Solution File, Format Version 12.00
3-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TEMPLATE", "src\TEMPLATE\TEMPLATE.csproj", "{64B26DED-68C3-47FF-B409-1C8FAD4F9176}"
4-
EndProject
5-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.TEMPLATE", "tests\Tests.TEMPLATE\Tests.TEMPLATE.csproj", "{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}"
6-
EndProject
7-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{197E72AD-DEAB-4350-AFC3-A3BB38720BF5}"
8-
EndProject
9-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8DD280D4-1E14-4D5E-AFE6-58DD8F079DCC}"
10-
EndProject
11-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{AF1A203C-6EF1-440E-BB3C-55B1DBFE9C19}"
12-
EndProject
13-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools.TEMPLATE", "src\Tools.TEMPLATE\Tools.TEMPLATE.csproj", "{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}"
14-
EndProject
15-
Global
16-
GlobalSection(SolutionConfigurationPlatforms) = preSolution
17-
Debug|Any CPU = Debug|Any CPU
18-
Release|Any CPU = Release|Any CPU
19-
EndGlobalSection
20-
GlobalSection(ProjectConfigurationPlatforms) = postSolution
21-
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22-
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Debug|Any CPU.Build.0 = Debug|Any CPU
23-
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Release|Any CPU.ActiveCfg = Release|Any CPU
24-
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Release|Any CPU.Build.0 = Release|Any CPU
25-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
26-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
27-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
28-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Release|Any CPU.Build.0 = Release|Any CPU
29-
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
30-
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
31-
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
32-
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Release|Any CPU.Build.0 = Release|Any CPU
33-
EndGlobalSection
34-
GlobalSection(NestedProjects) = preSolution
35-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B} = {8DD280D4-1E14-4D5E-AFE6-58DD8F079DCC}
36-
{64B26DED-68C3-47FF-B409-1C8FAD4F9176} = {197E72AD-DEAB-4350-AFC3-A3BB38720BF5}
37-
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3} = {AF1A203C-6EF1-440E-BB3C-55B1DBFE9C19}
38-
EndGlobalSection
39-
EndGlobal
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeOfChaos.Parsers.Csv", "src\CodeOfChaos.Parsers.Csv\CodeOfChaos.Parsers.Csv.csproj", "{64B26DED-68C3-47FF-B409-1C8FAD4F9176}"
4+
EndProject
5+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.CodeOfChaos.Parsers.Csv", "tests\Tests.CodeOfChaos.Parsers.Csv\Tests.CodeOfChaos.Parsers.Csv.csproj", "{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}"
6+
EndProject
7+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{197E72AD-DEAB-4350-AFC3-A3BB38720BF5}"
8+
EndProject
9+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8DD280D4-1E14-4D5E-AFE6-58DD8F079DCC}"
10+
EndProject
11+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{AF1A203C-6EF1-440E-BB3C-55B1DBFE9C19}"
12+
EndProject
13+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools.CodeOfChaos.Parsers", "src\Tools.CodeOfChaos.Parsers\Tools.CodeOfChaos.Parsers.csproj", "{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}"
14+
EndProject
15+
Global
16+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
17+
Debug|Any CPU = Debug|Any CPU
18+
Release|Any CPU = Release|Any CPU
19+
EndGlobalSection
20+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
21+
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22+
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Debug|Any CPU.Build.0 = Debug|Any CPU
23+
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Release|Any CPU.ActiveCfg = Release|Any CPU
24+
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Release|Any CPU.Build.0 = Release|Any CPU
25+
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
26+
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
27+
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
28+
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Release|Any CPU.Build.0 = Release|Any CPU
29+
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
30+
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
31+
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
32+
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Release|Any CPU.Build.0 = Release|Any CPU
33+
EndGlobalSection
34+
GlobalSection(NestedProjects) = preSolution
35+
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B} = {8DD280D4-1E14-4D5E-AFE6-58DD8F079DCC}
36+
{64B26DED-68C3-47FF-B409-1C8FAD4F9176} = {197E72AD-DEAB-4350-AFC3-A3BB38720BF5}
37+
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3} = {AF1A203C-6EF1-440E-BB3C-55B1DBFE9C19}
38+
EndGlobalSection
39+
EndGlobal
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// ---------------------------------------------------------------------------------------------------------------------
2+
// Imports
3+
// ---------------------------------------------------------------------------------------------------------------------
4+
namespace CodeOfChaos.Parsers.Csv.Attributes;
5+
// ---------------------------------------------------------------------------------------------------------------------
6+
// Code
7+
// ---------------------------------------------------------------------------------------------------------------------
8+
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
9+
public class CsvColumnAttribute : Attribute {
10+
11+
// -----------------------------------------------------------------------------------------------------------------
12+
// Constructors
13+
// -----------------------------------------------------------------------------------------------------------------
14+
public CsvColumnAttribute(string name) {
15+
if (name == string.Empty) throw new ArgumentException("Name cannot be empty", nameof(name));
16+
17+
Name = name;
18+
NameLowerInvariant = name.ToLowerInvariant();
19+
}
20+
public string Name { get; }
21+
public string NameLowerInvariant { get; }
22+
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
2-
3-
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
5-
<LangVersion>latest</LangVersion>
6-
<ImplicitUsings>enable</ImplicitUsings>
7-
<Nullable>enable</Nullable>
8-
</PropertyGroup>
9-
10-
</Project>
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net9.0</TargetFramework>
5+
<LangVersion>latest</LangVersion>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<PackageReference Include="CodeOfChaos.Extensions" Version="0.20.0-preview.1" />
12+
</ItemGroup>
13+
14+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// ---------------------------------------------------------------------------------------------------------------------
2+
// Imports
3+
// ---------------------------------------------------------------------------------------------------------------------
4+
namespace CodeOfChaos.Parsers.Csv.Contracts;
5+
// ---------------------------------------------------------------------------------------------------------------------
6+
// Code
7+
// ---------------------------------------------------------------------------------------------------------------------
8+
public interface ICsvReader<T> {
9+
public IEnumerable<T> FromCsvFile(string filePath);
10+
public IEnumerable<T> FromCsvString(string data);
11+
public IAsyncEnumerable<T> FromCsvFileAsync(string filePath, CancellationToken ct = default);
12+
public IAsyncEnumerable<T> FromCsvStringAsync(string data, CancellationToken ct = default);
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// ---------------------------------------------------------------------------------------------------------------------
2+
// Imports
3+
// ---------------------------------------------------------------------------------------------------------------------
4+
namespace CodeOfChaos.Parsers.Csv.Contracts;
5+
// ---------------------------------------------------------------------------------------------------------------------
6+
// Code
7+
// ---------------------------------------------------------------------------------------------------------------------
8+
public interface ICsvWriter<T> {
9+
public string WriteToString(IEnumerable<T> data);
10+
public Task<string> WriteToStringAsync(IEnumerable<T> data);
11+
public void WriteToFile(string filePath, IEnumerable<T> data);
12+
public Task WriteToFileAsync(string filePath, IEnumerable<T> data);
13+
}

0 commit comments

Comments
 (0)