Fixes U4-1463 Unable to create an ISqlHelper from another connectionstring since

This commit is contained in:
Sebastiaan Janssen
2013-01-14 15:06:23 -01:00
parent bfa9cdd9e6
commit d922b0dc90
8 changed files with 21 additions and 15 deletions

View File

@@ -39,7 +39,7 @@ namespace Umbraco.Tests.BusinessLogic
private void ClearDatabase()
{
var databaseSettings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName];
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString) as SqlCEHelper;
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString, false) as SqlCEHelper;
if (dataHelper == null)
throw new InvalidOperationException("The sql helper for unit tests must be of type SqlCEHelper, check the ensure the connection string used for this test is set to use SQLCE");
@@ -57,7 +57,7 @@ namespace Umbraco.Tests.BusinessLogic
AppDomain.CurrentDomain.SetData("DataDirectory", TestHelper.CurrentAssemblyDirectory);
var databaseSettings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName];
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString) as SqlCEHelper;
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString, false) as SqlCEHelper;
var installer = dataHelper.Utility.CreateInstaller();
if (installer.CanConnect)

View File

@@ -23,7 +23,7 @@ namespace Umbraco.Tests.TestHelpers
public static void ClearDatabase()
{
var databaseSettings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName];
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString) as SqlCEHelper;
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString, false) as SqlCEHelper;
if (dataHelper == null)
throw new InvalidOperationException("The sql helper for unit tests must be of type SqlCEHelper, check the ensure the connection string used for this test is set to use SQLCE");
@@ -41,7 +41,7 @@ namespace Umbraco.Tests.TestHelpers
ClearDatabase();
var databaseSettings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName];
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString);
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString, false);
var installer = dataHelper.Utility.CreateInstaller();
if (installer.CanConnect)

View File

@@ -6,6 +6,7 @@ using System.Web.UI.HtmlControls;
using Umbraco.Core;
using Umbraco.Core.Logging;
using System.IO;
using Umbraco.Core.Persistence;
using umbraco.DataLayer;
using umbraco.IO;
@@ -85,7 +86,7 @@ namespace umbraco.presentation.install.steps
var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName];
if (databaseSettings != null)
{
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString);
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString, false);
connectionStringBuilder.ConnectionString = dataHelper.ConnectionString;
// Prepare data layer type

View File

@@ -94,7 +94,7 @@ namespace umbraco.BusinessLogic
ConfigurationManager.AppSettings.ContainsKey(umbracoDsn))
connectionString = ConfigurationManager.AppSettings[umbracoDsn];
_sqlHelper = DataLayerHelper.CreateSqlHelper(connectionString);
_sqlHelper = DataLayerHelper.CreateSqlHelper(connectionString, false);
}
catch(Exception ex)
{

View File

@@ -24,7 +24,7 @@ namespace umbraco.BusinessLogic
try
{
var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName];
_sqlHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString);
_sqlHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString, false);
}
catch { }
}

View File

@@ -387,7 +387,7 @@ namespace umbraco
get
{
var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName];
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString);
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString, false);
if (HttpContext.Current != null)
{

View File

@@ -14,9 +14,9 @@ namespace umbraco.cms.businesslogic.datatype
public DataEditorSettingsStorage()
{
var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName];
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString);
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString, false);
init(DataLayerHelper.CreateSqlHelper(dataHelper.ConnectionString));
init(DataLayerHelper.CreateSqlHelper(dataHelper.ConnectionString, false));
}
private void init(ISqlHelper connection)

View File

@@ -41,12 +41,17 @@ namespace umbraco.DataLayer
/// <returns>A new SQL helper.</returns>
/// <remarks>This method will change to allow the addition of external SQL helpers.</remarks>
public static ISqlHelper CreateSqlHelper(string connectionString)
{
return CreateSqlHelper(connectionString, true);
}
public static ISqlHelper CreateSqlHelper(string connectionString, bool forceLegacyConnection)
{
/* check arguments */
if (string.IsNullOrEmpty(connectionString))
throw new ArgumentNullException("connectionString");
if (IsEmbeddedDatabase(connectionString) && connectionString.ToLower().Contains("SQLCE4Umbraco".ToLower()) == false)
if (forceLegacyConnection == false && IsEmbeddedDatabase(connectionString) && connectionString.ToLower().Contains("SQLCE4Umbraco".ToLower()) == false)
{
// Input is : Datasource=|DataDirectory|Umbraco.sdf
// Should be: datalayer=SQLCE4Umbraco.SqlCEHelper,SQLCE4Umbraco;data source=|DataDirectory|\Umbraco.sdf
@@ -67,10 +72,10 @@ namespace umbraco.DataLayer
throw new ArgumentException("Bad connection string.", "connectionString", ex);
}
var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName];
if (databaseSettings != null)
SetDataHelperNames(databaseSettings);
var connectionStringSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName];
if (forceLegacyConnection == false && connectionStringSettings != null)
SetDataHelperNames(connectionStringSettings);
else
SetDataHelperNamesLegacyConnectionString(connectionStringBuilder);