Files
Umbraco-CMS/src/Umbraco.Web/UmbracoDbProviderFactoryCreator.cs
Bjarke Berg d81874aee3 Merge remote-tracking branch 'origin/netcore/dev' into netcore/feature/merge-v8-05032021
# Conflicts:
#	src/Umbraco.Infrastructure/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs
#	src/Umbraco.Infrastructure/Search/ExamineComponent.cs
2021-03-09 09:31:55 +01:00

62 lines
2.1 KiB
C#

using System;
using System.Data.Common;
using System.Data.SqlServerCe;
using Microsoft.Extensions.Options;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Infrastructure.Migrations.Install;
using Umbraco.Cms.Infrastructure.Persistence;
using Umbraco.Cms.Infrastructure.Persistence.SqlSyntax;
using Umbraco.Cms.Persistence.SqlCe;
using Constants = Umbraco.Cms.Core.Constants;
namespace Umbraco.Web
{
public class UmbracoDbProviderFactoryCreator : IDbProviderFactoryCreator
{
public UmbracoDbProviderFactoryCreator()
{
}
public DbProviderFactory CreateFactory(string providerName)
{
if (string.IsNullOrEmpty(providerName)) return null;
return DbProviderFactories.GetFactory(providerName);
}
// gets the sql syntax provider that corresponds, from attribute
public ISqlSyntaxProvider GetSqlSyntaxProvider(string providerName)
{
switch (providerName)
{
case Constants.DbProviderNames.SqlCe:
return new SqlCeSyntaxProvider(Options.Create(new GlobalSettings()));
case Constants.DbProviderNames.SqlServer:
return new SqlServerSyntaxProvider(Options.Create(new GlobalSettings()));
default:
throw new InvalidOperationException($"Unknown provider name \"{providerName}\"");
}
}
public IBulkSqlInsertProvider CreateBulkSqlInsertProvider(string providerName)
{
switch (providerName)
{
case Constants.DbProviderNames.SqlCe:
return new SqlCeBulkSqlInsertProvider();
case Constants.DbProviderNames.SqlServer:
return new SqlServerBulkSqlInsertProvider();
default:
return new BasicBulkSqlInsertProvider();
}
}
public void CreateDatabase(string providerName)
{
var engine = new SqlCeEngine(DatabaseBuilder.EmbeddedDatabaseConnectionString);
engine.CreateDatabase();
}
}
}