From b7dc052cb219c56737d2bb9484796f176cf0ad69 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 6 Mar 2013 14:09:01 -0100 Subject: [PATCH] Additional fixes for U4-1845 to maintain compatibility for people using the wrong connection string --- src/SQLCE4Umbraco/SqlCEHelper.cs | 4 +++- .../umbraco.presentation/install/steps/database.ascx.cs | 4 ++-- src/umbraco.datalayer/DataLayerHelper.cs | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/SQLCE4Umbraco/SqlCEHelper.cs b/src/SQLCE4Umbraco/SqlCEHelper.cs index a35f84de82..a7f1abd88c 100644 --- a/src/SQLCE4Umbraco/SqlCEHelper.cs +++ b/src/SQLCE4Umbraco/SqlCEHelper.cs @@ -149,7 +149,9 @@ namespace SqlCE4Umbraco var dataDirectory = AppDomain.CurrentDomain.GetData("DataDirectory") as string; if (!string.IsNullOrEmpty(dataDirectory)) { - path = path.Replace("|DataDirectory|", dataDirectory + System.IO.Path.DirectorySeparatorChar); + path = path.Contains(@"|\") + ? path.Replace("|DataDirectory|", dataDirectory) + : path.Replace("|DataDirectory|", dataDirectory + System.IO.Path.DirectorySeparatorChar); } } diff --git a/src/Umbraco.Web/umbraco.presentation/install/steps/database.ascx.cs b/src/Umbraco.Web/umbraco.presentation/install/steps/database.ascx.cs index ed18bcb9c0..7ac02054f4 100644 --- a/src/Umbraco.Web/umbraco.presentation/install/steps/database.ascx.cs +++ b/src/Umbraco.Web/umbraco.presentation/install/steps/database.ascx.cs @@ -82,8 +82,8 @@ namespace umbraco.presentation.install.steps var sqlCeDatabaseExists = false; if (dbIsSqlCe) { - var datasource = databaseSettings.ConnectionString.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString() + Path.DirectorySeparatorChar); - var filePath = datasource.Replace("Datasource=", string.Empty); + var datasource = databaseSettings.ConnectionString.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString()); + var filePath = datasource.Replace("Data Source=", string.Empty); sqlCeDatabaseExists = File.Exists(filePath); } diff --git a/src/umbraco.datalayer/DataLayerHelper.cs b/src/umbraco.datalayer/DataLayerHelper.cs index d50aa5fc8a..7952b737ec 100644 --- a/src/umbraco.datalayer/DataLayerHelper.cs +++ b/src/umbraco.datalayer/DataLayerHelper.cs @@ -53,11 +53,11 @@ namespace umbraco.DataLayer 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 + connectionString = connectionString.Replace("Datasource", "Data Source"); - connectionString = connectionString.Replace("Datasource", "data source"); + if(connectionString.Contains(@"|\") == false) connectionString = connectionString.Insert(connectionString.LastIndexOf('|') + 1, "\\"); + connectionString = string.Format("datalayer=SQLCE4Umbraco.SqlCEHelper,SQLCE4Umbraco;{0}", connectionString); }