diff --git a/src/SQLCE4Umbraco/SqlCEHelper.cs b/src/SQLCE4Umbraco/SqlCEHelper.cs index d1ed779cd4..c0a4c875b1 100644 --- a/src/SQLCE4Umbraco/SqlCEHelper.cs +++ b/src/SQLCE4Umbraco/SqlCEHelper.cs @@ -94,7 +94,7 @@ namespace SqlCE4Umbraco var dataDirectory = AppDomain.CurrentDomain.GetData("DataDirectory") as string; if (!string.IsNullOrEmpty(dataDirectory)) { - path = path.Replace("|DataDirectory|", dataDirectory); + path = path.Replace("|DataDirectory|", dataDirectory + System.IO.Path.DirectorySeparatorChar); } } diff --git a/src/Umbraco.Tests/BusinessLogic/BaseTest.cs b/src/Umbraco.Tests/BusinessLogic/BaseTest.cs index f43210d89b..b3b9f0b166 100644 --- a/src/Umbraco.Tests/BusinessLogic/BaseTest.cs +++ b/src/Umbraco.Tests/BusinessLogic/BaseTest.cs @@ -38,7 +38,9 @@ namespace Umbraco.Tests.BusinessLogic private void ClearDatabase() { - var dataHelper = DataLayerHelper.CreateSqlHelper(GlobalSettings.DbDSN) as SqlCEHelper; + var databaseSettings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName]; + var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString) 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"); dataHelper.ClearDatabase(); @@ -53,7 +55,10 @@ namespace Umbraco.Tests.BusinessLogic ClearDatabase(); AppDomain.CurrentDomain.SetData("DataDirectory", TestHelper.CurrentAssemblyDirectory); - var dataHelper = DataLayerHelper.CreateSqlHelper(GlobalSettings.DbDSN); + + var databaseSettings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName]; + var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString) as SqlCEHelper; + var installer = dataHelper.Utility.CreateInstaller(); if (installer.CanConnect) { diff --git a/src/Umbraco.Tests/TestHelpers/TestHelper.cs b/src/Umbraco.Tests/TestHelpers/TestHelper.cs index 4e08078d73..8a358f1432 100644 --- a/src/Umbraco.Tests/TestHelpers/TestHelper.cs +++ b/src/Umbraco.Tests/TestHelpers/TestHelper.cs @@ -22,9 +22,12 @@ namespace Umbraco.Tests.TestHelpers /// public static void ClearDatabase() { - var dataHelper = DataLayerHelper.CreateSqlHelper(GlobalSettings.DbDSN) as SqlCEHelper; + var databaseSettings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName]; + var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString) 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"); + dataHelper.ClearDatabase(); } @@ -36,8 +39,10 @@ namespace Umbraco.Tests.TestHelpers ConfigurationManager.AppSettings.Set("umbracoDbDSN", @"datalayer=SQLCE4Umbraco.SqlCEHelper,SQLCE4Umbraco;data source=|DataDirectory|\Umbraco.sdf"); ClearDatabase(); + + var databaseSettings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName]; + var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString); - var dataHelper = DataLayerHelper.CreateSqlHelper(GlobalSettings.DbDSN); var installer = dataHelper.Utility.CreateInstaller(); if (installer.CanConnect) { 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 6354fd5606..bab52b53e4 100644 --- a/src/Umbraco.Web/umbraco.presentation/install/steps/database.ascx.cs +++ b/src/Umbraco.Web/umbraco.presentation/install/steps/database.ascx.cs @@ -6,6 +6,7 @@ using System.Web.UI.HtmlControls; using Umbraco.Core; using Umbraco.Core.Logging; using System.IO; +using umbraco.DataLayer; using umbraco.IO; namespace umbraco.presentation.install.steps @@ -79,13 +80,10 @@ namespace umbraco.presentation.install.steps { // Parse the connection string DbConnectionStringBuilder connectionStringBuilder = new DbConnectionStringBuilder(); - connectionStringBuilder.ConnectionString = GlobalSettings.DbDSN; - // "Data Source=.\\SQLEXPRESS;Initial Catalog=BB_Umbraco_Sandbox1;integrated security=false;user id=umbraco;pwd=umbraco" - - // Prepare the fields - string database = GetConnectionStringValue(connectionStringBuilder, "database"); - string server = GetConnectionStringValue(connectionStringBuilder, "server"); + var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName]; + var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString); + connectionStringBuilder.ConnectionString = dataHelper.ConnectionString; // Prepare data layer type string datalayerType = GetConnectionStringValue(connectionStringBuilder, "datalayer"); @@ -95,7 +93,7 @@ namespace umbraco.presentation.install.steps if (item.Value != String.Empty && ((string)datalayerType).Contains(item.Value)) DatabaseType.SelectedValue = item.Value; } - else if (GlobalSettings.DbDSN != "server=.\\SQLEXPRESS;database=DATABASE;user id=USER;password=PASS") + else if (dataHelper.ConnectionString != "server=.\\SQLEXPRESS;database=DATABASE;user id=USER;password=PASS") DatabaseType.SelectedValue = "SqlServer"; DatabaseType_SelectedIndexChanged(this, new EventArgs()); diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/assemblyBrowser.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/assemblyBrowser.aspx.cs index 848d5eba40..8c98f29974 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/assemblyBrowser.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/assemblyBrowser.aspx.cs @@ -22,8 +22,6 @@ namespace umbraco.developer /// public partial class assemblyBrowser : BasePages.UmbracoEnsuredPage { - - private string _ConnString = GlobalSettings.DbDSN; protected void Page_Load(object sender, System.EventArgs e) { diff --git a/src/umbraco.businesslogic/Application.cs b/src/umbraco.businesslogic/Application.cs index e452771fcc..e776569fc6 100644 --- a/src/umbraco.businesslogic/Application.cs +++ b/src/umbraco.businesslogic/Application.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Configuration; using System.IO; using System.Linq; using System.Web; @@ -78,7 +79,8 @@ namespace umbraco.BusinessLogic { try { - _sqlHelper = DataLayerHelper.CreateSqlHelper(GlobalSettings.DbDSN); + var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName]; + _sqlHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString); } catch { } } diff --git a/src/umbraco.businesslogic/ApplicationRegistrar.cs b/src/umbraco.businesslogic/ApplicationRegistrar.cs index 12e53a38eb..b643427406 100644 --- a/src/umbraco.businesslogic/ApplicationRegistrar.cs +++ b/src/umbraco.businesslogic/ApplicationRegistrar.cs @@ -1,4 +1,5 @@ using System; +using System.Configuration; using System.Data.SqlClient; using System.Linq; using System.Xml.Linq; @@ -22,7 +23,8 @@ namespace umbraco.BusinessLogic { try { - _sqlHelper = DataLayerHelper.CreateSqlHelper(GlobalSettings.DbDSN); + var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName]; + _sqlHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString); } catch { } } diff --git a/src/umbraco.businesslogic/GlobalSettings.cs b/src/umbraco.businesslogic/GlobalSettings.cs index 9b22d2ee14..9c89ca4099 100644 --- a/src/umbraco.businesslogic/GlobalSettings.cs +++ b/src/umbraco.businesslogic/GlobalSettings.cs @@ -8,6 +8,7 @@ using System.Xml; using Umbraco.Core; using Umbraco.Core.Configuration; using umbraco.BusinessLogic; +using umbraco.DataLayer; using umbraco.IO; namespace umbraco @@ -385,10 +386,13 @@ namespace umbraco { get { + var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName]; + var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString); + if (HttpContext.Current != null) { HttpContext.Current.Response.Write("ContentXML :" + ContentXML + "\n"); - HttpContext.Current.Response.Write("DbDSN :" + DbDSN + "\n"); + HttpContext.Current.Response.Write("DbDSN :" + dataHelper.ConnectionString + "\n"); HttpContext.Current.Response.Write("DebugMode :" + DebugMode + "\n"); HttpContext.Current.Response.Write("DefaultUILanguage :" + DefaultUILanguage + "\n"); HttpContext.Current.Response.Write("VersionCheckPeriod :" + VersionCheckPeriod + "\n"); diff --git a/src/umbraco.businesslogic/User.cs b/src/umbraco.businesslogic/User.cs index f064b6bd07..3320e4fd9c 100644 --- a/src/umbraco.businesslogic/User.cs +++ b/src/umbraco.businesslogic/User.cs @@ -1,6 +1,4 @@ using System; -using System.Data; -using System.Configuration; using System.Collections; using Umbraco.Core.Logging; using umbraco.DataLayer; @@ -202,7 +200,6 @@ namespace umbraco.BusinessLogic SqlHelper.ExecuteScalar("select UserPassword from umbracoUser where id = @id", SqlHelper.CreateParameter("@id", this.Id)); } - static string _connstring = GlobalSettings.DbDSN; /// /// Determines whether this user is an admin. diff --git a/src/umbraco.businesslogic/UserType.cs b/src/umbraco.businesslogic/UserType.cs index 4881b03029..54a300d083 100644 --- a/src/umbraco.businesslogic/UserType.cs +++ b/src/umbraco.businesslogic/UserType.cs @@ -69,8 +69,7 @@ namespace umbraco.BusinessLogic } private const string CACHE_KEY = "UserTypeCache"; - private static string _connstring = GlobalSettings.DbDSN; - + private int m_id; private string m_name; private string m_defaultPermissions; diff --git a/src/umbraco.cms/businesslogic/CMSNode.cs b/src/umbraco.cms/businesslogic/CMSNode.cs index 4765291f0a..24459e7f04 100644 --- a/src/umbraco.cms/businesslogic/CMSNode.cs +++ b/src/umbraco.cms/businesslogic/CMSNode.cs @@ -37,12 +37,6 @@ namespace umbraco.cms.businesslogic private string _text; private int _id = 0; private Guid _uniqueID; - - /// - /// Private connectionstring - /// - protected static readonly string _ConnString = GlobalSettings.DbDSN; - private int _parentid; private Guid _nodeObjectType; private int _level; diff --git a/src/umbraco.cms/businesslogic/datatype/DataEditorSettingsStorage.cs b/src/umbraco.cms/businesslogic/datatype/DataEditorSettingsStorage.cs index f61a0e7109..88bc00521d 100644 --- a/src/umbraco.cms/businesslogic/datatype/DataEditorSettingsStorage.cs +++ b/src/umbraco.cms/businesslogic/datatype/DataEditorSettingsStorage.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Configuration; using System.Linq; using System.Text; using umbraco.DataLayer; @@ -12,11 +13,15 @@ namespace umbraco.cms.businesslogic.datatype public DataEditorSettingsStorage() { - init( DataLayerHelper.CreateSqlHelper(umbraco.GlobalSettings.DbDSN)); + var databaseSettings = ConfigurationManager.ConnectionStrings[Umbraco.Core.Configuration.GlobalSettings.UmbracoConnectionName]; + var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString); + + init(DataLayerHelper.CreateSqlHelper(dataHelper.ConnectionString)); } - private void init(ISqlHelper connection) { - sqlHelper = connection; + private void init(ISqlHelper connection) + { + sqlHelper = connection; } public List> GetSettings(int dataTypeNodeID) @@ -68,13 +73,13 @@ namespace umbraco.cms.businesslogic.datatype public void InsertSetting(int dataTypeNodeID, string key, string value, int sortOrder) { - - string sql = "insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@datatypenodeid,@value,@sortorder,@alias)"; - sqlHelper.ExecuteNonQuery(sql, - sqlHelper.CreateParameter("@datatypenodeid", dataTypeNodeID), - sqlHelper.CreateParameter("@alias", key), - sqlHelper.CreateParameter("@value", value), - sqlHelper.CreateParameter("@sortorder", sortOrder)); + + string sql = "insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@datatypenodeid,@value,@sortorder,@alias)"; + sqlHelper.ExecuteNonQuery(sql, + sqlHelper.CreateParameter("@datatypenodeid", dataTypeNodeID), + sqlHelper.CreateParameter("@alias", key), + sqlHelper.CreateParameter("@value", value), + sqlHelper.CreateParameter("@sortorder", sortOrder)); } diff --git a/src/umbraco.datalayer/DataLayerHelper.cs b/src/umbraco.datalayer/DataLayerHelper.cs index 018d2667eb..eb022c1edd 100644 --- a/src/umbraco.datalayer/DataLayerHelper.cs +++ b/src/umbraco.datalayer/DataLayerHelper.cs @@ -44,6 +44,9 @@ namespace umbraco.DataLayer if (String.IsNullOrEmpty(connectionString)) throw new ArgumentNullException("connectionString"); + if(IsEmbeddedDatabase(connectionString) && connectionString.ToLower().Contains("SQLCE4Umbraco".ToLower()) == false) + connectionString = string.Format("datalayer=SQLCE4Umbraco.SqlCEHelper,SQLCE4Umbraco;{0}", connectionString); + /* try to parse connection string */ DbConnectionStringBuilder connectionStringBuilder = new DbConnectionStringBuilder(); try @@ -119,7 +122,7 @@ namespace umbraco.DataLayer public static bool IsEmbeddedDatabase(string connectionString) { - return connectionString.ToLower().Contains(@"data source=|DataDirectory|\Umbraco.sdf".ToLower()); + return connectionString.ToLower().Contains("|DataDirectory|".ToLower()); } #endregion