Skip to content

Commit ef00e3d

Browse files
committed
- GuardAgainstRecordNotFound / .net standard 2.0 fix
1 parent 10999c1 commit ef00e3d

File tree

7 files changed

+53
-15
lines changed

7 files changed

+53
-15
lines changed

Shuttle.Core.Data.Tests/Shuttle.Core.Data.Tests.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
</ItemGroup>
1818

1919
<ItemGroup>
20-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
21-
<PackageReference Include="Moq" Version="4.10.0" />
22-
<PackageReference Include="NUnit" Version="3.11.0" />
23-
<PackageReference Include="NUnit3TestAdapter" Version="3.11.0" />
20+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.1.1" />
21+
<PackageReference Include="Moq" Version="4.12.0" />
22+
<PackageReference Include="NUnit" Version="3.12.0" />
23+
<PackageReference Include="NUnit3TestAdapter" Version="3.13.0" />
2424
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.5.0" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />
25-
<PackageReference Include="System.Data.SqlClient" Version="4.5.1" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />
25+
<PackageReference Include="System.Data.SqlClient" Version="4.6.1" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />
2626
</ItemGroup>
2727

2828
<ItemGroup>

Shuttle.Core.Data/.build/package.nuspec

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,20 @@
1919
<dependency id="Shuttle.Core.Configuration" version="{Shuttle.Core.Configuration-version}" />
2020
<dependency id="Shuttle.Core.Container" version="{Shuttle.Core.Container-version}" />
2121
<dependency id="Shuttle.Core.Logging" version="{Shuttle.Core.Logging-version}" />
22-
<dependency id="Shuttle.Core.Threading" version="{Shuttle.Core.Threading-version}" />
2322
</group>
2423

2524
<group targetFramework="netstandard2.0">
2625
<dependency id="System.Configuration.ConfigurationManager" version="{System.Configuration.ConfigurationManager-version}" />
2726
<dependency id="Shuttle.Core.Configuration" version="{Shuttle.Core.Configuration-version}" />
2827
<dependency id="Shuttle.Core.Container" version="{Shuttle.Core.Container-version}" />
2928
<dependency id="Shuttle.Core.Logging" version="{Shuttle.Core.Logging-version}" />
30-
<dependency id="Shuttle.Core.Threading" version="{Shuttle.Core.Threading-version}" />
3129
</group>
3230

3331
<group targetFramework="netcoreapp2.1">
3432
<dependency id="System.Configuration.ConfigurationManager" version="{System.Configuration.ConfigurationManager-version}" />
3533
<dependency id="Shuttle.Core.Configuration" version="{Shuttle.Core.Configuration-version}" />
3634
<dependency id="Shuttle.Core.Container" version="{Shuttle.Core.Container-version}" />
3735
<dependency id="Shuttle.Core.Logging" version="{Shuttle.Core.Logging-version}" />
38-
<dependency id="Shuttle.Core.Threading" version="{Shuttle.Core.Threading-version}" />
3936
</group>
4037
</dependencies>
4138
</metadata>

Shuttle.Core.Data/DatabaseContextFactory.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,15 @@ public IDatabaseContextFactory ConfigureWith(IDbConnection dbConnection)
112112
return this;
113113
}
114114

115+
#if (!NETSTANDARD)
115116
public static IDatabaseContextFactory Default()
116117
{
117118
var dbConnectionFactory = new DbConnectionFactory();
119+
#else
120+
public static IDatabaseContextFactory Default(IDbProviderFactories dbProviderFactories)
121+
{
122+
var dbConnectionFactory = new DbConnectionFactory(dbProviderFactories);
123+
#endif
118124

119125
return new DatabaseContextFactory(new ConnectionConfigurationProvider(), dbConnectionFactory, new DbCommandFactory(), new ThreadStaticDatabaseContextCache());
120126
}

Shuttle.Core.Data/DbConnectionFactory.cs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,40 @@
11
using System.Data;
22
using System.Data.Common;
33
using Shuttle.Core.Logging;
4+
#if (NETSTANDARD)
5+
using Shuttle.Core.Contract;
6+
#endif
47

58
namespace Shuttle.Core.Data
69
{
710
public class DbConnectionFactory : IDbConnectionFactory
811
{
912
private readonly ILog _log;
1013

11-
public DbConnectionFactory()
14+
#if (!NETSTANDARD)
15+
public DbConnectionFactory()
1216
{
1317
_log = Log.For(this);
1418
}
19+
#else
20+
private readonly IDbProviderFactories _providerFactories;
21+
22+
public DbConnectionFactory(IDbProviderFactories providerFactories)
23+
{
24+
Guard.AgainstNull(providerFactories, nameof(providerFactories));
25+
26+
_providerFactories = providerFactories;
27+
_log = Log.For(this);
28+
}
29+
#endif
1530

1631
public IDbConnection CreateConnection(string providerName, string connectionString)
1732
{
18-
var dbProviderFactory = DbProviderFactories.GetFactory(providerName);
33+
#if (!NETSTANDARD)
34+
var dbProviderFactory = DbProviderFactories.GetFactory(providerName);
35+
#else
36+
var dbProviderFactory = _providerFactories.GetFactory(providerName);
37+
#endif
1938
var connection = dbProviderFactory.CreateConnection();
2039

2140
if (connection == null)

Shuttle.Core.Data/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
[assembly: AssemblyTitle(".NET Standard 2.0")]
1414
#endif
1515

16-
[assembly: AssemblyVersion("11.0.1.0")]
16+
[assembly: AssemblyVersion("11.0.2.0")]
1717
[assembly: AssemblyCopyright("Copyright © Eben Roux 2019")]
1818
[assembly: AssemblyProduct("Shuttle.Core.Data")]
1919
[assembly: AssemblyCompany("Shuttle")]
2020
[assembly: AssemblyConfiguration("Release")]
21-
[assembly: AssemblyInformationalVersion("11.0.1")]
21+
[assembly: AssemblyInformationalVersion("11.0.2")]
2222
[assembly: ComVisible(false)]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
namespace Shuttle.Core.Data
2+
{
3+
public static class RecordNotFoundExtensions
4+
{
5+
public static T GuardAgainstRecordNotFound<T>(this T entity, object id) where T : class
6+
{
7+
if (entity == null)
8+
{
9+
throw RecordNotFoundException.For<T>(id);
10+
}
11+
12+
return entity;
13+
}
14+
}
15+
}

Shuttle.Core.Data/Shuttle.Core.Data.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414

1515
<ItemGroup>
1616
<PackageReference Include="Shuttle.Core.Configuration" Version="10.0.3" />
17-
<PackageReference Include="Shuttle.Core.Container" Version="10.0.11" />
17+
<PackageReference Include="Shuttle.Core.Container" Version="11.0.0" />
1818
<PackageReference Include="Shuttle.Core.Logging" Version="10.0.3" />
1919
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.5.0" />
2020
</ItemGroup>
2121

2222
<ItemGroup>
23-
<Reference Include="System.Configuration" Condition="'$(TargetFramework)' != 'netstandard2.0' and '$(TargetFramework)' != 'netcoreapp2.0' and '$(TargetFramework)' != 'netcoreapp2.1'" />
23+
<Reference Include="System.Configuration" Condition="'$(TargetFramework)' == 'net461'" />
2424
<Reference Include="System.Transactions" Condition="'$(TargetFramework)' != 'netstandard2.0'" />
2525
</ItemGroup>
2626

@@ -40,6 +40,7 @@
4040
</ItemGroup>
4141

4242
<ItemGroup>
43-
<Compile Remove="IDbProviderFactories.cs" Condition="'$(TargetFramework)' != 'netstandard2.0' and '$(TargetFramework)' != 'netcoreapp2.0' and '$(TargetFramework)' != 'netcoreapp2.1'" />
43+
<Compile Remove="DefaultProviderFactories.cs" Condition="'$(TargetFramework)' != 'netstandard2.0'" />
44+
<Compile Remove="IDbProviderFactories.cs" Condition="'$(TargetFramework)' != 'netstandard2.0'" />
4445
</ItemGroup>
4546
</Project>

0 commit comments

Comments
 (0)