From af2d8a47553a548be0daf2bfeff44a517e0c984f Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 6 Mar 2013 07:49:29 -0100 Subject: [PATCH 01/10] Fix related to U4-1407 but for Media. We already committed this fix for Content. --- .../Persistence/Repositories/MediaRepository.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs index 33a7a35e9f..3e2152e37c 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs @@ -348,6 +348,17 @@ namespace Umbraco.Core.Persistence.Repositories var propertyDataDtos = Database.Fetch(sql); var propertyFactory = new PropertyFactory(contentType, versionId, id); var properties = propertyFactory.BuildMediaEntity(propertyDataDtos); + + var newProperties = properties.Where(x => x.HasIdentity == false); + foreach (var property in newProperties) + { + var propertyDataDto = new PropertyDataDto { NodeId = id, PropertyTypeId = property.PropertyTypeId, VersionId = versionId }; + int primaryKey = Convert.ToInt32(Database.Insert(propertyDataDto)); + + property.Version = versionId; + property.Id = primaryKey; + } + return new PropertyCollection(properties); } } From a41b55a9e673de6233ee1fe5a99262906eb5579a Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 6 Mar 2013 07:50:20 -0100 Subject: [PATCH 02/10] Fixes U4-1846 --- src/umbraco.cms/businesslogic/media/MediaType.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/umbraco.cms/businesslogic/media/MediaType.cs b/src/umbraco.cms/businesslogic/media/MediaType.cs index 46c24305c4..ee80b3d7b2 100644 --- a/src/umbraco.cms/businesslogic/media/MediaType.cs +++ b/src/umbraco.cms/businesslogic/media/MediaType.cs @@ -139,7 +139,7 @@ namespace umbraco.cms.businesslogic.media base.Save(); - FireBeforeSave(e); + FireAfterSave(e); } } From 9310efa28017375b90ce616b86a7e4b31d21888f Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 6 Mar 2013 07:54:09 -0100 Subject: [PATCH 03/10] Fixes U4-1831 by catching exception if there is no current logged in user. --- src/umbraco.businesslogic/User.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/umbraco.businesslogic/User.cs b/src/umbraco.businesslogic/User.cs index 3320e4fd9c..5e3b5b2d94 100644 --- a/src/umbraco.businesslogic/User.cs +++ b/src/umbraco.businesslogic/User.cs @@ -393,11 +393,17 @@ namespace umbraco.BusinessLogic /// A user or null public static User GetCurrent() { - if (umbraco.BasePages.BasePage.umbracoUserContextID != "") - return BusinessLogic.User.GetUser(umbraco.BasePages.BasePage.GetUserId(umbraco.BasePages.BasePage.umbracoUserContextID)); - else + try + { + if (umbraco.BasePages.BasePage.umbracoUserContextID != "") + return BusinessLogic.User.GetUser(umbraco.BasePages.BasePage.GetUserId(umbraco.BasePages.BasePage.umbracoUserContextID)); + else + return null; + } + catch (Exception) + { return null; - + } } /// From 21b0687a575f40cd21582351a46efcc533bf5978 Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 6 Mar 2013 07:57:00 -0100 Subject: [PATCH 04/10] Fixes U4-1837 by syncing tree after saveing DataTypeDefinition --- .../umbraco/developer/DataTypes/editDatatype.aspx.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/DataTypes/editDatatype.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/DataTypes/editDatatype.aspx.cs index 7106ef6ee3..7c1e8a5de1 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/DataTypes/editDatatype.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/DataTypes/editDatatype.aspx.cs @@ -91,7 +91,7 @@ namespace umbraco.cms.presentation.developer } - protected void save_click(object sender, System.Web.UI.ImageClickEventArgs e) + protected void save_click(object sender, ImageClickEventArgs e) { // save prevalues; if (_prevalue != null) @@ -106,7 +106,7 @@ namespace umbraco.cms.presentation.developer ClientTools.ShowSpeechBubble(BasePages.BasePage.speechBubbleIcon.save, ui.Text("speechBubbles", "dataTypeSaved", null), ""); - //Response.Redirect("editDataType.aspx?id=" + _id); + ClientTools.SyncTree(dt.Path, true); } From df164ee618b80e0a70bf23718a3731f185d2e844 Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 6 Mar 2013 08:02:09 -0100 Subject: [PATCH 05/10] Fixes U4-1835 by checking if the value is null before running the regex validation against the value. --- src/Umbraco.Core/Models/PropertyType.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Umbraco.Core/Models/PropertyType.cs b/src/Umbraco.Core/Models/PropertyType.cs index c67a2bd2ed..f9155f1894 100644 --- a/src/Umbraco.Core/Models/PropertyType.cs +++ b/src/Umbraco.Core/Models/PropertyType.cs @@ -338,6 +338,9 @@ namespace Umbraco.Core.Models //Check against Regular Expression for Legacy DataTypes if(!string.IsNullOrEmpty(ValidationRegExp)) { + if (value == null) + return false; + var regexPattern = new Regex(ValidationRegExp); return regexPattern.IsMatch(value.ToString()); } From de55cb83929c886e39a2454c8b66f588b3c00ca4 Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 6 Mar 2013 08:32:05 -0100 Subject: [PATCH 06/10] Correcting fix for U4-1835 --- src/Umbraco.Core/Models/PropertyType.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Core/Models/PropertyType.cs b/src/Umbraco.Core/Models/PropertyType.cs index f9155f1894..874e58ea6f 100644 --- a/src/Umbraco.Core/Models/PropertyType.cs +++ b/src/Umbraco.Core/Models/PropertyType.cs @@ -335,12 +335,9 @@ namespace Umbraco.Core.Models if (Mandatory && (value == null || string.IsNullOrEmpty(value.ToString()))) return false; - //Check against Regular Expression for Legacy DataTypes - if(!string.IsNullOrEmpty(ValidationRegExp)) + //Check against Regular Expression for Legacy DataTypes - Validation exists and value is not null: + if(string.IsNullOrEmpty(ValidationRegExp) == false && (value != null && string.IsNullOrEmpty(value.ToString()) == false)) { - if (value == null) - return false; - var regexPattern = new Regex(ValidationRegExp); return regexPattern.IsMatch(value.ToString()); } From 222a5237b05685ff31770a55764989c40cd48406 Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 6 Mar 2013 12:03:01 -0100 Subject: [PATCH 07/10] Version updated to 6.0.3 --- build/Build.bat | 2 +- src/Umbraco.Core/Configuration/UmbracoVersion.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Build.bat b/build/Build.bat index 966fcdb84f..66f0c7e3b9 100644 --- a/build/Build.bat +++ b/build/Build.bat @@ -1,5 +1,5 @@ @ECHO OFF -SET release=6.0.2 +SET release=6.0.3 SET comment= SET version=%release% diff --git a/src/Umbraco.Core/Configuration/UmbracoVersion.cs b/src/Umbraco.Core/Configuration/UmbracoVersion.cs index 5ba5563364..583e1097bf 100644 --- a/src/Umbraco.Core/Configuration/UmbracoVersion.cs +++ b/src/Umbraco.Core/Configuration/UmbracoVersion.cs @@ -5,7 +5,7 @@ namespace Umbraco.Core.Configuration { public class UmbracoVersion { - private static readonly Version Version = new Version("6.0.2"); + private static readonly Version Version = new Version("6.0.3"); /// /// Gets the current version of Umbraco. From 0c77114cd54fdb8bdf74d5453b9d8dbe0894584b Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 6 Mar 2013 13:36:03 -0100 Subject: [PATCH 08/10] Fixes U4-1845 by correcting the sql ce connectionstring --- src/Umbraco.Core/DatabaseContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Core/DatabaseContext.cs b/src/Umbraco.Core/DatabaseContext.cs index 780e799095..e33b63b01b 100644 --- a/src/Umbraco.Core/DatabaseContext.cs +++ b/src/Umbraco.Core/DatabaseContext.cs @@ -112,7 +112,7 @@ namespace Umbraco.Core public void ConfigureEmbeddedDatabaseConnection() { const string providerName = "System.Data.SqlServerCe.4.0"; - const string connectionString = "Datasource=|DataDirectory|Umbraco.sdf"; + const string connectionString = @"Data Source=|DataDirectory|\Umbraco.sdf"; SaveConnectionString(connectionString, providerName); From b7dc052cb219c56737d2bb9484796f176cf0ad69 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 6 Mar 2013 14:09:01 -0100 Subject: [PATCH 09/10] 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); } From c39f902ed524768ba290f1c55df35085a300a996 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 6 Mar 2013 14:30:09 -0100 Subject: [PATCH 10/10] And one more fix for U4-1845 to make upgrades succeed as well --- .../install/steps/database.ascx.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 7ac02054f4..a03c50eed4 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,15 @@ namespace umbraco.presentation.install.steps var sqlCeDatabaseExists = false; if (dbIsSqlCe) { - var datasource = databaseSettings.ConnectionString.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString()); - var filePath = datasource.Replace("Data Source=", string.Empty); + var dataSource = databaseSettings.ConnectionString.Replace("Datasource", "Data Source"); + + if (dataSource.Contains(@"|\") == false) + dataSource = dataSource.Insert(dataSource.LastIndexOf('|') + 1, "\\"); + + dataSource = dataSource.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString()); + + var filePath = dataSource.Replace("Data Source=", string.Empty); + sqlCeDatabaseExists = File.Exists(filePath); }