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
11 changes: 11 additions & 0 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,17 @@ jobs:
-p ${{ secrets.GG_NUGET_SOURCE_USER_PASSWORD }}
--store-password-in-clear-text

# Api.Core.SqlDialect

- name: Restore Api.Core.SqlDialect
run: dotnet restore ./src/*/*/SqlDialect.csproj

- name: Build Api.Core.SqlDialect
run: dotnet build ./src/*/*/SqlDialect.csproj --no-restore -c Release

- name: Pack Api.Core.SqlDialect
run: dotnet pack ./src/*/*/SqlDialect.csproj --no-restore -o ~/nuget -c Release

# Api.Core.DbEntity

- name: Restore Api.Core.DbEntity
Expand Down
2 changes: 1 addition & 1 deletion src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<Nullable>enable</Nullable>
<InvariantGlobalization>true</InvariantGlobalization>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>$(NoWarn);IDE0130;CA1859</NoWarn>
<NoWarn>$(NoWarn);IDE0130;CA1859;xUnit1044</NoWarn>
</PropertyGroup>

</Project>
7 changes: 7 additions & 0 deletions src/Infra.SqlApi.sln
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Api", "api\Api\Api.csproj",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Provider.Abstractions", "api-abstractions\Provider.Abstractions\Provider.Abstractions.csproj", "{BA79F60A-3473-40A1-846D-707CB5AF96DA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlDialect", "api-core\SqlDialect\SqlDialect.csproj", "{50AA8E70-0E6F-484D-A09A-BF4AE280CEC6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -87,6 +89,10 @@ Global
{BA79F60A-3473-40A1-846D-707CB5AF96DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA79F60A-3473-40A1-846D-707CB5AF96DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA79F60A-3473-40A1-846D-707CB5AF96DA}.Release|Any CPU.Build.0 = Release|Any CPU
{50AA8E70-0E6F-484D-A09A-BF4AE280CEC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{50AA8E70-0E6F-484D-A09A-BF4AE280CEC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{50AA8E70-0E6F-484D-A09A-BF4AE280CEC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{50AA8E70-0E6F-484D-A09A-BF4AE280CEC6}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -104,6 +110,7 @@ Global
{A41B8ECF-8AE0-4C25-BF3A-30A63453C6F5} = {5E4F5B1C-D629-4D34-B81A-65F7951AE426}
{B0B8E4C3-C17A-4D6A-90D0-52657FDF0115} = {5E4F5B1C-D629-4D34-B81A-65F7951AE426}
{BA79F60A-3473-40A1-846D-707CB5AF96DA} = {6106F9AD-BAA7-4F24-AD96-17D27BFC486D}
{50AA8E70-0E6F-484D-A09A-BF4AE280CEC6} = {53EEC557-BEA5-4E2C-8F1A-F96404E2FDA1}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {EBFE5C85-563F-4917-95A1-4501407AD8D8}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<RootNamespace>GarageGroup.Infra</RootNamespace>
<AssemblyName>GarageGroup.Infra.Sql.Api.Abstractions.ExecuteNonQuery</AssemblyName>
<Version>2.3.0</Version>
<Version>3.0.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbQuery" Version="2.2.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbQuery" Version="3.0.0" />
<PackageReference Include="PrimeFuncPack.Core.Failure" Version="2.2.0" />
<PackageReference Include="PrimeFuncPack.Core.Result" Version="2.0.2" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<RootNamespace>GarageGroup.Infra</RootNamespace>
<AssemblyName>GarageGroup.Infra.Sql.Api.Abstractions.QueryEntity</AssemblyName>
<Version>2.3.0</Version>
<Version>3.0.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbEntity" Version="2.0.1" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbQuery" Version="2.2.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbEntity" Version="3.0.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbQuery" Version="3.0.0" />
<PackageReference Include="PrimeFuncPack.Core.Failure" Version="2.2.0" />
<PackageReference Include="PrimeFuncPack.Core.Result" Version="2.0.2" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<RootNamespace>GarageGroup.Infra</RootNamespace>
<AssemblyName>GarageGroup.Infra.Sql.Api.Abstractions.QueryEntitySet</AssemblyName>
<Version>2.3.0</Version>
<Version>3.0.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbEntity" Version="2.0.1" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbQuery" Version="2.2.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbEntity" Version="3.0.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbQuery" Version="3.0.0" />
<PackageReference Include="PrimeFuncPack.Core.Failure" Version="2.2.0" />
<PackageReference Include="PrimeFuncPack.Core.Result" Version="2.0.2" />
</ItemGroup>
Expand Down
8 changes: 4 additions & 4 deletions src/api-abstractions/Abstractions/Abstractions.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<RootNamespace>GarageGroup.Infra</RootNamespace>
<AssemblyName>GarageGroup.Infra.Sql.Api.Abstractions</AssemblyName>
<Version>2.4.0</Version>
<Version>3.0.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GarageGroup.Infra.HealthCheck.Api.Contract.Ping" Version="0.0.1" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Abstractions.ExecuteNonQuery" Version="2.3.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Abstractions.QueryEntity" Version="2.3.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Abstractions.QueryEntitySet" Version="2.3.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Abstractions.ExecuteNonQuery" Version="3.0.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Abstractions.QueryEntity" Version="3.0.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Abstractions.QueryEntitySet" Version="3.0.0" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace GarageGroup.Infra;

public interface IDbProvider<TDbConnection>
public interface IDbProvider<TDbConnection> : ISqlDialectProvider
where TDbConnection : DbConnection
{
TDbConnection GetDbConnection();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace GarageGroup.Infra;

public interface ISqlDialectProvider
{
SqlDialect Dialect { get; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<RootNamespace>GarageGroup.Infra</RootNamespace>
<AssemblyName>GarageGroup.Infra.Sql.Api.Provider.Abstractions</AssemblyName>
<Version>2.2.0</Version>
<Version>3.0.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbParameter" Version="2.0.1" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbParameter" Version="3.0.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.SqlDialect" Version="1.0.0" />
</ItemGroup>

</Project>
8 changes: 4 additions & 4 deletions src/api-core/DbEntity.Test/DbEntity.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="PrimeFuncPack.UnitTest.Data" Version="3.1.0" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.2">
<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
Expand Down
2 changes: 1 addition & 1 deletion src/api-core/DbEntity/DbEntity.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<RootNamespace>GarageGroup.Infra</RootNamespace>
<AssemblyName>GarageGroup.Infra.Sql.Api.Core.DbEntity</AssemblyName>
<Version>2.0.1</Version>
<Version>3.0.0</Version>
</PropertyGroup>

</Project>
2 changes: 1 addition & 1 deletion src/api-core/DbParameter/DbParameter.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<RootNamespace>GarageGroup.Infra</RootNamespace>
<AssemblyName>GarageGroup.Infra.Sql.Api.Core.DbParameter</AssemblyName>
<Version>2.0.1</Version>
<Version>3.0.0</Version>
</PropertyGroup>

</Project>
8 changes: 4 additions & 4 deletions src/api-core/DbQuery.Test/DbQuery.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.2">
<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
Expand Down
7 changes: 5 additions & 2 deletions src/api-core/DbQuery.Test/Test.DbQuery/Test.GetParameters.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,11 @@ public static TheoryData<DbQuery, FlatArray<DbParameter>> ParametersTestData
{
new(
query: "Some query",
new("SomeName1", "One"),
new("SomeName2", null)),
parameters:
[
new("SomeName1", "One"),
new("SomeName2", null)
]),
[
new("SomeName1", "One"),
new("SomeName2", null)
Expand Down
13 changes: 10 additions & 3 deletions src/api-core/DbQuery.Test/Test.DbQuery/Test.GetSqlQuery.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,30 @@ partial class DbQueryTest
{
[Theory]
[MemberData(nameof(SqlQueryTestData))]
public static void GetFilterSqlQuery_TypesAreInRange_ExpectCorrectSqlQuery(DbQuery source, string expected)
public static void GetFilterSqlQuery_TypesAreInRange_ExpectCorrectSqlQuery(
DbQuery source, SqlDialect dialect, string expected)
{
var actual = source.GetSqlQuery();
var actual = source.GetSqlQuery(dialect);
Assert.Equal(expected, actual);
}

public static TheoryData<DbQuery, string> SqlQueryTestData
public static TheoryData<DbQuery, SqlDialect, string> SqlQueryTestData
=>
new()
{
{
new(null!),
SqlDialect.TransactSql,
string.Empty
},
{
new(string.Empty),
SqlDialect.PostgreSql,
string.Empty
},
{
new("Some SQL Query"),
SqlDialect.TransactSql,
"Some SQL Query"
},
{
Expand All @@ -36,6 +40,7 @@ public static TheoryData<DbQuery, string> SqlQueryTestData
new("P1", 15),
new("P2", "Some text")
]),
SqlDialect.TransactSql,
string.Empty
},
{
Expand All @@ -45,6 +50,7 @@ public static TheoryData<DbQuery, string> SqlQueryTestData
[
new("SomeName", null)
]),
(SqlDialect)37,
string.Empty
},
{
Expand All @@ -55,6 +61,7 @@ public static TheoryData<DbQuery, string> SqlQueryTestData
new("SomeName1", "One"),
new("SomeName2", null)
]),
SqlDialect.PostgreSql,
"Some query"
}
};
Expand Down
2 changes: 1 addition & 1 deletion src/api-core/DbQuery/DbQuery.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public DbQuery(string query, params FlatArray<DbParameter> parameters)

public int? TimeoutInSeconds { get; init; }

public string GetSqlQuery()
public string GetSqlQuery(SqlDialect dialect)
=>
Query;

Expand Down
5 changes: 3 additions & 2 deletions src/api-core/DbQuery/DbQuery.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<RootNamespace>GarageGroup.Infra</RootNamespace>
<AssemblyName>GarageGroup.Infra.Sql.Api.Core.DbQuery</AssemblyName>
<Version>2.2.0</Version>
<Version>3.0.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbParameter" Version="2.0.1" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbParameter" Version="3.0.0" />
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.SqlDialect" Version="1.0.0" />
<PackageReference Include="PrimeFuncPack.Core.FlatArray" Version="1.5.0" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/api-core/DbQuery/IDbQuery.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace GarageGroup.Infra;

public interface IDbQuery
{
string GetSqlQuery();
string GetSqlQuery(SqlDialect dialect);

FlatArray<DbParameter> GetParameters();

Expand Down
8 changes: 8 additions & 0 deletions src/api-core/SqlDialect/SqlDialect.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace GarageGroup.Infra;

public enum SqlDialect
{
TransactSql,

PostgreSql
}
10 changes: 10 additions & 0 deletions src/api-core/SqlDialect/SqlDialect.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<RootNamespace>GarageGroup.Infra</RootNamespace>
<AssemblyName>GarageGroup.Infra.Sql.Api.Core.SqlDialect</AssemblyName>
<Version>1.0.0</Version>
</PropertyGroup>

</Project>
10 changes: 5 additions & 5 deletions src/api/Api.Test/Api.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="PrimeFuncPack.UnitTest.Data" Version="3.1.0" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PackageReference Include="PrimeFuncPack.UnitTest.Data" Version="3.1.1" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.2">
<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
Expand Down
11 changes: 6 additions & 5 deletions src/api/Api.Test/Internal.Stub/StubDbQuery.cs
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
using System;
using System.Collections.Generic;

namespace GarageGroup.Infra.Sql.Api.Provider.Api.Test;

internal sealed record class StubDbQuery : IDbQuery
{
private readonly string query;
private readonly IReadOnlyDictionary<SqlDialect, string> queries;

private readonly FlatArray<DbParameter> parameters;

internal StubDbQuery(string query, FlatArray<DbParameter> parameters)
internal StubDbQuery(IReadOnlyDictionary<SqlDialect, string> queries, FlatArray<DbParameter> parameters)
{
this.query = query;
this.queries = queries;
this.parameters = parameters;
}

public int? TimeoutInSeconds { get; init; }

public string GetSqlQuery()
public string GetSqlQuery(SqlDialect dialect)
=>
query;
queries[dialect];

public FlatArray<DbParameter> GetParameters()
=>
Expand Down
Loading