Skip to content

Commit 3defece

Browse files
committed
Merge branch 'master' into gh-1467
2 parents 7e3b9fc + 433921a commit 3defece

File tree

300 files changed

+3332
-2412
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

300 files changed

+3332
-2412
lines changed

Tools/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
<package id="NUnit.Extension.NUnitV2ResultWriter" version="3.6.0" targetFramework="net461" />
88
<package id="NUnit.Extension.TeamCityEventListener" version="1.0.2" targetFramework="net461" />
99
<package id="NUnit.Extension.VSProjectLoader" version="3.6.0" targetFramework="net461" />
10-
<package id="CSharpAsyncGenerator.CommandLine" version="0.6.2" targetFramework="net461" />
10+
<package id="CSharpAsyncGenerator.CommandLine" version="0.7.0" targetFramework="net461" />
1111
<package id="vswhere" version="2.1.4" targetFramework="net461" />
1212
</packages>

src/NHibernate.DomainModel/Async/CustomPersister.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public Task<int[]> FindDirtyAsync(object[] currentState, object[] previousState,
3737
{
3838
try
3939
{
40-
if (!EqualsHelper.Equals(currentState[0], previousState[0]))
40+
if (!Equals(currentState[0], previousState[0]))
4141
{
4242
return Task.FromResult<int[]>(new int[] { 0 });
4343
}
@@ -56,7 +56,7 @@ public Task<int[]> FindModifiedAsync(object[] old, object[] current, object enti
5656
{
5757
try
5858
{
59-
if (!EqualsHelper.Equals(old[0], current[0]))
59+
if (!Equals(old[0], current[0]))
6060
{
6161
return Task.FromResult<int[]>(new int[] { 0 });
6262
}

src/NHibernate.DomainModel/CustomPersister.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public IType GetPropertyType(string propertyName)
254254

255255
public int[] FindDirty(object[] currentState, object[] previousState, object entity, ISessionImplementor session)
256256
{
257-
if (!EqualsHelper.Equals(currentState[0], previousState[0]))
257+
if (!Equals(currentState[0], previousState[0]))
258258
{
259259
return new int[] { 0 };
260260
}
@@ -266,7 +266,7 @@ public int[] FindDirty(object[] currentState, object[] previousState, object ent
266266

267267
public int[] FindModified(object[] old, object[] current, object entity, ISessionImplementor session)
268268
{
269-
if (!EqualsHelper.Equals(old[0], current[0]))
269+
if (!Equals(old[0], current[0]))
270270
{
271271
return new int[] { 0 };
272272
}

src/NHibernate.Example.Web/Infrastructure/AppSessionFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class AppSessionFactory
1313

1414
public AppSessionFactory(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory)
1515
{
16-
NHibernate.LoggerProvider.SetLoggersFactory(new NHibernateToMicrosoftLoggerFactory(loggerFactory));
16+
NHibernate.NHibernateLogger.SetLoggersFactory(new NHibernateToMicrosoftLoggerFactory(loggerFactory));
1717

1818
var mapper = new ModelMapper();
1919
mapper.AddMapping<ItemMap>();
Lines changed: 18 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
using System;
2+
using System.Collections.Generic;
23
using Microsoft.Extensions.Logging;
4+
using Microsoft.Extensions.Logging.Internal;
35

46
namespace NHibernate.Example.Web.Infrastructure
57
{
6-
public class NHibernateToMicrosoftLogger : IInternalLogger
8+
public class NHibernateToMicrosoftLogger : INHibernateLogger
79
{
810
private readonly ILogger _msLogger;
911

@@ -12,122 +14,29 @@ public NHibernateToMicrosoftLogger(ILogger msLogger)
1214
_msLogger = msLogger ?? throw new ArgumentNullException(nameof(msLogger));
1315
}
1416

15-
public void Error(object message)
17+
private static readonly Dictionary<NHibernateLogLevel, LogLevel> MapLevels = new Dictionary<NHibernateLogLevel, LogLevel>
1618
{
17-
if (IsErrorEnabled)
18-
{
19-
_msLogger.LogError(message.ToString());
20-
}
21-
}
22-
23-
public void Error(object message, Exception exception)
24-
{
25-
if (IsErrorEnabled)
26-
{
27-
_msLogger.LogError(exception, message.ToString());
28-
}
29-
}
30-
31-
public void ErrorFormat(string format, params object[] args)
32-
{
33-
if (IsErrorEnabled)
34-
{
35-
_msLogger.LogError(format, args);
36-
}
37-
}
38-
39-
public void Fatal(object message)
40-
{
41-
if (IsFatalEnabled)
42-
{
43-
_msLogger.LogCritical(message.ToString());
44-
}
45-
}
46-
47-
public void Fatal(object message, Exception exception)
48-
{
49-
if (IsFatalEnabled)
50-
{
51-
_msLogger.LogCritical(exception, message.ToString());
52-
}
53-
}
54-
55-
public void Debug(object message)
56-
{
57-
if (IsDebugEnabled)
58-
{
59-
_msLogger.LogDebug(message.ToString());
60-
}
61-
}
19+
{ NHibernateLogLevel.Trace, LogLevel.Trace },
20+
{ NHibernateLogLevel.Debug, LogLevel.Debug },
21+
{ NHibernateLogLevel.Warn, LogLevel.Warning },
22+
{ NHibernateLogLevel.Error, LogLevel.Error },
23+
{ NHibernateLogLevel.Fatal, LogLevel.Critical },
24+
{ NHibernateLogLevel.None, LogLevel.None },
25+
};
6226

63-
public void Debug(object message, Exception exception)
27+
public void Log(NHibernateLogLevel logLevel, NHibernateLogValues state, Exception exception)
6428
{
65-
if (IsDebugEnabled)
66-
{
67-
_msLogger.LogDebug(exception, message.ToString());
68-
}
29+
_msLogger.Log(MapLevels[logLevel], 0, new FormattedLogValues(state.Format, state.Args), exception, MessageFormatter);
6930
}
7031

71-
public void DebugFormat(string format, params object[] args)
32+
public bool IsEnabled(NHibernateLogLevel logLevel)
7233
{
73-
if (IsDebugEnabled)
74-
{
75-
_msLogger.LogDebug(format, args);
76-
}
34+
return _msLogger.IsEnabled(MapLevels[logLevel]);
7735
}
7836

79-
public void Info(object message)
37+
private static string MessageFormatter(object state, Exception error)
8038
{
81-
if (IsInfoEnabled)
82-
{
83-
_msLogger.LogInformation(message.ToString());
84-
}
39+
return state.ToString();
8540
}
86-
87-
public void Info(object message, Exception exception)
88-
{
89-
if (IsInfoEnabled)
90-
{
91-
_msLogger.LogInformation(exception, message.ToString());
92-
}
93-
}
94-
95-
public void InfoFormat(string format, params object[] args)
96-
{
97-
if (IsInfoEnabled)
98-
{
99-
_msLogger.LogInformation(format, args);
100-
}
101-
}
102-
103-
public void Warn(object message)
104-
{
105-
if (IsWarnEnabled)
106-
{
107-
_msLogger.LogWarning(message.ToString());
108-
}
109-
}
110-
111-
public void Warn(object message, Exception exception)
112-
{
113-
if (IsWarnEnabled)
114-
{
115-
_msLogger.LogWarning(exception, message.ToString());
116-
}
117-
}
118-
119-
public void WarnFormat(string format, params object[] args)
120-
{
121-
if (IsWarnEnabled)
122-
{
123-
_msLogger.LogWarning(format, args);
124-
}
125-
}
126-
127-
public bool IsErrorEnabled => _msLogger.IsEnabled(LogLevel.Error);
128-
public bool IsFatalEnabled => _msLogger.IsEnabled(LogLevel.Critical);
129-
public bool IsDebugEnabled => _msLogger.IsEnabled(LogLevel.Debug);
130-
public bool IsInfoEnabled => _msLogger.IsEnabled(LogLevel.Information);
131-
public bool IsWarnEnabled => _msLogger.IsEnabled(LogLevel.Warning);
13241
}
133-
}
42+
}

src/NHibernate.Example.Web/Infrastructure/NHibernateToMicrosoftLoggerFactory.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace NHibernate.Example.Web.Infrastructure
44
{
5-
public class NHibernateToMicrosoftLoggerFactory : NHibernate.ILoggerFactory
5+
public class NHibernateToMicrosoftLoggerFactory : INHibernateLoggerFactory
66
{
77
private readonly Microsoft.Extensions.Logging.ILoggerFactory _loggerFactory;
88

@@ -11,16 +11,16 @@ public NHibernateToMicrosoftLoggerFactory(Microsoft.Extensions.Logging.ILoggerFa
1111
_loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
1212
}
1313

14-
public IInternalLogger LoggerFor(string keyName)
14+
public INHibernateLogger LoggerFor(string keyName)
1515
{
1616
var msLogger = _loggerFactory.CreateLogger(keyName);
1717
return new NHibernateToMicrosoftLogger(msLogger);
1818
}
1919

20-
public IInternalLogger LoggerFor(System.Type type)
20+
public INHibernateLogger LoggerFor(System.Type type)
2121
{
2222
return LoggerFor(
2323
Microsoft.Extensions.Logging.Abstractions.Internal.TypeNameHelper.GetTypeDisplayName(type));
2424
}
2525
}
26-
}
26+
}

src/NHibernate.Example.Web/NHibernate.Example.Web.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0" />
1515
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.0" PrivateAssets="All" />
1616
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.0" />
17+
<PackageReference Include="Serilog.AspNetCore" Version="2.0.0" />
18+
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.0" />
1719
</ItemGroup>
1820

1921
<ItemGroup>

src/NHibernate.Example.Web/Program.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,29 @@
77
using Microsoft.AspNetCore.Hosting;
88
using Microsoft.Extensions.Configuration;
99
using Microsoft.Extensions.Logging;
10+
using Serilog;
11+
using Serilog.Events;
1012

1113
namespace NHibernate.Example.Web
1214
{
1315
public class Program
1416
{
1517
public static void Main(string[] args)
1618
{
19+
Log.Logger = new LoggerConfiguration()
20+
.MinimumLevel.Debug()
21+
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
22+
.Enrich.FromLogContext()
23+
.WriteTo.Console()
24+
.CreateLogger();
25+
1726
BuildWebHost(args).Run();
1827
}
1928

2029
public static IWebHost BuildWebHost(string[] args) =>
2130
WebHost.CreateDefaultBuilder(args)
2231
.UseStartup<Startup>()
32+
.UseSerilog()
2333
.Build();
2434
}
2535
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Namespace Issues.GH1468
2+
Public Class Entity
3+
Public Overridable Property Id As Guid
4+
5+
Public Overridable Property Date1 As Date?
6+
End Class
7+
End Namespace
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
Imports NUnit.Framework
2+
3+
Namespace Issues.GH1468
4+
<TestFixture>
5+
Public Class Fixture
6+
Inherits IssueTestCase
7+
8+
Protected Overrides Sub OnSetUp()
9+
10+
Using session As ISession = OpenSession()
11+
12+
Using transaction As ITransaction = session.BeginTransaction()
13+
14+
Dim e1 = New Entity
15+
e1.Date1 = new Date(2017, 12, 3)
16+
session.Save(e1)
17+
18+
Dim e2 = New Entity
19+
e2.Date1 = new Date(2017, 12, 1)
20+
session.Save(e2)
21+
22+
Dim e3 = New Entity
23+
session.Save(e3)
24+
25+
session.Flush()
26+
transaction.Commit()
27+
28+
End Using
29+
30+
End Using
31+
End Sub
32+
33+
Protected Overrides Sub OnTearDown()
34+
35+
Using session As ISession = OpenSession()
36+
37+
Using transaction As ITransaction = session.BeginTransaction()
38+
39+
session.Delete("from System.Object")
40+
41+
session.Flush()
42+
transaction.Commit()
43+
44+
End Using
45+
46+
End Using
47+
End Sub
48+
49+
<Test>
50+
Public Sub ShouldBeAbleToCompareNullableDate()
51+
52+
Using session As ISession = OpenSession()
53+
Using session.BeginTransaction()
54+
55+
Dim d = New Date(2017, 12, 2)
56+
Dim result = (From e In session.Query (Of Entity)
57+
Where e.Date1 >= d
58+
Select e).ToList()
59+
60+
Assert.AreEqual(1, result.Count)
61+
End Using
62+
End Using
63+
End Sub
64+
65+
<Test>
66+
Public Sub ShouldBeAbleToCompareNullableDateGetValueOrDefault()
67+
68+
Using session As ISession = OpenSession()
69+
Using session.BeginTransaction()
70+
71+
Dim d = New Date(2017, 12, 2)
72+
Dim result = (From e In session.Query (Of Entity)
73+
Where (e.Date1 >= d).GetValueOrDefault()
74+
Select e).ToList()
75+
76+
Assert.AreEqual(1, result.Count)
77+
End Using
78+
End Using
79+
End Sub
80+
End Class
81+
End Namespace
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test.VisualBasic" namespace="NHibernate.Test.VisualBasic.Issues.GH1468">
3+
4+
<class name="Entity">
5+
<id name="Id">
6+
<generator class="guid.comb"/>
7+
</id>
8+
<property name="Date1" />
9+
</class>
10+
11+
</hibernate-mapping>

src/NHibernate.Test/Async/NHSpecificTest/CriteriaFromHql/Fixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ join fetch c.Children gc
4848
where p.Parent is null")
4949
.UniqueResultAsync<Person>());
5050

51-
string hqlQuery = spy.Appender.GetEvents()[0].MessageObject.ToString();
51+
string hqlQuery = spy.Appender.GetEvents()[0].RenderedMessage;
5252
Debug.WriteLine("HQL: " + hqlQuery);
5353
Assertions(result);
5454
}
@@ -62,7 +62,7 @@ join fetch c.Children gc
6262
.SetFetchMode("Children", FetchMode.Join)
6363
.SetFetchMode("Children.Children", FetchMode.Join)
6464
.UniqueResultAsync<Person>());
65-
string criteriaQuery = spy.Appender.GetEvents()[0].MessageObject.ToString();
65+
string criteriaQuery = spy.Appender.GetEvents()[0].RenderedMessage;
6666
Debug.WriteLine("Criteria: " + criteriaQuery);
6767
Assertions(result);
6868
}

0 commit comments

Comments
 (0)