Skip to content

Commit 4a725ea

Browse files
committed
Update Configuration Implementations for UseSqlBulkCopy
1 parent 8e3a225 commit 4a725ea

File tree

5 files changed

+39
-0
lines changed

5 files changed

+39
-0
lines changed

src/Serilog.Sinks.MSSqlServer/Configuration/Implementations/Microsoft.Extensions.Configuration/MicrosoftExtensionsSinkOptionsProvider.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ private static void ReadBatchSettings(IConfigurationSection config, MSSqlServerS
3333
SetProperty.IfNotNull<int>(config["batchPostingLimit"], val => sinkOptions.BatchPostingLimit = val);
3434
SetProperty.IfNotNull<string>(config["batchPeriod"], val => sinkOptions.BatchPeriod = TimeSpan.Parse(val, CultureInfo.InvariantCulture));
3535
SetProperty.IfNotNull<bool>(config["eagerlyEmitFirstEvent"], val => sinkOptions.EagerlyEmitFirstEvent = val);
36+
SetProperty.IfNotNull<bool>(config["useSqlBulkCopy"], val => sinkOptions.UseSqlBulkCopy = val);
3637
}
3738
}
3839
}

src/Serilog.Sinks.MSSqlServer/Configuration/Implementations/System.Configuration/MSSqlServerConfigurationSection.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,12 @@ public ValueConfigElement EagerlyEmitFirstEvent
198198
{
199199
get => (ValueConfigElement)base[nameof(EagerlyEmitFirstEvent)];
200200
}
201+
202+
[ConfigurationProperty(nameof(UseSqlBulkCopy))]
203+
public ValueConfigElement UseSqlBulkCopy
204+
{
205+
get => (ValueConfigElement)base[nameof(UseSqlBulkCopy)];
206+
}
201207
}
202208
}
203209

src/Serilog.Sinks.MSSqlServer/Configuration/Implementations/System.Configuration/SystemConfigurationSinkOptionsProvider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ private static void ReadBatchSettings(MSSqlServerConfigurationSection config, MS
3232
SetProperty.IfProvided<string>(config.BatchPeriod, nameof(config.BatchPeriod.Value), value => sinkOptions.BatchPeriod = TimeSpan.Parse(value, CultureInfo.InvariantCulture));
3333
SetProperty.IfProvided<bool>(config.EagerlyEmitFirstEvent, nameof(config.EagerlyEmitFirstEvent.Value),
3434
value => sinkOptions.EagerlyEmitFirstEvent = value);
35+
SetProperty.IfProvided<bool>(config.UseSqlBulkCopy, nameof(config.UseSqlBulkCopy.Value),
36+
value => sinkOptions.UseSqlBulkCopy = value);
3537
}
3638
}
3739
}

test/Serilog.Sinks.MSSqlServer.Tests/Configuration/Implementations/Microsoft.Extensions.Configuration/MicrosoftExtensionsSinkOptionsProviderTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,5 +149,19 @@ public void ConfigureSinkOptionsSetsEagerlyEmitFirstEvent()
149149
// Assert
150150
Assert.True(result.EagerlyEmitFirstEvent);
151151
}
152+
153+
[Fact]
154+
public void ConfigureSinkOptionsSetsUseSqlBulkCopy()
155+
{
156+
// Arrange
157+
_configurationSectionMock.Setup(s => s["useSqlBulkCopy"]).Returns("false");
158+
var sut = new MicrosoftExtensionsSinkOptionsProvider();
159+
160+
// Act
161+
var result = sut.ConfigureSinkOptions(new MSSqlServerSinkOptions(), _configurationSectionMock.Object);
162+
163+
// Assert
164+
Assert.False(result.UseSqlBulkCopy);
165+
}
152166
}
153167
}

test/Serilog.Sinks.MSSqlServer.Tests/Configuration/Implementations/System.Configuration/SystemConfigurationSinkOptionsProviderTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,21 @@ public void ConfigureSinkOptionsReadsEnlistInTransaction()
6767
// Assert
6868
Assert.True(sinkOptions.EnlistInTransaction);
6969
}
70+
71+
[Fact]
72+
public void ConfigureSinkOptionsReadsUseSqlBulkCopy()
73+
{
74+
// Arrange
75+
var configSection = new MSSqlServerConfigurationSection();
76+
configSection.UseSqlBulkCopy.Value = "false";
77+
var sinkOptions = new MSSqlServerSinkOptions { UseSqlBulkCopy = true };
78+
var sut = new SystemConfigurationSinkOptionsProvider();
79+
80+
// Act
81+
sut.ConfigureSinkOptions(configSection, sinkOptions);
82+
83+
// Assert
84+
Assert.False(sinkOptions.UseSqlBulkCopy);
85+
}
7086
}
7187
}

0 commit comments

Comments
 (0)