* Move core dependencies and MSBuild targets from Umbraco.Cms to Umbraco.Cms.Targets * Re-add appsettings.Tests.json * Include appsettings-schema.json * Use .NET 7.x in CodeQL build * Fix duplicate Directory.Build.props import * Decouple ImageSharp/ImageSharp.Web implementations * Further decouple SqlServer implementation * Add SupportedImageFileTypes to IImageDimensionExtractor * Update descriptions * Update project metadata * Re-enable package validation * Add embedded package icon * Move ContinuousIntegrationBuild to build script * Move shared properties to root Directory.Build.props * Fix GetInstallState throwing exception when default provider isn't configured * Remove redundant PackageRequireLicenseAcceptance and update version to 11.0.0-rc1 * Update build script * Remove LangVersion preview * Disable app-local ICU for MacOS integration test * Disable app-local ICU for all integration tests * Fix RuntimeState_Run test assertion * Update projects and build script to require Node.js 16.17 (latest LTS) * Remove app-local ICU from unit tests * Add missing project reference * Generate XML documentation files * Expose management API in Web.UI project * Update .NET 7 dependencies to RC1 * Update package-lock.json files * Downgrade Cypress version
36 lines
1.4 KiB
C#
36 lines
1.4 KiB
C#
using System.Data.Common;
|
|
using Microsoft.Extensions.Options;
|
|
using NPoco;
|
|
using Umbraco.Cms.Core.Configuration.Models;
|
|
using Umbraco.Cms.Infrastructure.Persistence.FaultHandling;
|
|
using Umbraco.Cms.Persistence.SqlServer.FaultHandling;
|
|
using Umbraco.Extensions;
|
|
|
|
namespace Umbraco.Cms.Persistence.SqlServer.Interceptors;
|
|
|
|
public class SqlServerAddRetryPolicyInterceptor : SqlServerConnectionInterceptor
|
|
{
|
|
private readonly IOptionsMonitor<ConnectionStrings> _connectionStrings;
|
|
|
|
public SqlServerAddRetryPolicyInterceptor(IOptionsMonitor<ConnectionStrings> connectionStrings)
|
|
=> _connectionStrings = connectionStrings;
|
|
|
|
public override DbConnection OnConnectionOpened(IDatabase database, DbConnection conn)
|
|
{
|
|
if (!_connectionStrings.CurrentValue.IsConnectionStringConfigured())
|
|
{
|
|
return conn;
|
|
}
|
|
|
|
RetryPolicy? connectionRetryPolicy = RetryPolicyFactory.GetDefaultSqlConnectionRetryPolicyByConnectionString(_connectionStrings.CurrentValue.ConnectionString);
|
|
RetryPolicy? commandRetryPolicy = RetryPolicyFactory.GetDefaultSqlCommandRetryPolicyByConnectionString(_connectionStrings.CurrentValue.ConnectionString);
|
|
|
|
if (connectionRetryPolicy == null && commandRetryPolicy == null)
|
|
{
|
|
return conn;
|
|
}
|
|
|
|
return new RetryDbConnection(conn, connectionRetryPolicy, commandRetryPolicy);
|
|
}
|
|
}
|