From 4855466b38709a7caea30fbdaa1a5ee0e688d5c7 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 29 Nov 2016 18:01:43 +0100 Subject: [PATCH] Merge remote-tracking branch 'origin/dev-v7.6' into dev-v8 # Conflicts: # build/NuSpecs/UmbracoCms.Core.nuspec # src/Umbraco.Core/DatabaseContext.cs # src/Umbraco.Core/Persistence/DefaultDatabaseFactory.cs # src/Umbraco.Core/Persistence/PetaPoco.cs # src/Umbraco.Core/Persistence/UmbracoDatabase.cs # src/Umbraco.Core/Services/ContentTypeService.cs # src/Umbraco.Core/UmbracoApplicationBase.cs # src/Umbraco.Web.UI/packages.config # src/Umbraco.Web/Scheduling/LogScrubber.cs # src/Umbraco.Web/Scheduling/ScheduledPublishing.cs # src/Umbraco.Web/Search/ExamineEvents.cs # src/Umbraco.Web/Strategies/ServerRegistrationEventHandler.cs # src/Umbraco.Web/UI/Controls/UmbracoControl.cs # src/Umbraco.Web/UI/Controls/UmbracoUserControl.cs # src/Umbraco.Web/Umbraco.Web.csproj # src/Umbraco.Web/UmbracoModule.cs # src/Umbraco.Web/packages.config # src/Umbraco.Web/umbraco.presentation/content.cs # src/Umbraco.Web/umbraco.presentation/library.cs # src/Umbraco.Web/umbraco.presentation/macro.cs # src/Umbraco.Web/umbraco.presentation/template.cs # src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadMacros.cs # src/Umbraco.Web/umbraco.presentation/umbraco/create/macroTasks.cs # src/Umbraco.Web/umbraco.presentation/umbraco/developer/RelationTypes/EditRelationType.aspx.cs # src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/editMacro.aspx.cs # src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/insertMacro.aspx.cs # src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.cs # src/Umbraco.Web/umbraco.presentation/umbraco/plugins/tinymce3/insertMacro.aspx.cs # src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs # src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/PreValueExtensions.cs # src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/RelationTypeExtensions.cs # src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery-Content.cs # src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery-DataTypes.cs # src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery-PreValues.cs # src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery-UmbracoObjectType.cs # src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery.cs # src/Umbraco.Web/umbraco.presentation/umbraco/webservices/TagsAutoCompleteHandler.ashx.cs # src/UmbracoExamine/DataServices/UmbracoContentService.cs # src/umbraco.businesslogic/BasePages/BasePage.cs # src/umbraco.businesslogic/Log.cs # src/umbraco.businesslogic/User.cs # src/umbraco.cms/businesslogic/CMSNode.cs # src/umbraco.cms/businesslogic/Content.cs # src/umbraco.cms/businesslogic/ContentType.cs # src/umbraco.cms/businesslogic/Dictionary.cs # src/umbraco.cms/businesslogic/Packager/Package.cs # src/umbraco.cms/businesslogic/Property/Property.cs # src/umbraco.cms/businesslogic/RecycleBin.cs # src/umbraco.cms/businesslogic/Tags/Tag.cs # src/umbraco.cms/businesslogic/datatype/BaseDataType.cs # src/umbraco.cms/businesslogic/datatype/DataEditorSettingsStorage.cs # src/umbraco.cms/businesslogic/datatype/DefaultData.cs # src/umbraco.cms/businesslogic/datatype/DefaultPreValueEditor.cs # src/umbraco.cms/businesslogic/datatype/PreValue.cs # src/umbraco.cms/businesslogic/datatype/PreValues.cs # src/umbraco.cms/businesslogic/macro/macroPropertyType.cs # src/umbraco.cms/businesslogic/member/Member.cs # src/umbraco.cms/businesslogic/member/MemberGroup.cs # src/umbraco.cms/businesslogic/propertytype/propertytype.cs # src/umbraco.cms/businesslogic/relation/Relation.cs # src/umbraco.cms/businesslogic/relation/RelationType.cs # src/umbraco.cms/businesslogic/template/Template.cs # src/umbraco.cms/businesslogic/web/Document.cs # src/umbraco.cms/businesslogic/web/DocumentType.cs # src/umbraco.cms/businesslogic/workflow/Notification.cs # src/umbraco.cms/packages.config # src/umbraco.datalayer/SqlHelpers/MySql/MySqlInstaller.cs # src/umbraco.editorControls/BaseDataType.cs # src/umbraco.editorControls/DefaultData.cs # src/umbraco.editorControls/DefaultDataKeyValue.cs # src/umbraco.editorControls/DefaultPrevalueEditor.cs # src/umbraco.editorControls/KeyValuePrevalueEditor.cs # src/umbraco.editorControls/PickerRelations/PickerRelationsDataEditor.cs # src/umbraco.editorControls/PickerRelations/PickerRelationsEventHandler.cs # src/umbraco.editorControls/SettingControls/Pickers/Field.cs # src/umbraco.editorControls/imagecropper/PrevalueEditor.cs # src/umbraco.editorControls/macrocontainer/PrevalueEditor.cs # src/umbraco.editorControls/mediapicker/MediaPickerPrevalueEditor.cs # src/umbraco.editorControls/memberpicker/memberPicker.cs # src/umbraco.editorControls/packages.config # src/umbraco.editorControls/tags/PrevalueEditor.cs # src/umbraco.editorControls/tinymce/tinyMCEPreValueConfigurator.cs # src/umbraco.editorControls/ultimatepicker/ultimatePickerPrevalueEditor.cs # src/umbraco.editorControls/umbraco.editorControls.csproj # src/umbraco.editorControls/uploadfield/uploadFieldPreValue.cs # src/umbraco.editorControls/userControlWrapper/usercontrolPrevalueEditor.cs --- README.md | 6 +- build/NuSpecs/UmbracoCms.Core.nuspec | 2 +- build/NuSpecs/tools/Web.config.install.xdt | 2 +- src/SQLCE4Umbraco/SqlCEInstaller.cs | 46 ++-- src/SQLCE4Umbraco/SqlCETableUtility.cs | 28 +- .../Security/BackOfficeUserStore.cs | 7 + .../Services/ContentTypeService.cs | 2 + src/Umbraco.Core/Umbraco.Core.csproj | 2 +- src/Umbraco.Core/UmbracoApplicationBase.cs | 5 +- .../propertyeditors/tags/tags.controller.js | 3 +- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 4 +- src/Umbraco.Web.UI/packages.config | 2 +- .../BatchedWebServiceServerMessenger.cs | 3 +- src/Umbraco.Web/Editors/MediaController.cs | 2 +- .../Routing/EnsureRoutableOutcome.cs | 2 +- .../Routing/RoutableAttemptEventArgs.cs | 2 +- .../Routing/UmbracoRequestEventArgs.cs | 2 +- .../Scheduling/ScheduledPublishing.cs | 2 + src/Umbraco.Web/UmbracoModule.cs | 10 +- .../umbraco/settings/editTemplate.aspx.cs | 9 +- src/umbraco.cms/businesslogic/CMSNode.cs | 247 ++++++++++-------- src/umbraco.cms/businesslogic/Content.cs | 53 ++-- src/umbraco.cms/businesslogic/ContentType.cs | 179 +++++++------ .../businesslogic/Packager/Package.cs | 118 +++++---- .../businesslogic/language/Item.cs | 4 +- .../businesslogic/language/Language.cs | 3 +- src/umbraco.cms/businesslogic/macro/Macro.cs | 6 +- .../businesslogic/macro/MacroProperty.cs | 48 ++-- .../businesslogic/member/Member.cs | 87 +++--- .../propertytype/PropertyTypeGroup.cs | 74 +++--- .../propertytype/propertytype.cs | 111 ++++---- src/umbraco.cms/businesslogic/task/Task.cs | 4 +- .../businesslogic/task/TaskType.cs | 4 + .../businesslogic/template/Template.cs | 3 +- src/umbraco.cms/businesslogic/web/Document.cs | 12 +- .../businesslogic/web/DocumentType.cs | 20 +- src/umbraco.cms/packages.config | 2 +- src/umbraco.cms/umbraco.cms.csproj | 4 +- .../umbraco.cms.csproj.DotSettings | 2 - src/umbraco.controls/packages.config | 2 +- src/umbraco.controls/umbraco.controls.csproj | 4 +- .../SqlServer/SqlServerTableUtility.cs | 28 +- .../Installer/DefaultInstallerUtility.cs | 9 +- 43 files changed, 676 insertions(+), 489 deletions(-) delete mode 100644 src/umbraco.cms/umbraco.cms.csproj.DotSettings diff --git a/README.md b/README.md index 2758ad3edb..3e9be6cb5f 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Note that you can always [download a nightly build](http://nightly.umbraco.org/? [![ScreenShot](http://umbraco.com/images/whatisumbraco.png)](https://umbraco.tv/videos/umbraco-v7/content-editor/basics/introduction/cms-explanation/) -## Umbraco - The Friendly CMS ## +## Umbraco - The Friendly CMS ## For the first time on the Microsoft platform, there is a free user and developer friendly CMS that makes it quick and easy to create websites - or a breeze to build complex web applications. Umbraco has award-winning integration capabilities and supports ASP.NET MVC or Web Forms, including User and Custom Controls, out of the box. @@ -30,7 +30,7 @@ Used by more than 350,000 active websites including Carlsberg, Segway, Amazon an To view more examples, please visit [https://umbraco.com/why-umbraco/#caseStudies](https://umbraco.com/why-umbraco/#caseStudies) -## Why Open Source? ## +## Why Open Source? ## As an Open Source platform, Umbraco is more than just a CMS. We are transparent with our roadmap for future versions, our incremental sprint planning notes are publicly accessible and community contributions and packages are available for all to use. ## Downloading ## @@ -49,4 +49,4 @@ Umbraco is contribution focused and community driven. If you want to contribute Another way you can contribute to Umbraco is by providing issue reports. For information on how to submit an issue report refer to our [online guide for reporting issues](https://our.umbraco.org/contribute/report-an-issue-or-request-a-feature). -To view existing issues, please visit [http://issues.umbraco.org](http://issues.umbraco.org). \ No newline at end of file +To view existing issues, please visit [http://issues.umbraco.org](http://issues.umbraco.org). diff --git a/build/NuSpecs/UmbracoCms.Core.nuspec b/build/NuSpecs/UmbracoCms.Core.nuspec index 145e3a96ba..99448168c8 100644 --- a/build/NuSpecs/UmbracoCms.Core.nuspec +++ b/build/NuSpecs/UmbracoCms.Core.nuspec @@ -27,7 +27,7 @@ - + diff --git a/build/NuSpecs/tools/Web.config.install.xdt b/build/NuSpecs/tools/Web.config.install.xdt index 2d5dfb0bdb..cbb60bb949 100644 --- a/build/NuSpecs/tools/Web.config.install.xdt +++ b/build/NuSpecs/tools/Web.config.install.xdt @@ -335,7 +335,7 @@ - + diff --git a/src/SQLCE4Umbraco/SqlCEInstaller.cs b/src/SQLCE4Umbraco/SqlCEInstaller.cs index aeb40ed811..80a669e59c 100644 --- a/src/SQLCE4Umbraco/SqlCEInstaller.cs +++ b/src/SQLCE4Umbraco/SqlCEInstaller.cs @@ -21,15 +21,15 @@ namespace SqlCE4Umbraco public class SqlCEInstaller : DefaultInstallerUtility { #region Private Constants - + /// The latest database version this installer supports. private const DatabaseVersion LatestVersionSupported = DatabaseVersion.Version4_8; /// The specifications to determine the database version. private static readonly VersionSpecs[] m_VersionSpecs = new VersionSpecs[] { - new VersionSpecs("SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS LEFT OUTER JOIN umbracoApp ON appAlias = appAlias WHERE CONSTRAINT_NAME = 'FK_umbracoUser2app_umbracoApp'", 0, DatabaseVersion.Version4_8), - new VersionSpecs("SELECT id FROM umbracoNode WHERE id = -21", 1, DatabaseVersion.Version4_1), - new VersionSpecs("SELECT action FROM umbracoAppTree",DatabaseVersion.Version4), + new VersionSpecs("SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS LEFT OUTER JOIN umbracoApp ON appAlias = appAlias WHERE CONSTRAINT_NAME = 'FK_umbracoUser2app_umbracoApp'", 0, DatabaseVersion.Version4_8), + new VersionSpecs("SELECT id FROM umbracoNode WHERE id = -21", 1, DatabaseVersion.Version4_1), + new VersionSpecs("SELECT action FROM umbracoAppTree",DatabaseVersion.Version4), new VersionSpecs("SELECT description FROM cmsContentType",DatabaseVersion.Version3), new VersionSpecs("SELECT id FROM sysobjects",DatabaseVersion.None) }; @@ -43,8 +43,9 @@ namespace SqlCE4Umbraco public override bool CanConnect { get - { - SqlHelper.CreateEmptyDatabase(); + { + using (var sqlHelper = SqlHelper) + sqlHelper.CreateEmptyDatabase(); return base.CanConnect; } } @@ -93,22 +94,22 @@ namespace SqlCE4Umbraco #region DefaultInstaller Members - /// - /// Returns the sql to do a full install - /// - protected override string FullInstallSql - { - get { return string.Empty; } - } + /// + /// Returns the sql to do a full install + /// + protected override string FullInstallSql + { + get { return string.Empty; } + } - /// - /// Returns the sql to do an upgrade - /// - protected override string UpgradeSql - { - get { return string.Empty; } - } + /// + /// Returns the sql to do an upgrade + /// + protected override string UpgradeSql + { + get { return string.Empty; } + } // We need to override this as the default way of detection a db connection checks for systables that doesn't exist // in a CE db @@ -123,8 +124,9 @@ namespace SqlCE4Umbraco // verify connection try { - if (SqlCeApplicationBlock.VerifyConnection(base.SqlHelper.ConnectionString)) - return DatabaseVersion.None; + using (var sqlHelper = SqlHelper) + if (SqlCeApplicationBlock.VerifyConnection(sqlHelper.ConnectionString)) + return DatabaseVersion.None; } catch (Exception e) { diff --git a/src/SQLCE4Umbraco/SqlCETableUtility.cs b/src/SQLCE4Umbraco/SqlCETableUtility.cs index 7c32252d20..cac6e0d784 100644 --- a/src/SQLCE4Umbraco/SqlCETableUtility.cs +++ b/src/SQLCE4Umbraco/SqlCETableUtility.cs @@ -37,13 +37,15 @@ namespace SqlCE4Umbraco ITable table = null; // get name in correct casing - name = SqlHelper.ExecuteScalar("SELECT name FROM sys.tables WHERE name=@name", - SqlHelper.CreateParameter("name", name)); + using (var sqlHelper = SqlHelper) + name = sqlHelper.ExecuteScalar("SELECT name FROM sys.tables WHERE name=@name", + sqlHelper.CreateParameter("name", name)); if (name != null) { table = new DefaultTable(name); - using (IRecordsReader reader = SqlHelper.ExecuteReader( + using (var sqlHelper = SqlHelper) + using (IRecordsReader reader = sqlHelper.ExecuteReader( @"SELECT c.name AS Name, st.name AS DataType, c.max_length, c.is_nullable, c.is_identity FROM sys.tables AS t JOIN sys.columns AS c ON t.object_id = c.object_id @@ -51,7 +53,7 @@ namespace SqlCE4Umbraco JOIN sys.types AS ty ON ty.user_type_id = c.user_type_id JOIN sys.types st ON ty.system_type_id = st.user_type_id WHERE t.name = @name - ORDER BY c.column_id", SqlHelper.CreateParameter("name", name))) + ORDER BY c.column_id", sqlHelper.CreateParameter("name", name))) { while (reader.Read()) { @@ -112,7 +114,8 @@ namespace SqlCE4Umbraco // create query StringBuilder createTableQuery = new StringBuilder(); - createTableQuery.AppendFormat("CREATE TABLE [{0}] (", SqlHelper.EscapeString(table.Name)); + using (var sqlHelper = SqlHelper) + createTableQuery.AppendFormat("CREATE TABLE [{0}] (", sqlHelper.EscapeString(table.Name)); // add fields while (hasNext) @@ -136,7 +139,8 @@ namespace SqlCE4Umbraco // execute query try { - SqlHelper.ExecuteNonQuery(createTableQuery.ToString()); + using (var sqlHelper = SqlHelper) + sqlHelper.ExecuteNonQuery(createTableQuery.ToString()); } catch (Exception executeException) { @@ -154,13 +158,15 @@ namespace SqlCE4Umbraco Debug.Assert(table != null && field != null); StringBuilder addColumnQuery = new StringBuilder(); - addColumnQuery.AppendFormat("ALTER TABLE [{0}] ADD [{1}] {2}", - SqlHelper.EscapeString(table.Name), - SqlHelper.EscapeString(field.Name), - SqlHelper.EscapeString(GetDatabaseType(field))); + using (var sqlHelper = SqlHelper) + addColumnQuery.AppendFormat("ALTER TABLE [{0}] ADD [{1}] {2}", + sqlHelper.EscapeString(table.Name), + sqlHelper.EscapeString(field.Name), + sqlHelper.EscapeString(GetDatabaseType(field))); try { - SqlHelper.ExecuteNonQuery(addColumnQuery.ToString()); + using (var sqlHelper = SqlHelper) + sqlHelper.ExecuteNonQuery(addColumnQuery.ToString()); } catch (Exception executeException) { diff --git a/src/Umbraco.Core/Security/BackOfficeUserStore.cs b/src/Umbraco.Core/Security/BackOfficeUserStore.cs index 40c532976e..a2cf71c010 100644 --- a/src/Umbraco.Core/Security/BackOfficeUserStore.cs +++ b/src/Umbraco.Core/Security/BackOfficeUserStore.cs @@ -646,6 +646,13 @@ namespace Umbraco.Core.Security { anythingChanged = true; user.IsLockedOut = identityUser.IsLockedOut; + + if (user.IsLockedOut) + { + //need to set the last lockout date + user.LastLockoutDate = DateTime.Now; + } + } if (user.Username != identityUser.UserName && identityUser.UserName.IsNullOrWhiteSpace() == false) { diff --git a/src/Umbraco.Core/Services/ContentTypeService.cs b/src/Umbraco.Core/Services/ContentTypeService.cs index 430aadb083..85a728340c 100644 --- a/src/Umbraco.Core/Services/ContentTypeService.cs +++ b/src/Umbraco.Core/Services/ContentTypeService.cs @@ -49,6 +49,8 @@ namespace Umbraco.Core.Services var aliases = repo.GetAllPropertyTypeAliases(); uow.Complete(); return aliases; + + } } diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index bb942ccef5..2206527af0 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -21,7 +21,7 @@ full false bin\Debug\ - DEBUG;TRACE + TRACE;DEBUG prompt 4 false diff --git a/src/Umbraco.Core/UmbracoApplicationBase.cs b/src/Umbraco.Core/UmbracoApplicationBase.cs index b26d520730..0be00acfe2 100644 --- a/src/Umbraco.Core/UmbracoApplicationBase.cs +++ b/src/Umbraco.Core/UmbracoApplicationBase.cs @@ -13,6 +13,7 @@ namespace Umbraco.Core /// /// Provides an abstract base class for the Umbraco HttpApplication. /// + /// This is exposed in the core so that we can have the IApplicationEventHandler in the core project so that public abstract class UmbracoApplicationBase : HttpApplication { private IRuntime _runtime; @@ -79,7 +80,7 @@ namespace Umbraco.Core protected virtual void ConfigureUnhandledException(ILogger logger) { - // take care of unhandled exceptions - there is nothing we can do to + //take care of unhandled exceptions - there is nothing we can do to // prevent the entire w3wp process to go down but at least we can try // and log the exception AppDomain.CurrentDomain.UnhandledException += (_, args) => @@ -124,6 +125,7 @@ namespace Umbraco.Core OnApplicationInit(this, new EventArgs()); } + #endregion #region End @@ -140,6 +142,7 @@ namespace Umbraco.Core { _runtime.Terminate(); _runtime.DisposeIfDisposable(); + _runtime = null; } diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js index a1e48bbc99..d18ff73bd5 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js @@ -1,6 +1,6 @@ angular.module("umbraco") .controller("Umbraco.PropertyEditors.TagsController", - function ($rootScope, $scope, $log, assetsService, umbRequestHelper, angularHelper, $timeout, $element) { + function ($rootScope, $scope, $log, assetsService, umbRequestHelper, angularHelper, $timeout, $element, $sanitize) { var $typeahead; @@ -41,6 +41,7 @@ angular.module("umbraco") //Helper method to add a tag on enter or on typeahead select function addTag(tagToAdd) { + tagToAdd = $sanitize(tagToAdd); if (tagToAdd != null && tagToAdd.length > 0) { if ($scope.model.value.indexOf(tagToAdd) < 0) { $scope.model.value.push(tagToAdd); diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 09ad0a6533..fc8a49232d 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -115,8 +115,8 @@ ..\packages\AutoMapper.4.2.1\lib\net45\AutoMapper.dll True - - ..\packages\ClientDependency.1.9.1\lib\net45\ClientDependency.Core.dll + + ..\packages\ClientDependency.1.9.2\lib\net45\ClientDependency.Core.dll True diff --git a/src/Umbraco.Web.UI/packages.config b/src/Umbraco.Web.UI/packages.config index e116495f7b..71f6fbdc9c 100644 --- a/src/Umbraco.Web.UI/packages.config +++ b/src/Umbraco.Web.UI/packages.config @@ -1,7 +1,7 @@  - + diff --git a/src/Umbraco.Web/BatchedWebServiceServerMessenger.cs b/src/Umbraco.Web/BatchedWebServiceServerMessenger.cs index 63536ca9f7..0fe3464140 100644 --- a/src/Umbraco.Web/BatchedWebServiceServerMessenger.cs +++ b/src/Umbraco.Web/BatchedWebServiceServerMessenger.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Web; using Umbraco.Core.Sync; +using Umbraco.Web.Routing; namespace Umbraco.Web { @@ -64,7 +65,7 @@ namespace Umbraco.Web return batch; } - void UmbracoModule_EndRequest(object sender, EventArgs e) + private void UmbracoModule_EndRequest(object sender, EventArgs e) { FlushBatch(); } diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs index 67539734fd..f7390d80e2 100644 --- a/src/Umbraco.Web/Editors/MediaController.cs +++ b/src/Umbraco.Web/Editors/MediaController.cs @@ -510,7 +510,7 @@ namespace Umbraco.Web.Editors //get the files foreach (var file in result.FileData) { - var fileName = file.Headers.ContentDisposition.FileName.Trim(new[] { '\"' }); + var fileName = file.Headers.ContentDisposition.FileName.Trim(new[] { '\"' }).TrimEnd(); var ext = fileName.Substring(fileName.LastIndexOf('.') + 1).ToLower(); if (UmbracoConfig.For.UmbracoSettings().Content.DisallowedUploadFiles.Contains(ext) == false) diff --git a/src/Umbraco.Web/Routing/EnsureRoutableOutcome.cs b/src/Umbraco.Web/Routing/EnsureRoutableOutcome.cs index 5c4ab0a4ea..eec30b54f6 100644 --- a/src/Umbraco.Web/Routing/EnsureRoutableOutcome.cs +++ b/src/Umbraco.Web/Routing/EnsureRoutableOutcome.cs @@ -3,7 +3,7 @@ namespace Umbraco.Web.Routing /// /// Represents the outcome of trying to route an incoming request. /// - internal enum EnsureRoutableOutcome + public enum EnsureRoutableOutcome { /// /// Request routes to a document. diff --git a/src/Umbraco.Web/Routing/RoutableAttemptEventArgs.cs b/src/Umbraco.Web/Routing/RoutableAttemptEventArgs.cs index 7a7bc37d5c..ee93623252 100644 --- a/src/Umbraco.Web/Routing/RoutableAttemptEventArgs.cs +++ b/src/Umbraco.Web/Routing/RoutableAttemptEventArgs.cs @@ -5,7 +5,7 @@ namespace Umbraco.Web.Routing /// /// Event args containing information about why the request was not routable, or if it is routable /// - internal class RoutableAttemptEventArgs : UmbracoRequestEventArgs + public class RoutableAttemptEventArgs : UmbracoRequestEventArgs { public EnsureRoutableOutcome Outcome { get; private set; } diff --git a/src/Umbraco.Web/Routing/UmbracoRequestEventArgs.cs b/src/Umbraco.Web/Routing/UmbracoRequestEventArgs.cs index 2c50c972f5..3516277275 100644 --- a/src/Umbraco.Web/Routing/UmbracoRequestEventArgs.cs +++ b/src/Umbraco.Web/Routing/UmbracoRequestEventArgs.cs @@ -6,7 +6,7 @@ namespace Umbraco.Web.Routing /// /// Event args used for event launched during a request (like in the UmbracoModule) /// - internal class UmbracoRequestEventArgs : EventArgs + public class UmbracoRequestEventArgs : EventArgs { public UmbracoContext UmbracoContext { get; private set; } public HttpContextBase HttpContext { get; private set; } diff --git a/src/Umbraco.Web/Scheduling/ScheduledPublishing.cs b/src/Umbraco.Web/Scheduling/ScheduledPublishing.cs index d6b2354156..bcb36bfd72 100644 --- a/src/Umbraco.Web/Scheduling/ScheduledPublishing.cs +++ b/src/Umbraco.Web/Scheduling/ScheduledPublishing.cs @@ -79,6 +79,7 @@ namespace Umbraco.Web.Scheduling { Content = new StringContent(string.Empty) }; + //pass custom the authorization header request.Headers.Authorization = AdminTokenAuthorizeAttribute.GetAuthenticationHeaderValue(_userService); @@ -96,6 +97,7 @@ namespace Umbraco.Web.Scheduling public override bool IsAsync => true; + public override bool RunsOnShutdown => false; } } \ No newline at end of file diff --git a/src/Umbraco.Web/UmbracoModule.cs b/src/Umbraco.Web/UmbracoModule.cs index e06b4d76bd..e2b29bdbcd 100644 --- a/src/Umbraco.Web/UmbracoModule.cs +++ b/src/Umbraco.Web/UmbracoModule.cs @@ -548,27 +548,27 @@ namespace Umbraco.Web Logger.Debug($"End Request. ({DateTime.Now.Subtract(UmbracoContext.Current.ObjectCreated).TotalMilliseconds}ms)"); } - OnEndRequest(new EventArgs()); + OnEndRequest(new UmbracoRequestEventArgs(UmbracoContext.Current, new HttpContextWrapper(httpContext))); - DisposeHttpContextItems(httpContext); + DisposeHttpContextItems(httpContext); }; } public void Dispose() { } - #endregion + #endregion #region Events - internal static event EventHandler RouteAttempt; + public static event EventHandler RouteAttempt; private void OnRouteAttempt(RoutableAttemptEventArgs args) { RouteAttempt?.Invoke(this, args); } - internal static event EventHandler EndRequest; + public static event EventHandler EndRequest; private void OnEndRequest(EventArgs args) { diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs index 9e0ed6d4bc..d2470cfcd4 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs @@ -195,7 +195,6 @@ namespace umbraco.cms.presentation.settings private void LoadMacros() { - ; var macroRenderings = Services.MacroService.GetAll() .Select(x => new TempMacroClass() @@ -220,10 +219,10 @@ namespace umbraco.cms.presentation.settings { if ( DatabaseContext.Database.ExecuteScalar(string.Format("select 1 from cmsMacroProperty where macro = {0}", macroId)) == - 1) - return "1"; - else - return "0"; + 1) + return "1"; + else + return "0"; } /// diff --git a/src/umbraco.cms/businesslogic/CMSNode.cs b/src/umbraco.cms/businesslogic/CMSNode.cs index 85139907b2..3f4351e5a8 100644 --- a/src/umbraco.cms/businesslogic/CMSNode.cs +++ b/src/umbraco.cms/businesslogic/CMSNode.cs @@ -84,7 +84,8 @@ namespace umbraco.cms.businesslogic /// public static int CountByObjectType(Guid objectType) { - return SqlHelper.ExecuteScalar("SELECT COUNT(*) from umbracoNode WHERE nodeObjectType = @type", SqlHelper.CreateParameter("@type", objectType)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + return sqlHelper.ExecuteScalar("SELECT COUNT(*) from umbracoNode WHERE nodeObjectType = @type", sqlHelper.CreateParameter("@type", objectType)); } /// @@ -96,7 +97,9 @@ namespace umbraco.cms.businesslogic /// public static int CountSubs(int Id) { - return SqlHelper.ExecuteScalar("SELECT COUNT(*) FROM umbracoNode WHERE ','+path+',' LIKE '%," + Id.ToString() + ",%'"); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + return sqlHelper.ExecuteScalar("SELECT COUNT(*) FROM umbracoNode WHERE ','+path+',' LIKE '%,@nodeId,%'", + sqlHelper.CreateParameter("nodeId", Id)); } /// @@ -107,9 +110,10 @@ namespace umbraco.cms.businesslogic /// public static int CountLeafNodes(int parentId, Guid objectType) { - return SqlHelper.ExecuteScalar("Select count(uniqueID) from umbracoNode where nodeObjectType = @type And parentId = @parentId", - SqlHelper.CreateParameter("@type", objectType), - SqlHelper.CreateParameter("@parentId", parentId)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + return sqlHelper.ExecuteScalar("Select count(uniqueID) from umbracoNode where nodeObjectType = @type And parentId = @parentId", + sqlHelper.CreateParameter("@type", objectType), + sqlHelper.CreateParameter("@parentId", parentId)); } /// @@ -140,7 +144,8 @@ namespace umbraco.cms.businesslogic /// True if there is a CMSNode with the given Guid public static bool IsNode(Guid uniqueID) { - return (SqlHelper.ExecuteScalar("select count(id) from umbracoNode where uniqueID = @uniqueID", SqlHelper.CreateParameter("@uniqueId", uniqueID)) > 0); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + return sqlHelper.ExecuteScalar("select count(id) from umbracoNode where uniqueID = @uniqueID", sqlHelper.CreateParameter("@uniqueId", uniqueID)) > 0; } /// @@ -150,7 +155,8 @@ namespace umbraco.cms.businesslogic /// True if there is a CMSNode with the given id public static bool IsNode(int Id) { - return (SqlHelper.ExecuteScalar("select count(id) from umbracoNode where id = @id", SqlHelper.CreateParameter("@id", Id)) > 0); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + return sqlHelper.ExecuteScalar("select count(id) from umbracoNode where id = @id", sqlHelper.CreateParameter("@id", Id)) > 0; } /// @@ -162,16 +168,19 @@ namespace umbraco.cms.businesslogic /// public static Guid[] getAllUniquesFromObjectType(Guid objectType) { - IRecordsReader dr = SqlHelper.ExecuteReader("Select uniqueID from umbracoNode where nodeObjectType = @type", - SqlHelper.CreateParameter("@type", objectType)); - System.Collections.ArrayList tmp = new System.Collections.ArrayList(); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader("Select uniqueID from umbracoNode where nodeObjectType = @type", + sqlHelper.CreateParameter("@type", objectType))) + { + System.Collections.ArrayList tmp = new System.Collections.ArrayList(); - while (dr.Read()) tmp.Add(dr.GetGuid("uniqueID")); - dr.Close(); + while (dr.Read()) tmp.Add(dr.GetGuid("uniqueID")); + dr.Close(); - Guid[] retval = new Guid[tmp.Count]; - for (int i = 0; i < tmp.Count; i++) retval[i] = (Guid)tmp[i]; - return retval; + Guid[] retval = new Guid[tmp.Count]; + for (int i = 0; i < tmp.Count; i++) retval[i] = (Guid)tmp[i]; + return retval; + } } /// @@ -183,14 +192,17 @@ namespace umbraco.cms.businesslogic /// public static int[] getAllUniqueNodeIdsFromObjectType(Guid objectType) { - IRecordsReader dr = SqlHelper.ExecuteReader("Select id from umbracoNode where nodeObjectType = @type", - SqlHelper.CreateParameter("@type", objectType)); - System.Collections.ArrayList tmp = new System.Collections.ArrayList(); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader("Select id from umbracoNode where nodeObjectType = @type", + sqlHelper.CreateParameter("@type", objectType))) + { + System.Collections.ArrayList tmp = new System.Collections.ArrayList(); - while (dr.Read()) tmp.Add(dr.GetInt("id")); - dr.Close(); + while (dr.Read()) tmp.Add(dr.GetInt("id")); + dr.Close(); - return (int[])tmp.ToArray(typeof(int)); + return (int[])tmp.ToArray(typeof(int)); + } } @@ -203,16 +215,19 @@ namespace umbraco.cms.businesslogic /// public static Guid[] TopMostNodeIds(Guid ObjectType) { - IRecordsReader dr = SqlHelper.ExecuteReader("Select uniqueID from umbracoNode where nodeObjectType = @type And parentId = -1 order by sortOrder", - SqlHelper.CreateParameter("@type", ObjectType)); - System.Collections.ArrayList tmp = new System.Collections.ArrayList(); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader("Select uniqueID from umbracoNode where nodeObjectType = @type And parentId = -1 order by sortOrder", + sqlHelper.CreateParameter("@type", ObjectType))) + { + System.Collections.ArrayList tmp = new System.Collections.ArrayList(); - while (dr.Read()) tmp.Add(dr.GetGuid("uniqueID")); - dr.Close(); + while (dr.Read()) tmp.Add(dr.GetGuid("uniqueID")); + dr.Close(); - Guid[] retval = new Guid[tmp.Count]; - for (int i = 0; i < tmp.Count; i++) retval[i] = (Guid)tmp[i]; - return retval; + Guid[] retval = new Guid[tmp.Count]; + for (int i = 0; i < tmp.Count; i++) retval[i] = (Guid)tmp[i]; + return retval; + } } #endregion @@ -249,18 +264,18 @@ namespace umbraco.cms.businesslogic // Ruben 8/1/2007: I replace this with a parameterized version. // But does anyone know what the 'level++' is supposed to be doing there? // Nothing obviously, since it's a postfix. - - SqlHelper.ExecuteNonQuery("INSERT INTO umbracoNode(trashed, parentID, nodeObjectType, nodeUser, level, path, sortOrder, uniqueID, text, createDate) VALUES(@trashed, @parentID, @nodeObjectType, @nodeUser, @level, @path, @sortOrder, @uniqueID, @text, @createDate)", - SqlHelper.CreateParameter("@trashed", 0), - SqlHelper.CreateParameter("@parentID", parentId), - SqlHelper.CreateParameter("@nodeObjectType", objectType), - SqlHelper.CreateParameter("@nodeUser", userId), - SqlHelper.CreateParameter("@level", level++), - SqlHelper.CreateParameter("@path", path), - SqlHelper.CreateParameter("@sortOrder", sortOrder), - SqlHelper.CreateParameter("@uniqueID", uniqueID), - SqlHelper.CreateParameter("@text", text), - SqlHelper.CreateParameter("@createDate", DateTime.Now)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("INSERT INTO umbracoNode(trashed, parentID, nodeObjectType, nodeUser, level, path, sortOrder, uniqueID, text, createDate) VALUES(@trashed, @parentID, @nodeObjectType, @nodeUser, @level, @path, @sortOrder, @uniqueID, @text, @createDate)", + sqlHelper.CreateParameter("@trashed", 0), + sqlHelper.CreateParameter("@parentID", parentId), + sqlHelper.CreateParameter("@nodeObjectType", objectType), + sqlHelper.CreateParameter("@nodeUser", userId), + sqlHelper.CreateParameter("@level", level++), + sqlHelper.CreateParameter("@path", path), + sqlHelper.CreateParameter("@sortOrder", sortOrder), + sqlHelper.CreateParameter("@uniqueID", uniqueID), + sqlHelper.CreateParameter("@text", text), + sqlHelper.CreateParameter("@createDate", DateTime.Now)); CMSNode retVal = new CMSNode(uniqueID); retVal.Path = path + "," + retVal.Id.ToString(); @@ -283,11 +298,12 @@ namespace umbraco.cms.businesslogic private static int GetNewDocumentSortOrder(int parentId) { var sortOrder = 0; - using (IRecordsReader dr = SqlHelper.ExecuteReader( - "SELECT MAX(sortOrder) AS sortOrder FROM umbracoNode WHERE parentID = @parentID AND nodeObjectType = @GuidForNodesOfTypeDocument", - SqlHelper.CreateParameter("@parentID", parentId), - SqlHelper.CreateParameter("@GuidForNodesOfTypeDocument", Document._objectType) - )) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader( + "SELECT MAX(sortOrder) AS sortOrder FROM umbracoNode WHERE parentID = @parentID AND nodeObjectType = @GuidForNodesOfTypeDocument", + sqlHelper.CreateParameter("@parentID", parentId), + sqlHelper.CreateParameter("@GuidForNodesOfTypeDocument", Document._objectType) + )) { while (dr.Read()) sortOrder = dr.GetInt("sortOrder") + 1; @@ -306,19 +322,18 @@ namespace umbraco.cms.businesslogic /// protected static int[] getUniquesFromObjectTypeAndFirstLetter(Guid objectType, char letter) { - using (IRecordsReader dr = SqlHelper.ExecuteReader("Select id from umbracoNode where nodeObjectType = @objectType AND text like @letter", SqlHelper.CreateParameter("@objectType", objectType), SqlHelper.CreateParameter("@letter", letter.ToString() + "%"))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader("Select id from umbracoNode where nodeObjectType = @objectType AND text like @letter", sqlHelper.CreateParameter("@objectType", objectType), sqlHelper.CreateParameter("@letter", letter.ToString() + "%"))) { List tmp = new List(); while (dr.Read()) tmp.Add(dr.GetInt("id")); return tmp.ToArray(); } } - - + /// - /// Gets the SQL helper. + /// Unused, please do not use /// - /// The SQL helper. [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { @@ -379,13 +394,15 @@ namespace umbraco.cms.businesslogic /// The unique ID. public CMSNode(Guid uniqueID) { - _id = SqlHelper.ExecuteScalar("SELECT id FROM umbracoNode WHERE uniqueID = @uniqueId", SqlHelper.CreateParameter("@uniqueId", uniqueID)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + _id = sqlHelper.ExecuteScalar("SELECT id FROM umbracoNode WHERE uniqueID = @uniqueId", sqlHelper.CreateParameter("@uniqueId", uniqueID)); setupNode(); } public CMSNode(Guid uniqueID, bool noSetup) { - _id = SqlHelper.ExecuteScalar("SELECT id FROM umbracoNode WHERE uniqueID = @uniqueId", SqlHelper.CreateParameter("@uniqueId", uniqueID)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + _id = sqlHelper.ExecuteScalar("SELECT id FROM umbracoNode WHERE uniqueID = @uniqueId", sqlHelper.CreateParameter("@uniqueId", uniqueID)); if (!noSetup) setupNode(); @@ -467,14 +484,17 @@ inner join cmsPreviewXml on cmsPreviewXml.nodeId = umbracoNode.id where trashed = 0 and path like '{0}' order by level,sortOrder"; - string pathExp = childrenOnly ? Path + ",%" : Path; + var pathExp = childrenOnly ? Path + ",%" : Path; - IRecordsReader dr = SqlHelper.ExecuteReader(String.Format(sql, pathExp)); - while (dr.Read()) - nodes.Add(new CMSPreviewNode(dr.GetInt("id"), dr.GetGuid("uniqueID"), dr.GetInt("parentId"), dr.GetShort("level"), dr.GetInt("sortOrder"), dr.GetString("xml"), false)); - dr.Close(); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader(string.Format(sql, pathExp))) + { + while (dr.Read()) + nodes.Add(new CMSPreviewNode(dr.GetInt("id"), dr.GetGuid("uniqueID"), dr.GetInt("parentId"), dr.GetShort("level"), dr.GetInt("sortOrder"), dr.GetString("xml"), false)); + dr.Close(); - return nodes; + return nodes; + } } /// @@ -520,8 +540,8 @@ order by level,sortOrder"; ////removes tag associations (i know the key is set to cascade but do it anyways) //Tag.RemoveTagsFromNode(this.Id); - - SqlHelper.ExecuteNonQuery("DELETE FROM umbracoNode WHERE uniqueID= @uniqueId", SqlHelper.CreateParameter("@uniqueId", _uniqueID)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("DELETE FROM umbracoNode WHERE uniqueID= @uniqueId", sqlHelper.CreateParameter("@uniqueId", _uniqueID)); } /// @@ -536,9 +556,12 @@ order by level,sortOrder"; { if (!_hasChildrenInitialized) { - int tmpChildrenCount = SqlHelper.ExecuteScalar("select count(id) from umbracoNode where ParentId = @id", - SqlHelper.CreateParameter("@id", Id)); - HasChildren = (tmpChildrenCount > 0); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + { + int tmpChildrenCount = sqlHelper.ExecuteScalar("select count(id) from umbracoNode where ParentId = @id", + sqlHelper.CreateParameter("@id", Id)); + HasChildren = (tmpChildrenCount > 0); + } } return _hasChildren; } @@ -560,7 +583,8 @@ order by level,sortOrder"; public virtual IEnumerable GetDescendants() { var descendants = new List(); - using (IRecordsReader dr = SqlHelper.ExecuteReader(string.Format(SqlDescendants, Id))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader(string.Format(SqlDescendants, Id))) { while (dr.Read()) { @@ -586,17 +610,21 @@ order by level,sortOrder"; { if (!_isTrashed.HasValue) { - _isTrashed = Convert.ToBoolean(SqlHelper.ExecuteScalar("SELECT trashed FROM umbracoNode where id=@id", - SqlHelper.CreateParameter("@id", this.Id))); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + { + const string query = "SELECT trashed FROM umbracoNode where id=@id"; + _isTrashed = Convert.ToBoolean(sqlHelper.ExecuteScalar(query, sqlHelper.CreateParameter("@id", this.Id))); + } } return _isTrashed.Value; } set { _isTrashed = value; - SqlHelper.ExecuteNonQuery("update umbracoNode set trashed = @trashed where id = @id", - SqlHelper.CreateParameter("@trashed", value), - SqlHelper.CreateParameter("@id", this.Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update umbracoNode set trashed = @trashed where id = @id", + sqlHelper.CreateParameter("@trashed", value), + sqlHelper.CreateParameter("@id", this.Id)); } } @@ -610,7 +638,8 @@ order by level,sortOrder"; set { _sortOrder = value; - SqlHelper.ExecuteNonQuery("update umbracoNode set sortOrder = '" + value + "' where id = " + this.Id.ToString()); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update umbracoNode set sortOrder = '" + value + "' where id = " + this.Id); if (Entity != null) Entity.SortOrder = value; @@ -627,7 +656,8 @@ order by level,sortOrder"; set { _createDate = value; - SqlHelper.ExecuteNonQuery("update umbracoNode set createDate = @createDate where id = " + this.Id.ToString(), SqlHelper.CreateParameter("@createDate", _createDate)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update umbracoNode set createDate = @createDate where id = " + this.Id, sqlHelper.CreateParameter("@createDate", _createDate)); } } @@ -680,7 +710,8 @@ order by level,sortOrder"; set { _parentid = value.Id; - SqlHelper.ExecuteNonQuery("update umbracoNode set parentId = " + value.Id + " where id = " + this.Id.ToString()); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update umbracoNode set parentId = " + value.Id + " where id = " + this.Id.ToString()); if (Entity != null) Entity.ParentId = value.Id; @@ -700,7 +731,8 @@ order by level,sortOrder"; set { _path = value; - SqlHelper.ExecuteNonQuery("update umbracoNode set path = '" + _path + "' where id = " + this.Id.ToString()); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update umbracoNode set path = '" + _path + "' where id = " + this.Id.ToString()); if (Entity != null) Entity.Path = value; @@ -718,7 +750,8 @@ order by level,sortOrder"; set { _level = value; - SqlHelper.ExecuteNonQuery("update umbracoNode set level = " + _level.ToString() + " where id = " + this.Id.ToString()); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update umbracoNode set level = " + _level.ToString() + " where id = " + this.Id.ToString()); if (Entity != null) Entity.Level = value; @@ -747,8 +780,9 @@ order by level,sortOrder"; { get { - return SqlHelper.ExecuteScalar("SELECT COUNT(*) FROM umbracoNode where ParentID = @parentId", - SqlHelper.CreateParameter("@parentId", this.Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + return sqlHelper.ExecuteScalar("SELECT COUNT(*) FROM umbracoNode where ParentID = @parentId", + sqlHelper.CreateParameter("@parentId", this.Id)); } } @@ -761,9 +795,10 @@ order by level,sortOrder"; get { System.Collections.ArrayList tmp = new System.Collections.ArrayList(); - using (IRecordsReader dr = SqlHelper.ExecuteReader("SELECT id, createDate, trashed, parentId, nodeObjectType, nodeUser, level, path, sortOrder, uniqueID, text FROM umbracoNode WHERE ParentID = @ParentID AND nodeObjectType = @type order by sortOrder", - SqlHelper.CreateParameter("@type", this.nodeObjectType), - SqlHelper.CreateParameter("ParentID", this.Id))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader("SELECT id, createDate, trashed, parentId, nodeObjectType, nodeUser, level, path, sortOrder, uniqueID, text FROM umbracoNode WHERE ParentID = @ParentID AND nodeObjectType = @type order by sortOrder", + sqlHelper.CreateParameter("@type", this.nodeObjectType), + sqlHelper.CreateParameter("ParentID", this.Id))) { while (dr.Read()) { @@ -791,12 +826,12 @@ order by level,sortOrder"; get { System.Collections.ArrayList tmp = new System.Collections.ArrayList(); - IRecordsReader dr = SqlHelper.ExecuteReader("select id from umbracoNode where ParentID = " + this.Id + " order by sortOrder"); - - while (dr.Read()) - tmp.Add(dr.GetInt("Id")); - - dr.Close(); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader("select id from umbracoNode where ParentID = " + this.Id + " order by sortOrder")) + { + while (dr.Read()) + tmp.Add(dr.GetInt("Id")); + } CMSNode[] retval = new CMSNode[tmp.Count]; @@ -806,7 +841,7 @@ order by level,sortOrder"; return retval; } } - + #region IconI members // Unique identifier of the given node @@ -827,9 +862,10 @@ order by level,sortOrder"; set { _text = value; - SqlHelper.ExecuteNonQuery("UPDATE umbracoNode SET text = @text WHERE id = @id", - SqlHelper.CreateParameter("@text", value.Trim()), - SqlHelper.CreateParameter("@id", this.Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("UPDATE umbracoNode SET text = @text WHERE id = @id", + sqlHelper.CreateParameter("@text", value.Trim()), + sqlHelper.CreateParameter("@id", this.Id)); if (Entity != null) Entity.Name = value; @@ -897,8 +933,9 @@ order by level,sortOrder"; /// protected virtual void setupNode() { - using (IRecordsReader dr = SqlHelper.ExecuteReader(SqlSingle, - SqlHelper.CreateParameter("@id", this.Id))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader(SqlSingle, + sqlHelper.CreateParameter("@id", this.Id))) { if (dr.Read()) { @@ -950,10 +987,11 @@ order by level,sortOrder"; { XmlDocument xmlDoc = new XmlDocument(); - using (XmlReader xmlRdr = SqlHelper.ExecuteXmlReader( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (XmlReader xmlRdr = sqlHelper.ExecuteXmlReader( "select xml from cmsPreviewXml where nodeID = @nodeId and versionId = @versionId", - SqlHelper.CreateParameter("@nodeId", Id), - SqlHelper.CreateParameter("@versionId", version))) + sqlHelper.CreateParameter("@nodeId", Id), + sqlHelper.CreateParameter("@versionId", version))) { xmlDoc.Load(xmlRdr); } @@ -963,8 +1001,9 @@ order by level,sortOrder"; protected internal virtual bool PreviewExists(Guid versionId) { - return (SqlHelper.ExecuteScalar("SELECT COUNT(nodeId) FROM cmsPreviewXml WHERE nodeId=@nodeId and versionId = @versionId", - SqlHelper.CreateParameter("@nodeId", Id), SqlHelper.CreateParameter("@versionId", versionId)) != 0); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + return sqlHelper.ExecuteScalar("SELECT COUNT(nodeId) FROM cmsPreviewXml WHERE nodeId=@nodeId and versionId = @versionId", + sqlHelper.CreateParameter("@nodeId", Id), sqlHelper.CreateParameter("@versionId", versionId)) != 0; } @@ -976,13 +1015,15 @@ order by level,sortOrder"; [MethodImpl(MethodImplOptions.Synchronized)] protected void SavePreviewXml(XmlNode x, Guid versionId) { - string sql = PreviewExists(versionId) ? "UPDATE cmsPreviewXml SET xml = @xml, timestamp = @timestamp WHERE nodeId=@nodeId AND versionId = @versionId" + var sql = PreviewExists(versionId) ? "UPDATE cmsPreviewXml SET xml = @xml, timestamp = @timestamp WHERE nodeId=@nodeId AND versionId = @versionId" : "INSERT INTO cmsPreviewXml(nodeId, versionId, timestamp, xml) VALUES (@nodeId, @versionId, @timestamp, @xml)"; - SqlHelper.ExecuteNonQuery(sql, - SqlHelper.CreateParameter("@nodeId", Id), - SqlHelper.CreateParameter("@versionId", versionId), - SqlHelper.CreateParameter("@timestamp", DateTime.Now), - SqlHelper.CreateParameter("@xml", x.OuterXml)); + + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery(sql, + sqlHelper.CreateParameter("@nodeId", Id), + sqlHelper.CreateParameter("@versionId", versionId), + sqlHelper.CreateParameter("@timestamp", DateTime.Now), + sqlHelper.CreateParameter("@xml", x.OuterXml)); } protected void PopulateCMSNodeFromReader(IRecordsReader dr) diff --git a/src/umbraco.cms/businesslogic/Content.cs b/src/umbraco.cms/businesslogic/Content.cs index 73539eeffd..b2f225f0d2 100644 --- a/src/umbraco.cms/businesslogic/Content.cs +++ b/src/umbraco.cms/businesslogic/Content.cs @@ -9,6 +9,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.EntityBase; using umbraco.DataLayer; using System.Runtime.CompilerServices; +using umbraco.BusinessLogic; using Umbraco.Core.DI; using Umbraco.Core.Events; using Umbraco.Core.Persistence; @@ -129,23 +130,27 @@ namespace umbraco.cms.businesslogic { get { - if (_contentType == null) + using (var sqlHelper = LegacySqlHelper.SqlHelper) { - object o = SqlHelper.ExecuteScalar( - "Select ContentType from cmsContent where nodeId=@nodeid", - SqlHelper.CreateParameter("@nodeid", this.Id)); - if (o == null) - return null; - int contentTypeId; - if (int.TryParse(o.ToString(), out contentTypeId) == false) - return null; - try + if (_contentType == null) { - _contentType = new ContentType(contentTypeId); - } - catch - { - return null; + object o = sqlHelper.ExecuteScalar( + "Select ContentType from cmsContent where nodeId=@nodeid", + sqlHelper.CreateParameter("@nodeid", this.Id)); + if (o == null) + return null; + int contentTypeId; + if (int.TryParse(o.ToString(), out contentTypeId) == false) + return null; + + try + { + _contentType = new ContentType(contentTypeId); + } + catch + { + return null; + } } } return _contentType; @@ -218,7 +223,8 @@ namespace umbraco.cms.businesslogic string sql = "Select versionId from cmsContentVersion where contentID = " + this.Id + " order by id desc "; - using (IRecordsReader dr = SqlHelper.ExecuteReader(sql)) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader(sql)) { if (!dr.Read()) _version = Guid.Empty; @@ -245,6 +251,7 @@ namespace umbraco.cms.businesslogic } /// + /// Deletes the current Content object, must be overridden in the child class. /// public override void delete() @@ -256,10 +263,12 @@ namespace umbraco.cms.businesslogic OnDeletedContent(new ContentDeleteEventArgs(Current.DatabaseContext.Database, Id)); // Delete version history - SqlHelper.ExecuteNonQuery("Delete from cmsContentVersion where ContentId = " + this.Id); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Delete from cmsContentVersion where ContentId = " + this.Id); // Delete Contentspecific data () - SqlHelper.ExecuteNonQuery("Delete from cmsContent where NodeId = " + this.Id); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Delete from cmsContent where NodeId = " + this.Id); // Delete Nodeinformation!! base.delete(); @@ -278,7 +287,7 @@ namespace umbraco.cms.businesslogic { //we know that there is one ctor arg and it is a GUID since we are only calling the base // ctor with this overload for one purpose. - var version = (Guid) ctorArgs[0]; + var version = (Guid)ctorArgs[0]; _version = version; base.PreSetupNode(ctorArgs); @@ -303,6 +312,8 @@ namespace umbraco.cms.businesslogic _contentTypeIcon = InitContentTypeIcon; } + + #endregion #region Private Methods @@ -314,7 +325,8 @@ namespace umbraco.cms.businesslogic /// protected void deleteAllProperties() { - SqlHelper.ExecuteNonQuery("Delete from cmsPropertyData where contentNodeId = @nodeId", SqlHelper.CreateParameter("@nodeId", this.Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Delete from cmsPropertyData where contentNodeId = @nodeId", sqlHelper.CreateParameter("@nodeId", this.Id)); } #endregion @@ -341,7 +353,6 @@ namespace umbraco.cms.businesslogic { DeletedContent?.Invoke(this, args); } - #endregion } } \ No newline at end of file diff --git a/src/umbraco.cms/businesslogic/ContentType.cs b/src/umbraco.cms/businesslogic/ContentType.cs index a062ca91cc..e9658002a6 100644 --- a/src/umbraco.cms/businesslogic/ContentType.cs +++ b/src/umbraco.cms/businesslogic/ContentType.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Threading; using System.Runtime.CompilerServices; using System.Linq; +using umbraco.BusinessLogic; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Models; @@ -182,7 +183,8 @@ namespace umbraco.cms.businesslogic internal static void Create(int nodeId, string alias, string iconUrl, bool formatAlias) { - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "Insert into cmsContentType (nodeId,alias,icon) values (" + nodeId + ",'" + (formatAlias ? alias.ToSafeAliasWithForcingCheck() : alias) + @@ -198,8 +200,9 @@ namespace umbraco.cms.businesslogic /// public static ContentType GetByAlias(string Alias) { - return new ContentType(SqlHelper.ExecuteScalar("SELECT nodeid FROM cmsContentType WHERE alias = @alias", - SqlHelper.CreateParameter("@alias", Alias))); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + return new ContentType(sqlHelper.ExecuteScalar("SELECT nodeid FROM cmsContentType WHERE alias = @alias", + sqlHelper.CreateParameter("@alias", Alias))); } /// @@ -209,10 +212,13 @@ namespace umbraco.cms.businesslogic /// The Id of the Tab on which the PropertyType is placed public static int getTabIdFromPropertyType(PropertyType pt) { - object tmp = SqlHelper.ExecuteScalar("Select propertyTypeGroupId from cmsPropertyType where id = " + pt.Id.ToString()); - if (tmp == DBNull.Value) - return 0; - return int.Parse(tmp.ToString()); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + { + object tmp = sqlHelper.ExecuteScalar("Select propertyTypeGroupId from cmsPropertyType where id = " + pt.Id.ToString()); + if (tmp == DBNull.Value) + return 0; + return int.Parse(tmp.ToString()); + } } #endregion @@ -256,16 +262,16 @@ namespace umbraco.cms.businesslogic { var ids = new List(); //get all the content item ids of the current content type - using (var dr = SqlHelper.ExecuteReader(@"SELECT DISTINCT cmsContent.nodeId FROM cmsContent + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader(@"SELECT DISTINCT cmsContent.nodeId FROM cmsContent INNER JOIN cmsContentType ON cmsContent.contentType = cmsContentType.nodeId WHERE cmsContentType.nodeId = @nodeId", - SqlHelper.CreateParameter("@nodeId", this.Id))) + sqlHelper.CreateParameter("@nodeId", this.Id))) { while (dr.Read()) { ids.Add(dr.GetInt("nodeId")); } - dr.Close(); } return ids; } @@ -278,11 +284,12 @@ namespace umbraco.cms.businesslogic internal virtual void ClearXmlStructuresForContent() { //Remove all items from the cmsContentXml table that are of this current content type - SqlHelper.ExecuteNonQuery(@"DELETE FROM cmsContentXml WHERE nodeId IN + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery(@"DELETE FROM cmsContentXml WHERE nodeId IN (SELECT DISTINCT cmsContent.nodeId FROM cmsContent INNER JOIN cmsContentType ON cmsContent.contentType = cmsContentType.nodeId WHERE cmsContentType.nodeId = @nodeId)", - SqlHelper.CreateParameter("@nodeId", this.Id)); + sqlHelper.CreateParameter("@nodeId", this.Id)); } #endregion @@ -308,9 +315,10 @@ namespace umbraco.cms.businesslogic //Note that this is currently only done to support both DocumentType and MediaType, which use the new api and MemberType that doesn't. if (ContentTypeItem == null) { - SqlHelper.ExecuteNonQuery("update cmsContentType set alias = @alias where nodeId = @id", - SqlHelper.CreateParameter("@alias", _alias), - SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update cmsContentType set alias = @alias where nodeId = @id", + sqlHelper.CreateParameter("@alias", _alias), + sqlHelper.CreateParameter("@id", Id)); } else { @@ -337,7 +345,8 @@ namespace umbraco.cms.businesslogic //Note that this is currently only done to support both DocumentType and MediaType, which use the new api and MemberType that doesn't. if (ContentTypeItem == null) { - SqlHelper.ExecuteNonQuery("update cmsContentType set icon='" + value + "' where nodeid = " + Id); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update cmsContentType set icon='" + value + "' where nodeid = " + Id); } else { @@ -364,10 +373,11 @@ namespace umbraco.cms.businesslogic //Note that this is currently only done to support both DocumentType and MediaType, which use the new api and MemberType that doesn't. if (ContentTypeItem == null) { - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "update cmsContentType set isContainer = @isContainer where nodeId = @id", - SqlHelper.CreateParameter("@isContainer", value), - SqlHelper.CreateParameter("@id", Id)); + sqlHelper.CreateParameter("@isContainer", value), + sqlHelper.CreateParameter("@id", Id)); } else { @@ -390,10 +400,11 @@ namespace umbraco.cms.businesslogic //Note that this is currently only done to support both DocumentType and MediaType, which use the new api and MemberType that doesn't. if (ContentTypeItem == null) { - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "update cmsContentType set allowAtRoot = @allowAtRoot where nodeId = @id", - SqlHelper.CreateParameter("@allowAtRoot", value), - SqlHelper.CreateParameter("@id", Id)); + sqlHelper.CreateParameter("@allowAtRoot", value), + sqlHelper.CreateParameter("@id", Id)); } else { @@ -437,10 +448,11 @@ namespace umbraco.cms.businesslogic //Note that this is currently only done to support both DocumentType and MediaType, which use the new api and MemberType that doesn't. if (ContentTypeItem == null) { - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "update cmsContentType set description = @description where nodeId = @id", - SqlHelper.CreateParameter("@description", value), - SqlHelper.CreateParameter("@id", Id)); + sqlHelper.CreateParameter("@description", value), + sqlHelper.CreateParameter("@id", Id)); } else { @@ -466,10 +478,11 @@ namespace umbraco.cms.businesslogic //Note that this is currently only done to support both DocumentType and MediaType, which use the new api and MemberType that doesn't. if (ContentTypeItem == null) { - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "update cmsContentType set thumbnail = @thumbnail where nodeId = @id", - SqlHelper.CreateParameter("@thumbnail", value), - SqlHelper.CreateParameter("@id", Id)); + sqlHelper.CreateParameter("@thumbnail", value), + sqlHelper.CreateParameter("@id", Id)); } else { @@ -544,10 +557,10 @@ namespace umbraco.cms.businesslogic //its own + inherited property types, which is wrong. Once we are able to fully switch to the new api //this should no longer be a problem as the composition always contains a correct list of property types. var result = new Dictionary(); - using (IRecordsReader dr = - SqlHelper.ExecuteReader( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader( "select id from cmsPropertyType where contentTypeId = @ctId order by sortOrder", - SqlHelper.CreateParameter("@ctId", Id))) + sqlHelper.CreateParameter("@ctId", Id))) { while (dr.Read()) { @@ -594,11 +607,10 @@ namespace umbraco.cms.businesslogic if (ContentTypeItem == null) { //TODO Make this recursive, so it looks up Masters of the Master ContentType - using ( - var dr = - SqlHelper.ExecuteReader( - @"SELECT parentContentTypeId FROM cmsContentType2ContentType WHERE childContentTypeId = @id", - SqlHelper.CreateParameter("@id", Id))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader( + @"SELECT parentContentTypeId FROM cmsContentType2ContentType WHERE childContentTypeId = @id", + sqlHelper.CreateParameter("@id", Id))) { while (dr.Read()) { @@ -668,10 +680,11 @@ namespace umbraco.cms.businesslogic { if (ContentTypeItem == null) { - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "INSERT INTO [cmsContentType2ContentType] (parentContentTypeId, childContentTypeId) VALUES (@parentContentTypeId, @childContentTypeId)", - SqlHelper.CreateParameter("@parentContentTypeId", parentContentTypeId), - SqlHelper.CreateParameter("@childContentTypeId", Id)); + sqlHelper.CreateParameter("@parentContentTypeId", parentContentTypeId), + sqlHelper.CreateParameter("@childContentTypeId", Id)); MasterContentTypes.Add(parentContentTypeId); } @@ -685,15 +698,17 @@ namespace umbraco.cms.businesslogic public bool IsMaster() { - return SqlHelper.ExecuteScalar("select count(*) from cmsContentType2ContentType where parentContentTypeId = @parentContentTypeId", - SqlHelper.CreateParameter("@parentContentTypeId", this.Id)) > 0; + using (var sqlHelper = LegacySqlHelper.SqlHelper) + return sqlHelper.ExecuteScalar("select count(*) from cmsContentType2ContentType where parentContentTypeId = @parentContentTypeId", + sqlHelper.CreateParameter("@parentContentTypeId", this.Id)) > 0; } public IEnumerable GetChildTypes() { var cts = new List(); - using (var dr = SqlHelper.ExecuteReader(@"SELECT childContentTypeId FROM cmsContentType2ContentType WHERE parentContentTypeId = @parentContentTypeId", - SqlHelper.CreateParameter("@parentContentTypeId", Id))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader(@"SELECT childContentTypeId FROM cmsContentType2ContentType WHERE parentContentTypeId = @parentContentTypeId", + sqlHelper.CreateParameter("@parentContentTypeId", Id))) { while (dr.Read()) { @@ -720,10 +735,11 @@ namespace umbraco.cms.businesslogic RemoveMasterPropertyTypeData(contentTypeToRemove, this); - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "DELETE FROM [cmsContentType2ContentType] WHERE parentContentTypeId = @parentContentTypeId AND childContentTypeId = @childContentTypeId", - SqlHelper.CreateParameter("@parentContentTypeId", parentContentTypeId), - SqlHelper.CreateParameter("@childContentTypeId", Id)); + sqlHelper.CreateParameter("@parentContentTypeId", parentContentTypeId), + sqlHelper.CreateParameter("@childContentTypeId", Id)); MasterContentTypes.Remove(parentContentTypeId); } } @@ -736,13 +752,14 @@ namespace umbraco.cms.businesslogic { // before we can remove a parent content type we need to remove all data that // relates to property types - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( @"delete cmsPropertyData from cmsPropertyData inner join cmsContent on cmsContent.nodeId = cmsPropertyData.contentNodeId where cmsPropertyData.propertyTypeId = @propertyType and contentType = @contentType", - SqlHelper.CreateParameter("@contentType", currentContentType.Id), - SqlHelper.CreateParameter("@propertyType", pt.Id)); + sqlHelper.CreateParameter("@contentType", currentContentType.Id), + sqlHelper.CreateParameter("@propertyType", pt.Id)); } } @@ -796,7 +813,8 @@ namespace umbraco.cms.businesslogic if (_allowedChildContentTypeIDs == null) { _allowedChildContentTypeIDs = new List(); - using (var dr = SqlHelper.ExecuteReader("Select AllowedId from cmsContentTypeAllowedContentType where id=" + Id)) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader("Select AllowedId from cmsContentTypeAllowedContentType where id=" + Id)) { while (dr.Read()) { @@ -815,11 +833,13 @@ namespace umbraco.cms.businesslogic //Note that this is currently only done to support both DocumentType and MediaType, which use the new api and MemberType that doesn't. if (ContentTypeItem == null) { - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "delete from cmsContentTypeAllowedContentType where id=" + Id); foreach (int i in value) { - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "insert into cmsContentTypeAllowedContentType (id,AllowedId) values (" + Id + "," + i + ")"); } @@ -864,8 +884,8 @@ namespace umbraco.cms.businesslogic { var contentTypes = new List(); - using (var dr = - SqlHelper.ExecuteReader(m_SQLOptimizedGetAll.Trim(), SqlHelper.CreateParameter("@nodeObjectType", nodeObjectType))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader(m_SQLOptimizedGetAll.Trim(), sqlHelper.CreateParameter("@nodeObjectType", nodeObjectType))) { while (dr.Read()) { @@ -1025,12 +1045,14 @@ namespace umbraco.cms.businesslogic } //need to delete the allowed relationships between content types - SqlHelper.ExecuteNonQuery("delete from cmsContentTypeAllowedContentType where AllowedId=@allowedId or Id=@id", - SqlHelper.CreateParameter("@allowedId", Id), - SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("delete from cmsContentTypeAllowedContentType where AllowedId=@allowedId or Id=@id", + sqlHelper.CreateParameter("@allowedId", Id), + sqlHelper.CreateParameter("@id", Id)); // delete contenttype entrance - SqlHelper.ExecuteNonQuery("Delete from cmsContentType where NodeId = " + Id); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Delete from cmsContentType where NodeId = " + Id); // delete CMSNode entrance base.delete(); @@ -1103,7 +1125,8 @@ namespace umbraco.cms.businesslogic } // TODO: Load master content types - using (var dr = SqlHelper.ExecuteReader("Select allowAtRoot, isContainer, Alias,icon,thumbnail,description from cmsContentType where nodeid=" + Id) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader("Select allowAtRoot, isContainer, Alias,icon,thumbnail,description from cmsContentType where nodeid=" + Id) ) { if (dr.Read()) @@ -1448,10 +1471,12 @@ namespace umbraco.cms.businesslogic /// public void Delete() { - SqlHelper.ExecuteNonQuery("update cmsPropertyType set propertyTypeGroupId = NULL where propertyTypeGroupId = @id", - SqlHelper.CreateParameter("@id", Id)); - SqlHelper.ExecuteNonQuery("delete from cmsPropertyTypeGroup where id = @id", - SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update cmsPropertyType set propertyTypeGroupId = NULL where propertyTypeGroupId = @id", + sqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("delete from cmsPropertyTypeGroup where id = @id", + sqlHelper.CreateParameter("@id", Id)); } /// @@ -1463,19 +1488,22 @@ namespace umbraco.cms.businesslogic { try { - var tempCaption = SqlHelper.ExecuteScalar("Select text from cmsPropertyTypeGroup where id = " + id.ToString()); - if (!tempCaption.StartsWith("#")) - return tempCaption; - var lang = Language.GetByCultureCode(Thread.CurrentThread.CurrentCulture.Name); - if (lang != null) + using (var sqlHelper = LegacySqlHelper.SqlHelper) { + var tempCaption = sqlHelper.ExecuteScalar("Select text from cmsPropertyTypeGroup where id = " + id.ToString()); + if (!tempCaption.StartsWith("#")) + return tempCaption; + var lang = Language.GetByCultureCode(Thread.CurrentThread.CurrentCulture.Name); + if (lang != null) + { if (Current.Services.LocalizationService.DictionaryItemExists(tempCaption.Substring(1, tempCaption.Length - 1))) { var di = Current.Services.LocalizationService.GetDictionaryItemByKey(tempCaption.Substring(1, tempCaption.Length - 1)); return di.GetTranslatedValue(lang.id); } + } + return "[" + tempCaption + "]"; } - return "[" + tempCaption + "]"; } catch { @@ -1492,8 +1520,11 @@ namespace umbraco.cms.businesslogic { try { - var tempCaption = SqlHelper.ExecuteScalar("Select text from cmsPropertyTypeGroup where id = " + id); - return tempCaption; + using (var sqlHelper = LegacySqlHelper.SqlHelper) + { + var tempCaption = sqlHelper.ExecuteScalar("Select text from cmsPropertyTypeGroup where id = " + id); + return tempCaption; + } } catch { @@ -1515,13 +1546,15 @@ namespace umbraco.cms.businesslogic { if (!_sortOrder.HasValue) { - _sortOrder = SqlHelper.ExecuteScalar("select sortOrder from cmsPropertyTypeGroup where id = " + _id); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + _sortOrder = sqlHelper.ExecuteScalar("select sortOrder from cmsPropertyTypeGroup where id = " + _id); } return _sortOrder.Value; } set { - SqlHelper.ExecuteNonQuery("update cmsPropertyTypeGroup set sortOrder = " + value + " where id =" + _id); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("update cmsPropertyTypeGroup set sortOrder = " + value + " where id =" + _id); } } diff --git a/src/umbraco.cms/businesslogic/Packager/Package.cs b/src/umbraco.cms/businesslogic/Packager/Package.cs index 0ab43a3f13..6eea161ad9 100644 --- a/src/umbraco.cms/businesslogic/Packager/Package.cs +++ b/src/umbraco.cms/businesslogic/Packager/Package.cs @@ -13,6 +13,10 @@ namespace umbraco.cms.businesslogic.packager [EditorBrowsable(EditorBrowsableState.Never)] public class Package { + /// + /// Unused, please do not use + /// + [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { get { return LegacySqlHelper.SqlHelper; } @@ -35,73 +39,79 @@ namespace umbraco.cms.businesslogic.packager public Package(Guid Id) { - int installStatusId = SqlHelper.ExecuteScalar( - "select id from umbracoInstalledPackages where package = @package and upgradeId = 0", - SqlHelper.CreateParameter("@package", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + { + int installStatusId = sqlHelper.ExecuteScalar( + "select id from umbracoInstalledPackages where package = @package and upgradeId = 0", + sqlHelper.CreateParameter("@package", Id)); - if (installStatusId > 0) - Initialize(installStatusId); - else - throw new ArgumentException("Package with id '" + Id.ToString() + "' is not installed"); + if (installStatusId > 0) + Initialize(installStatusId); + else + throw new ArgumentException("Package with id '" + Id.ToString() + "' is not installed"); + } } private void Initialize(int id) { - - IRecordsReader dr = - SqlHelper.ExecuteReader( - "select id, uninstalled, upgradeId, installDate, userId, package, versionMajor, versionMinor, versionPatch from umbracoInstalledPackages where id = @id", - SqlHelper.CreateParameter("@id", id)); - - if (dr.Read()) - { - Id = id; - Uninstalled = dr.GetBoolean("uninstalled"); - UpgradeId = dr.GetInt("upgradeId"); - InstallDate = dr.GetDateTime("installDate"); - User = Current.Services.UserService.GetUserById(dr.GetInt("userId")); - PackageId = dr.GetGuid("package"); - VersionMajor = dr.GetInt("versionMajor"); - VersionMinor = dr.GetInt("versionMinor"); - VersionPatch = dr.GetInt("versionPatch"); + using (var sqlHelper = LegacySqlHelper.SqlHelper) { + using (IRecordsReader dr = + sqlHelper.ExecuteReader( + "select id, uninstalled, upgradeId, installDate, userId, package, versionMajor, versionMinor, versionPatch from umbracoInstalledPackages where id = @id", + sqlHelper.CreateParameter("@id", id))) + { + if (dr.Read()) + { + Id = id; + Uninstalled = dr.GetBoolean("uninstalled"); + UpgradeId = dr.GetInt("upgradeId"); + InstallDate = dr.GetDateTime("installDate"); + User = Current.Services.UserService.GetUserById(dr.GetInt("userId")); + PackageId = dr.GetGuid("package"); + VersionMajor = dr.GetInt("versionMajor"); + VersionMinor = dr.GetInt("versionMinor"); + VersionPatch = dr.GetInt("versionPatch"); + } + } } - dr.Close(); } [MethodImpl(MethodImplOptions.Synchronized)] public void Save() { - - IParameter[] values = { - SqlHelper.CreateParameter("@uninstalled", Uninstalled), - SqlHelper.CreateParameter("@upgradeId", UpgradeId), - SqlHelper.CreateParameter("@installDate", InstallDate), - SqlHelper.CreateParameter("@userId", User.Id), - SqlHelper.CreateParameter("@versionMajor", VersionMajor), - SqlHelper.CreateParameter("@versionMinor", VersionMinor), - SqlHelper.CreateParameter("@versionPatch", VersionPatch), - SqlHelper.CreateParameter("@id", Id) - }; - - // check if package status exists - if (Id == 0) + using (var sqlHelper = LegacySqlHelper.SqlHelper) { - // The method is synchronized - SqlHelper.ExecuteNonQuery("INSERT INTO umbracoInstalledPackages (uninstalled, upgradeId, installDate, userId, versionMajor, versionMinor, versionPatch) VALUES (@uninstalled, @upgradeId, @installDate, @userId, @versionMajor, @versionMinor, @versionPatch)", values); - Id = SqlHelper.ExecuteScalar("SELECT MAX(id) FROM umbracoInstalledPackages"); - } + IParameter[] values = { + sqlHelper.CreateParameter("@uninstalled", Uninstalled), + sqlHelper.CreateParameter("@upgradeId", UpgradeId), + sqlHelper.CreateParameter("@installDate", InstallDate), + sqlHelper.CreateParameter("@userId", User.Id), + sqlHelper.CreateParameter("@versionMajor", VersionMajor), + sqlHelper.CreateParameter("@versionMinor", VersionMinor), + sqlHelper.CreateParameter("@versionPatch", VersionPatch), + sqlHelper.CreateParameter("@id", Id) + }; - SqlHelper.ExecuteNonQuery( - "update umbracoInstalledPackages set " + - "uninstalled = @uninstalled, " + - "upgradeId = @upgradeId, " + - "installDate = @installDate, " + - "userId = @userId, " + - "versionMajor = @versionMajor, " + - "versionMinor = @versionMinor, " + - "versionPatch = @versionPatch " + - "where id = @id", - values); + // check if package status exists + if (Id == 0) + { + // The method is synchronized + sqlHelper.ExecuteNonQuery("INSERT INTO umbracoInstalledPackages (uninstalled, upgradeId, installDate, userId, versionMajor, versionMinor, versionPatch) VALUES (@uninstalled, @upgradeId, @installDate, @userId, @versionMajor, @versionMinor, @versionPatch)", values); + Id = sqlHelper.ExecuteScalar("SELECT MAX(id) FROM umbracoInstalledPackages"); + } + + sqlHelper.ExecuteNonQuery( + "update umbracoInstalledPackages set " + + "uninstalled = @uninstalled, " + + "upgradeId = @upgradeId, " + + "installDate = @installDate, " + + "userId = @userId, " + + "versionMajor = @versionMajor, " + + "versionMinor = @versionMinor, " + + "versionPatch = @versionPatch " + + "where id = @id", + values); + } } public bool Uninstalled { get; set; } diff --git a/src/umbraco.cms/businesslogic/language/Item.cs b/src/umbraco.cms/businesslogic/language/Item.cs index 6fb0e4b9e5..8ebd9e682c 100644 --- a/src/umbraco.cms/businesslogic/language/Item.cs +++ b/src/umbraco.cms/businesslogic/language/Item.cs @@ -21,11 +21,9 @@ namespace umbraco.cms.businesslogic.language [Obsolete("This class is no longer used, nor should it ever be used, it will be removed from the codebase in future versions")] public class Item { - /// - /// Gets the SQL helper. + /// Unused, please do not use /// - /// The SQL helper. [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { diff --git a/src/umbraco.cms/businesslogic/language/Language.cs b/src/umbraco.cms/businesslogic/language/Language.cs index 34f4ebeaf2..a4bc14e26e 100644 --- a/src/umbraco.cms/businesslogic/language/Language.cs +++ b/src/umbraco.cms/businesslogic/language/Language.cs @@ -37,9 +37,8 @@ namespace umbraco.cms.businesslogic.language #region Constants and static members /// - /// Gets the SQL helper. + /// Unused, please do not use /// - /// The SQL helper. [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { diff --git a/src/umbraco.cms/businesslogic/macro/Macro.cs b/src/umbraco.cms/businesslogic/macro/Macro.cs index d441d4c00e..a3f91e17a6 100644 --- a/src/umbraco.cms/businesslogic/macro/Macro.cs +++ b/src/umbraco.cms/businesslogic/macro/Macro.cs @@ -33,7 +33,11 @@ namespace umbraco.cms.businesslogic.macro { //initialize empty model internal IMacro MacroEntity = new Umbraco.Core.Models.Macro(); - + + /// + /// Unused, please do not use + /// + [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { get { return LegacySqlHelper.SqlHelper; } diff --git a/src/umbraco.cms/businesslogic/macro/MacroProperty.cs b/src/umbraco.cms/businesslogic/macro/MacroProperty.cs index 6315460684..7b5685a96f 100644 --- a/src/umbraco.cms/businesslogic/macro/MacroProperty.cs +++ b/src/umbraco.cms/businesslogic/macro/MacroProperty.cs @@ -23,6 +23,10 @@ namespace umbraco.cms.businesslogic.macro [Obsolete("This is no longer used, use the IMacroService and related models instead")] public class MacroProperty { + /// + /// Unused, please do not use + /// + [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { get { return LegacySqlHelper.SqlHelper; } @@ -104,7 +108,8 @@ namespace umbraco.cms.businesslogic.macro private void Setup() { - using (var dr = SqlHelper.ExecuteReader("select macro, editorAlias, macroPropertySortOrder, macroPropertyAlias, macroPropertyName from cmsMacroProperty where id = @id", SqlHelper.CreateParameter("@id", Id))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader("select macro, editorAlias, macroPropertySortOrder, macroPropertyAlias, macroPropertyName from cmsMacroProperty where id = @id", sqlHelper.CreateParameter("@id", Id))) { if (dr.Read()) { @@ -126,7 +131,8 @@ namespace umbraco.cms.businesslogic.macro /// public void Delete() { - SqlHelper.ExecuteNonQuery("delete from cmsMacroProperty where id = @id", SqlHelper.CreateParameter("@id", this.Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("delete from cmsMacroProperty where id = @id", sqlHelper.CreateParameter("@id", this.Id)); } public void Save() @@ -135,19 +141,19 @@ namespace umbraco.cms.businesslogic.macro { MacroProperty mp = MakeNew(Macro, Alias, Name, ParameterEditorAlias); Id = mp.Id; - } else { - SqlHelper.ExecuteNonQuery("UPDATE cmsMacroProperty set macro = @macro, " + + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("UPDATE cmsMacroProperty set macro = @macro, " + "macropropertyAlias = @alias, macroPropertyName = @name, " + "editorAlias = @editorAlias, macroPropertySortOrder = @so WHERE id = @id", - SqlHelper.CreateParameter("@id", Id), - SqlHelper.CreateParameter("@macro", Macro.Id), - SqlHelper.CreateParameter("@alias", Alias), - SqlHelper.CreateParameter("@name", Name), - SqlHelper.CreateParameter("@editorAlias", ParameterEditorAlias), - SqlHelper.CreateParameter("@so", SortOrder)); + sqlHelper.CreateParameter("@id", Id), + sqlHelper.CreateParameter("@macro", Macro.Id), + sqlHelper.CreateParameter("@alias", Alias), + sqlHelper.CreateParameter("@name", Name), + sqlHelper.CreateParameter("@editorAlias", ParameterEditorAlias), + sqlHelper.CreateParameter("@so", SortOrder)); } } @@ -177,7 +183,8 @@ namespace umbraco.cms.businesslogic.macro public static MacroProperty[] GetProperties(int macroId) { var props = new List(); - using (IRecordsReader dr = SqlHelper.ExecuteReader("select id from cmsMacroProperty where macro = @macroId order by macroPropertySortOrder, id ASC", SqlHelper.CreateParameter("@macroId", macroId))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader("select id from cmsMacroProperty where macro = @macroId order by macroPropertySortOrder, id ASC", sqlHelper.CreateParameter("@macroId", macroId))) { while (dr.Read()) { @@ -198,7 +205,6 @@ namespace umbraco.cms.businesslogic.macro [MethodImpl(MethodImplOptions.Synchronized)] public static MacroProperty MakeNew(Macro macro, string alias, string name, string editorAlias) { - //try to get the new mapped parameter editor var mapped = LegacyParameterEditorAliasConverter.GetNewAliasFromLegacyAlias(editorAlias, false); if (mapped.IsNullOrWhiteSpace() == false) @@ -208,13 +214,17 @@ namespace umbraco.cms.businesslogic.macro int macroPropertyId = 0; // The method is synchronized - SqlHelper.ExecuteNonQuery("INSERT INTO cmsMacroProperty (macro, macropropertyAlias, macroPropertyName, editorAlias) VALUES (@macro, @alias, @name, @editorAlias)", - SqlHelper.CreateParameter("@macro", macro.Id), - SqlHelper.CreateParameter("@alias", alias), - SqlHelper.CreateParameter("@name", name), - SqlHelper.CreateParameter("@editorAlias", editorAlias)); - macroPropertyId = SqlHelper.ExecuteScalar("SELECT MAX(id) FROM cmsMacroProperty"); - return new MacroProperty(macroPropertyId); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + { + sqlHelper.ExecuteNonQuery( + "INSERT INTO cmsMacroProperty (macro, macropropertyAlias, macroPropertyName, editorAlias) VALUES (@macro, @alias, @name, @editorAlias)", + sqlHelper.CreateParameter("@macro", macro.Id), + sqlHelper.CreateParameter("@alias", alias), + sqlHelper.CreateParameter("@name", name), + sqlHelper.CreateParameter("@editorAlias", editorAlias)); + macroPropertyId = sqlHelper.ExecuteScalar("SELECT MAX(id) FROM cmsMacroProperty"); + return new MacroProperty(macroPropertyId); + } } #endregion diff --git a/src/umbraco.cms/businesslogic/member/Member.cs b/src/umbraco.cms/businesslogic/member/Member.cs index 7bf4bee73b..596cc87596 100644 --- a/src/umbraco.cms/businesslogic/member/Member.cs +++ b/src/umbraco.cms/businesslogic/member/Member.cs @@ -127,9 +127,11 @@ namespace umbraco.cms.businesslogic.member // changing how the members are shown and not having to worry about letters. var ids = new List(); - using (var dr = SqlHelper.ExecuteReader( + + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader( string.Format(_sQLOptimizedMany.Trim(), "LOWER(SUBSTRING(text, 1, 1)) NOT IN ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')", "umbracoNode.text"), - SqlHelper.CreateParameter("@nodeObjectType", Member._objectType))) + sqlHelper.CreateParameter("@nodeObjectType", Member._objectType))) { while (dr.Read()) @@ -238,6 +240,7 @@ namespace umbraco.cms.businesslogic.member var legacy = new Member(model); + legacy.Save(); return legacy; @@ -333,19 +336,22 @@ namespace umbraco.cms.businesslogic.member [Obsolete("This method will not work if the password format is encrypted since the encryption that is performed is not static and a new value will be created each time the same string is encrypted")] public static Member GetMemberFromLoginAndEncodedPassword(string loginName, string password) { - var o = SqlHelper.ExecuteScalar( - "select nodeID from cmsMember where LoginName = @loginName and Password = @password", - SqlHelper.CreateParameter("loginName", loginName), - SqlHelper.CreateParameter("password", password)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + { + var o = sqlHelper.ExecuteScalar( + "select nodeID from cmsMember where LoginName = @loginName and Password = @password", + sqlHelper.CreateParameter("loginName", loginName), + sqlHelper.CreateParameter("password", password)); - if (o == null) - return null; + if (o == null) + return null; - int tmpId; - if (!int.TryParse(o.ToString(), out tmpId)) - return null; + int tmpId; + if (!int.TryParse(o.ToString(), out tmpId)) + return null; - return new Member(tmpId); + return new Member(tmpId); + } } [Obsolete("Use MembershipProviderExtensions.IsUmbracoMembershipProvider instead")] @@ -642,13 +648,17 @@ namespace umbraco.cms.businesslogic.member [MethodImpl(MethodImplOptions.Synchronized)] public void AddGroup(int GroupId) { - var parameters = new IParameter[] { SqlHelper.CreateParameter("@id", Id), - SqlHelper.CreateParameter("@groupId", GroupId) }; - bool exists = SqlHelper.ExecuteScalar("SELECT COUNT(member) FROM cmsMember2MemberGroup WHERE member = @id AND memberGroup = @groupId", - parameters) > 0; - if (!exists) - SqlHelper.ExecuteNonQuery("INSERT INTO cmsMember2MemberGroup (member, memberGroup) values (@id, @groupId)", - parameters); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + { + var parameters = new IParameter[] { sqlHelper.CreateParameter("@id", Id), + sqlHelper.CreateParameter("@groupId", GroupId) }; + bool exists = sqlHelper.ExecuteScalar("SELECT COUNT(member) FROM cmsMember2MemberGroup WHERE member = @id AND memberGroup = @groupId", + parameters) > 0; + if (!exists) + sqlHelper.ExecuteNonQuery("INSERT INTO cmsMember2MemberGroup (member, memberGroup) values (@id, @groupId)", + parameters); + } + PopulateGroups(); } @@ -659,9 +669,10 @@ namespace umbraco.cms.businesslogic.member /// The MemberGroup from which the Member is removed public void RemoveGroup(int GroupId) { - SqlHelper.ExecuteNonQuery( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( "delete from cmsMember2MemberGroup where member = @id and Membergroup = @groupId", - SqlHelper.CreateParameter("@id", Id), SqlHelper.CreateParameter("@groupId", GroupId)); + sqlHelper.CreateParameter("@id", Id), sqlHelper.CreateParameter("@groupId", GroupId)); PopulateGroups(); } #endregion @@ -671,9 +682,11 @@ namespace umbraco.cms.businesslogic.member private void PopulateGroups() { var temp = new Dictionary(); - using (var dr = SqlHelper.ExecuteReader( + + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader( "select memberGroup from cmsMember2MemberGroup where member = @id", - SqlHelper.CreateParameter("@id", Id))) + sqlHelper.CreateParameter("@id", Id))) { while (dr.Read()) { @@ -723,16 +736,16 @@ namespace umbraco.cms.businesslogic.member //cache the member var cachedMember = Current.ApplicationCache.RuntimeCache.GetCacheItem( GetCacheKey(m.Id), - timeout: TimeSpan.FromMinutes(30), - getCacheItem: () => - { + timeout: TimeSpan.FromMinutes(30), + getCacheItem: () => + { // Debug information HttpContext.Current.Trace.Write("member", - string.Format("Member added to cache: {0}/{1} ({2})", - m.Text, m.LoginName, m.Id)); + string.Format("Member added to cache: {0}/{1} ({2})", + m.Text, m.LoginName, m.Id)); - return m; - }); + return m; + }); } } @@ -764,16 +777,16 @@ namespace umbraco.cms.businesslogic.member //cache the member var cachedMember = Current.ApplicationCache.RuntimeCache.GetCacheItem( GetCacheKey(m.Id), - timeout: TimeSpan.FromMinutes(30), - getCacheItem: () => - { + timeout: TimeSpan.FromMinutes(30), + getCacheItem: () => + { // Debug information HttpContext.Current.Trace.Write("member", - string.Format("Member added to cache: {0}/{1} ({2})", - m.Text, m.LoginName, m.Id)); + string.Format("Member added to cache: {0}/{1} ({2})", + m.Text, m.LoginName, m.Id)); - return m; - }); + return m; + }); } } diff --git a/src/umbraco.cms/businesslogic/propertytype/PropertyTypeGroup.cs b/src/umbraco.cms/businesslogic/propertytype/PropertyTypeGroup.cs index cac259f1a1..1d224237cf 100644 --- a/src/umbraco.cms/businesslogic/propertytype/PropertyTypeGroup.cs +++ b/src/umbraco.cms/businesslogic/propertytype/PropertyTypeGroup.cs @@ -55,41 +55,46 @@ namespace umbraco.cms.businesslogic.propertytype { if (Id != 0) { - SqlHelper.ExecuteNonQuery( - @"UPDATE - cmsPropertyTypeGroup - SET - contenttypeNodeId = @contentTypeId, - sortOrder = @sortOrder, - text = @name - WHERE - id = @id - ", - SqlHelper.CreateParameter("@id", Id), - SqlHelper.CreateParameter("@contentTypeId", ContentTypeId), - SqlHelper.CreateParameter("@sortOrder", SortOrder), - SqlHelper.CreateParameter("@name", Name) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( + @"UPDATE + cmsPropertyTypeGroup + SET + contenttypeNodeId = @contentTypeId, + sortOrder = @sortOrder, + text = @name + WHERE + id = @id + ", + sqlHelper.CreateParameter("@id", Id), + sqlHelper.CreateParameter("@contentTypeId", ContentTypeId), + sqlHelper.CreateParameter("@sortOrder", SortOrder), + sqlHelper.CreateParameter("@name", Name) ); } else { if (SortOrder == -1) - SortOrder = SqlHelper.ExecuteScalar("select count(*) from cmsPropertyTypeGroup where contenttypeNodeId = @nodeId", - SqlHelper.CreateParameter("@nodeId", ContentTypeId)) + 1; + using (var sqlHelper = LegacySqlHelper.SqlHelper) + SortOrder = sqlHelper.ExecuteScalar("select count(*) from cmsPropertyTypeGroup where contenttypeNodeId = @nodeId", + sqlHelper.CreateParameter("@nodeId", ContentTypeId)) + 1; - SqlHelper.ExecuteNonQuery( - @" - INSERT INTO - cmsPropertyTypeGroup - (contenttypeNodeId, sortOrder, text) - VALUES - (@contentTypeId, @sortOrder, @name) - ", - SqlHelper.CreateParameter("@contentTypeId", ContentTypeId), - SqlHelper.CreateParameter("@sortOrder", SortOrder), - SqlHelper.CreateParameter("@name", Name) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( + @" + INSERT INTO + cmsPropertyTypeGroup + (contenttypeNodeId, sortOrder, text) + VALUES + (@contentTypeId, @sortOrder, @name) + ", + sqlHelper.CreateParameter("@contentTypeId", ContentTypeId), + sqlHelper.CreateParameter("@sortOrder", SortOrder), + sqlHelper.CreateParameter("@name", Name) ); - Id = SqlHelper.ExecuteScalar("SELECT MAX(id) FROM [cmsPropertyTypeGroup]"); + + using (var sqlHelper = LegacySqlHelper.SqlHelper) + Id = sqlHelper.ExecuteScalar("SELECT MAX(id) FROM [cmsPropertyTypeGroup]"); } } @@ -106,12 +111,14 @@ namespace umbraco.cms.businesslogic.propertytype foreach (var ptg in GetPropertyTypeGroups()) ptg.Delete(); - SqlHelper.ExecuteNonQuery("DELETE FROM cmsPropertyTypeGroup WHERE id = @id", SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("DELETE FROM cmsPropertyTypeGroup WHERE id = @id", sqlHelper.CreateParameter("@id", Id)); } internal void Load() { - using (var dr = SqlHelper.ExecuteReader(@" SELECT contenttypeNodeId, sortOrder, text FROM cmsPropertyTypeGroup WHERE id = @id", SqlHelper.CreateParameter("@id", Id))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader(@" SELECT contenttypeNodeId, sortOrder, text FROM cmsPropertyTypeGroup WHERE id = @id", sqlHelper.CreateParameter("@id", Id))) { if (dr.Read()) { @@ -132,7 +139,8 @@ namespace umbraco.cms.businesslogic.propertytype public static IEnumerable GetPropertyTypeGroupsFromContentType(int contentTypeId) { var ptgs = new List(); - using (var dr = SqlHelper.ExecuteReader(@" SELECT id FROM cmsPropertyTypeGroup WHERE contenttypeNodeId = @contentTypeId", SqlHelper.CreateParameter("@contentTypeId", contentTypeId))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader(@" SELECT id FROM cmsPropertyTypeGroup WHERE contenttypeNodeId = @contentTypeId", sqlHelper.CreateParameter("@contentTypeId", contentTypeId))) { while (dr.Read()) { @@ -144,9 +152,9 @@ namespace umbraco.cms.businesslogic.propertytype } /// - /// Gets the SQL helper. + /// Unused, please do not use /// - /// The SQL helper. + [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { get { return LegacySqlHelper.SqlHelper; } diff --git a/src/umbraco.cms/businesslogic/propertytype/propertytype.cs b/src/umbraco.cms/businesslogic/propertytype/propertytype.cs index 926fa3fa2e..09636b1a4d 100644 --- a/src/umbraco.cms/businesslogic/propertytype/propertytype.cs +++ b/src/umbraco.cms/businesslogic/propertytype/propertytype.cs @@ -37,6 +37,10 @@ namespace umbraco.cms.businesslogic.propertytype #endregion + /// + /// Unused, please do not use + /// + [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { get { return LegacySqlHelper.SqlHelper; } @@ -46,20 +50,24 @@ namespace umbraco.cms.businesslogic.propertytype public PropertyType(int id) { - using (IRecordsReader dr = SqlHelper.ExecuteReader( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader( "Select mandatory, DataTypeId, propertyTypeGroupId, ContentTypeId, sortOrder, alias, name, validationRegExp, description from cmsPropertyType where id=@id", - SqlHelper.CreateParameter("@id", id))) + sqlHelper.CreateParameter("@id", id))) { if (!dr.Read()) throw new ArgumentException("Propertytype with id: " + id + " doesnt exist!"); + _mandatory = dr.GetBoolean("mandatory"); _id = id; + if (!dr.IsNull("propertyTypeGroupId")) { _propertyTypeGroup = dr.GetInt("propertyTypeGroupId"); //TODO: Remove after refactoring! _tabId = _propertyTypeGroup; } + _sortOrder = dr.GetInt("sortOrder"); _alias = dr.GetString("alias"); _name = dr.GetString("Name"); @@ -110,9 +118,11 @@ namespace umbraco.cms.businesslogic.propertytype { dbPropertyTypeGroup = DBNull.Value; } - SqlHelper.ExecuteNonQuery("Update cmsPropertyType set propertyTypeGroupId = @propertyTypeGroupId where id = @id", - SqlHelper.CreateParameter("@propertyTypeGroupId", dbPropertyTypeGroup), - SqlHelper.CreateParameter("@id", Id)); + + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Update cmsPropertyType set propertyTypeGroupId = @propertyTypeGroupId where id = @id", + sqlHelper.CreateParameter("@propertyTypeGroupId", dbPropertyTypeGroup), + sqlHelper.CreateParameter("@id", Id)); } } @@ -123,10 +133,10 @@ namespace umbraco.cms.businesslogic.propertytype { _mandatory = value; InvalidateCache(); - SqlHelper.ExecuteNonQuery( - "Update cmsPropertyType set mandatory = @mandatory where id = @id", - SqlHelper.CreateParameter("@mandatory", value), - SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Update cmsPropertyType set mandatory = @mandatory where id = @id", + sqlHelper.CreateParameter("@mandatory", value), + sqlHelper.CreateParameter("@id", Id)); } } @@ -137,9 +147,9 @@ namespace umbraco.cms.businesslogic.propertytype { _validationRegExp = value; InvalidateCache(); - SqlHelper.ExecuteNonQuery( - "Update cmsPropertyType set validationRegExp = @validationRegExp where id = @id", - SqlHelper.CreateParameter("@validationRegExp", value), SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Update cmsPropertyType set validationRegExp = @validationRegExp where id = @id", + sqlHelper.CreateParameter("@validationRegExp", value), sqlHelper.CreateParameter("@id", Id)); } } @@ -174,10 +184,10 @@ namespace umbraco.cms.businesslogic.propertytype { _description = value; InvalidateCache(); - SqlHelper.ExecuteNonQuery( - "Update cmsPropertyType set description = @description where id = @id", - SqlHelper.CreateParameter("@description", value), - SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Update cmsPropertyType set description = @description where id = @id", + sqlHelper.CreateParameter("@description", value), + sqlHelper.CreateParameter("@id", Id)); } } @@ -188,10 +198,10 @@ namespace umbraco.cms.businesslogic.propertytype { _sortOrder = value; InvalidateCache(); - SqlHelper.ExecuteNonQuery( - "Update cmsPropertyType set sortOrder = @sortOrder where id = @id", - SqlHelper.CreateParameter("@sortOrder", value), - SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Update cmsPropertyType set sortOrder = @sortOrder where id = @id", + sqlHelper.CreateParameter("@sortOrder", value), + sqlHelper.CreateParameter("@id", Id)); } } @@ -202,9 +212,10 @@ namespace umbraco.cms.businesslogic.propertytype { _alias = value; InvalidateCache(); - SqlHelper.ExecuteNonQuery("Update cmsPropertyType set alias = @alias where id= @id", - SqlHelper.CreateParameter("@alias", _alias.ToSafeAliasWithForcingCheck()), - SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Update cmsPropertyType set alias = @alias where id= @id", + sqlHelper.CreateParameter("@alias", _alias.ToSafeAliasWithForcingCheck()), + sqlHelper.CreateParameter("@id", Id)); } } @@ -239,10 +250,11 @@ namespace umbraco.cms.businesslogic.propertytype { _name = value; InvalidateCache(); - SqlHelper.ExecuteNonQuery( - "UPDATE cmsPropertyType SET name=@name WHERE id=@id", - SqlHelper.CreateParameter("@name", _name), - SqlHelper.CreateParameter("@id", Id)); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery( + "UPDATE cmsPropertyType SET name=@name WHERE id=@id", + sqlHelper.CreateParameter("@name", _name), + sqlHelper.CreateParameter("@id", Id)); } } @@ -270,8 +282,9 @@ namespace umbraco.cms.businesslogic.propertytype public static IEnumerable GetPropertyTypes() { var result = new List(); - using (IRecordsReader dr = - SqlHelper.ExecuteReader("select id from cmsPropertyType order by Name")) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = + sqlHelper.ExecuteReader("select id from cmsPropertyType order by Name")) { while (dr.Read()) { @@ -291,9 +304,10 @@ namespace umbraco.cms.businesslogic.propertytype public static IEnumerable GetPropertyTypesByGroup(int groupId) { var result = new List(); - using (IRecordsReader dr = - SqlHelper.ExecuteReader("SELECT id FROM cmsPropertyType WHERE propertyTypeGroupId = @groupId order by SortOrder", - SqlHelper.CreateParameter("@groupId", groupId))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = + sqlHelper.ExecuteReader("SELECT id FROM cmsPropertyType WHERE propertyTypeGroupId = @groupId order by SortOrder", + sqlHelper.CreateParameter("@groupId", groupId))) { while (dr.Read()) { @@ -313,10 +327,11 @@ namespace umbraco.cms.businesslogic.propertytype public static IEnumerable GetByDataTypeDefinition(int dataTypeDefId) { var result = new List(); - using (IRecordsReader dr = - SqlHelper.ExecuteReader( + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = + sqlHelper.ExecuteReader( "select id, Name from cmsPropertyType where dataTypeId=@dataTypeId order by Name", - SqlHelper.CreateParameter("@dataTypeId", dataTypeDefId))) + sqlHelper.CreateParameter("@dataTypeId", dataTypeDefId))) { while (dr.Read()) { @@ -337,10 +352,12 @@ namespace umbraco.cms.businesslogic.propertytype CleanPropertiesOnDeletion(_contenttypeid); //delete tag refs - SqlHelper.ExecuteNonQuery("Delete from cmsTagRelationship where propertyTypeId = " + Id); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Delete from cmsTagRelationship where propertyTypeId = " + Id); // Delete PropertyType .. - SqlHelper.ExecuteNonQuery("Delete from cmsPropertyType where id = " + Id); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("Delete from cmsPropertyType where id = " + Id); // delete cache from either master (via tabid) or current contentype @@ -369,17 +386,19 @@ namespace umbraco.cms.businesslogic.propertytype //Initially Content.getContentOfContentType() was called, but because this doesn't include members we resort to sql lookups and deletes var tmp = new List(); - IRecordsReader dr = SqlHelper.ExecuteReader("SELECT nodeId FROM cmsContent INNER JOIN umbracoNode ON cmsContent.nodeId = umbracoNode.id WHERE ContentType = " + contentTypeId + " ORDER BY umbracoNode.text "); - while (dr.Read()) tmp.Add(dr.GetInt("nodeId")); - dr.Close(); - - foreach (var contentId in tmp) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader("SELECT nodeId FROM cmsContent INNER JOIN umbracoNode ON cmsContent.nodeId = umbracoNode.id WHERE ContentType = @contentTypeId ORDER BY umbracoNode.text", sqlHelper.CreateParameter("contentTypeId", contentTypeId))) { - SqlHelper.ExecuteNonQuery("DELETE FROM cmsPropertyData WHERE PropertyTypeId =" + this.Id + " AND contentNodeId = " + contentId); - } + while (dr.Read()) tmp.Add(dr.GetInt("nodeId")); - // invalidate content type cache - ContentType.FlushFromCache(contentTypeId); + foreach (var contentId in tmp) + { + sqlHelper.ExecuteNonQuery("DELETE FROM cmsPropertyData WHERE PropertyTypeId =" + this.Id + " AND contentNodeId = " + contentId); + } + + // invalidate content type cache + ContentType.FlushFromCache(contentTypeId); + } } diff --git a/src/umbraco.cms/businesslogic/task/Task.cs b/src/umbraco.cms/businesslogic/task/Task.cs index e64c536987..2dd48e91dc 100644 --- a/src/umbraco.cms/businesslogic/task/Task.cs +++ b/src/umbraco.cms/businesslogic/task/Task.cs @@ -132,9 +132,9 @@ namespace umbraco.cms.businesslogic.task } /// - /// Gets the SQL helper. + /// Unused, please do not use /// - /// The SQL helper. + [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { get { return LegacySqlHelper.SqlHelper; } diff --git a/src/umbraco.cms/businesslogic/task/TaskType.cs b/src/umbraco.cms/businesslogic/task/TaskType.cs index 755665865a..057d1d1776 100644 --- a/src/umbraco.cms/businesslogic/task/TaskType.cs +++ b/src/umbraco.cms/businesslogic/task/TaskType.cs @@ -52,6 +52,10 @@ namespace umbraco.cms.businesslogic.task #region Private/protected members + /// + /// Unused, please do not use + /// + [Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)] protected static ISqlHelper SqlHelper { get { return LegacySqlHelper.SqlHelper; } diff --git a/src/umbraco.cms/businesslogic/template/Template.cs b/src/umbraco.cms/businesslogic/template/Template.cs index 4bc53e8646..584bef1cbc 100644 --- a/src/umbraco.cms/businesslogic/template/Template.cs +++ b/src/umbraco.cms/businesslogic/template/Template.cs @@ -314,7 +314,8 @@ namespace umbraco.cms.businesslogic.template //remove refs from documents - SqlHelper.ExecuteNonQuery("UPDATE cmsDocument SET templateId = NULL WHERE templateId = " + this.Id); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery("UPDATE cmsDocument SET templateId = NULL WHERE templateId = " + this.Id); Current.Services.FileService.DeleteTemplate(TemplateEntity.Alias); diff --git a/src/umbraco.cms/businesslogic/web/Document.cs b/src/umbraco.cms/businesslogic/web/Document.cs index b1cf8d8951..39b9796237 100644 --- a/src/umbraco.cms/businesslogic/web/Document.cs +++ b/src/umbraco.cms/businesslogic/web/Document.cs @@ -501,12 +501,14 @@ namespace umbraco.cms.businesslogic.web string pathExp = childrenOnly ? Path + ",%" : Path; - IRecordsReader dr = SqlHelper.ExecuteReader(String.Format(SqlOptimizedForPreview, pathExp)); - while (dr.Read()) - nodes.Add(new CMSPreviewNode(dr.GetInt("id"), dr.GetGuid("versionId"), dr.GetInt("parentId"), dr.GetShort("level"), dr.GetInt("sortOrder"), dr.GetString("xml"), !dr.GetBoolean("published"))); - dr.Close(); + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (IRecordsReader dr = sqlHelper.ExecuteReader(String.Format(SqlOptimizedForPreview, pathExp))) + { + while (dr.Read()) + nodes.Add(new CMSPreviewNode(dr.GetInt("id"), dr.GetGuid("versionId"), dr.GetInt("parentId"), dr.GetShort("level"), dr.GetInt("sortOrder"), dr.GetString("xml"), !dr.GetBoolean("published"))); - return nodes; + return nodes; + } } #endregion diff --git a/src/umbraco.cms/businesslogic/web/DocumentType.cs b/src/umbraco.cms/businesslogic/web/DocumentType.cs index 143d348700..d325ef7969 100644 --- a/src/umbraco.cms/businesslogic/web/DocumentType.cs +++ b/src/umbraco.cms/businesslogic/web/DocumentType.cs @@ -244,11 +244,12 @@ namespace umbraco.cms.businesslogic.web foreach (var currentContentTypeId in currentContentTypeIds) { //get all the content item ids of the current content type - using (var dr = SqlHelper.ExecuteReader(@"SELECT DISTINCT cmsDocument.nodeId FROM cmsDocument + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var dr = sqlHelper.ExecuteReader(@"SELECT DISTINCT cmsDocument.nodeId FROM cmsDocument INNER JOIN cmsContent ON cmsContent.nodeId = cmsDocument.nodeId INNER JOIN cmsContentType ON cmsContent.contentType = cmsContentType.nodeId WHERE cmsContentType.nodeId = @contentTypeId AND cmsDocument.published = 1", - SqlHelper.CreateParameter("@contentTypeId", currentContentTypeId))) + sqlHelper.CreateParameter("@contentTypeId", currentContentTypeId))) { while (dr.Read()) { @@ -258,8 +259,9 @@ namespace umbraco.cms.businesslogic.web } //lookup the child content types if there are any and add the ids to the content type ids array - using (var reader = SqlHelper.ExecuteReader("SELECT childContentTypeId FROM cmsContentType2ContentType WHERE parentContentTypeId=@contentTypeId", - SqlHelper.CreateParameter("@contentTypeId", currentContentTypeId))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var reader = sqlHelper.ExecuteReader("SELECT childContentTypeId FROM cmsContentType2ContentType WHERE parentContentTypeId=@contentTypeId", + sqlHelper.CreateParameter("@contentTypeId", currentContentTypeId))) { while (reader.Read()) { @@ -294,15 +296,17 @@ namespace umbraco.cms.businesslogic.web foreach (var currentContentTypeId in currentContentTypeIds) { //Remove all items from the cmsContentXml table that are of this current content type - SqlHelper.ExecuteNonQuery(@"DELETE FROM cmsContentXml WHERE nodeId IN + using (var sqlHelper = LegacySqlHelper.SqlHelper) + sqlHelper.ExecuteNonQuery(@"DELETE FROM cmsContentXml WHERE nodeId IN (SELECT DISTINCT cmsContent.nodeId FROM cmsContent INNER JOIN cmsContentType ON cmsContent.contentType = cmsContentType.nodeId WHERE cmsContentType.nodeId = @contentTypeId)", - SqlHelper.CreateParameter("@contentTypeId", currentContentTypeId)); + sqlHelper.CreateParameter("@contentTypeId", currentContentTypeId)); //lookup the child content types if there are any and add the ids to the content type ids array - using (var reader = SqlHelper.ExecuteReader("SELECT childContentTypeId FROM cmsContentType2ContentType WHERE parentContentTypeId=@contentTypeId", - SqlHelper.CreateParameter("@contentTypeId", currentContentTypeId))) + using (var sqlHelper = LegacySqlHelper.SqlHelper) + using (var reader = sqlHelper.ExecuteReader("SELECT childContentTypeId FROM cmsContentType2ContentType WHERE parentContentTypeId=@contentTypeId", + sqlHelper.CreateParameter("@contentTypeId", currentContentTypeId))) { while (reader.Read()) { diff --git a/src/umbraco.cms/packages.config b/src/umbraco.cms/packages.config index 9e4fc86cc8..988598127e 100644 --- a/src/umbraco.cms/packages.config +++ b/src/umbraco.cms/packages.config @@ -1,6 +1,6 @@  - + diff --git a/src/umbraco.cms/umbraco.cms.csproj b/src/umbraco.cms/umbraco.cms.csproj index 9b8ce3746b..db4a9adab8 100644 --- a/src/umbraco.cms/umbraco.cms.csproj +++ b/src/umbraco.cms/umbraco.cms.csproj @@ -106,8 +106,8 @@ false - - ..\packages\ClientDependency.1.9.1\lib\net45\ClientDependency.Core.dll + + ..\packages\ClientDependency.1.9.2\lib\net45\ClientDependency.Core.dll True diff --git a/src/umbraco.cms/umbraco.cms.csproj.DotSettings b/src/umbraco.cms/umbraco.cms.csproj.DotSettings deleted file mode 100644 index 662f95686e..0000000000 --- a/src/umbraco.cms/umbraco.cms.csproj.DotSettings +++ /dev/null @@ -1,2 +0,0 @@ - - CSharp50 \ No newline at end of file diff --git a/src/umbraco.controls/packages.config b/src/umbraco.controls/packages.config index 016ca51b2d..eca7107322 100644 --- a/src/umbraco.controls/packages.config +++ b/src/umbraco.controls/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/src/umbraco.controls/umbraco.controls.csproj b/src/umbraco.controls/umbraco.controls.csproj index 9ce7ffe91b..b3d92d49ed 100644 --- a/src/umbraco.controls/umbraco.controls.csproj +++ b/src/umbraco.controls/umbraco.controls.csproj @@ -68,8 +68,8 @@ false - - ..\packages\ClientDependency.1.9.1\lib\net45\ClientDependency.Core.dll + + ..\packages\ClientDependency.1.9.2\lib\net45\ClientDependency.Core.dll True diff --git a/src/umbraco.datalayer/SqlHelpers/SqlServer/SqlServerTableUtility.cs b/src/umbraco.datalayer/SqlHelpers/SqlServer/SqlServerTableUtility.cs index 657cb608c1..6444e16f9b 100644 --- a/src/umbraco.datalayer/SqlHelpers/SqlServer/SqlServerTableUtility.cs +++ b/src/umbraco.datalayer/SqlHelpers/SqlServer/SqlServerTableUtility.cs @@ -35,13 +35,15 @@ namespace umbraco.DataLayer.SqlHelpers.SqlServer ITable table = null; // get name in correct casing - name = SqlHelper.ExecuteScalar("SELECT name FROM sys.tables WHERE name=@name", - SqlHelper.CreateParameter("name", name)); + using (var sqlHelper = SqlHelper) + name = sqlHelper.ExecuteScalar("SELECT name FROM sys.tables WHERE name=@name", + sqlHelper.CreateParameter("name", name)); if (name != null) { table = new DefaultTable(name); - using (IRecordsReader reader = SqlHelper.ExecuteReader( + using (var sqlHelper = SqlHelper) + using (IRecordsReader reader = sqlHelper.ExecuteReader( @"SELECT c.name AS Name, st.name AS DataType, c.max_length, c.is_nullable, c.is_identity FROM sys.tables AS t JOIN sys.columns AS c ON t.object_id = c.object_id @@ -49,7 +51,7 @@ namespace umbraco.DataLayer.SqlHelpers.SqlServer JOIN sys.types AS ty ON ty.user_type_id = c.user_type_id JOIN sys.types st ON ty.system_type_id = st.user_type_id WHERE t.name = @name - ORDER BY c.column_id", SqlHelper.CreateParameter("name", name))) + ORDER BY c.column_id", sqlHelper.CreateParameter("name", name))) { while (reader.Read()) { @@ -110,7 +112,8 @@ namespace umbraco.DataLayer.SqlHelpers.SqlServer // create query StringBuilder createTableQuery = new StringBuilder(); - createTableQuery.AppendFormat("CREATE TABLE [{0}] (", SqlHelper.EscapeString(table.Name)); + using (var sqlHelper = SqlHelper) + createTableQuery.AppendFormat("CREATE TABLE [{0}] (", sqlHelper.EscapeString(table.Name)); // add fields while (hasNext) @@ -134,7 +137,8 @@ namespace umbraco.DataLayer.SqlHelpers.SqlServer // execute query try { - SqlHelper.ExecuteNonQuery(createTableQuery.ToString()); + using (var sqlHelper = SqlHelper) + sqlHelper.ExecuteNonQuery(createTableQuery.ToString()); } catch (Exception executeException) { @@ -152,13 +156,15 @@ namespace umbraco.DataLayer.SqlHelpers.SqlServer Debug.Assert(table != null && field != null); StringBuilder addColumnQuery = new StringBuilder(); - addColumnQuery.AppendFormat("ALTER TABLE [{0}] ADD [{1}] {2}", - SqlHelper.EscapeString(table.Name), - SqlHelper.EscapeString(field.Name), - SqlHelper.EscapeString(GetDatabaseType(field))); + using (var sqlHelper = SqlHelper) + addColumnQuery.AppendFormat("ALTER TABLE [{0}] ADD [{1}] {2}", + sqlHelper.EscapeString(table.Name), + sqlHelper.EscapeString(field.Name), + sqlHelper.EscapeString(GetDatabaseType(field))); try { - SqlHelper.ExecuteNonQuery(addColumnQuery.ToString()); + using (var sqlHelper = SqlHelper) + sqlHelper.ExecuteNonQuery(addColumnQuery.ToString()); } catch (Exception executeException) { diff --git a/src/umbraco.datalayer/Utility/Installer/DefaultInstallerUtility.cs b/src/umbraco.datalayer/Utility/Installer/DefaultInstallerUtility.cs index 102ebed580..0996d9878d 100644 --- a/src/umbraco.datalayer/Utility/Installer/DefaultInstallerUtility.cs +++ b/src/umbraco.datalayer/Utility/Installer/DefaultInstallerUtility.cs @@ -197,7 +197,8 @@ namespace umbraco.DataLayer.Utility.Installer { if(v.ExpectedRows > -1) { - using (var reader = SqlHelper.ExecuteReader(v.Sql)) + using (var sqlHelper = SqlHelper) + using (var reader = sqlHelper.ExecuteReader(v.Sql)) { var rowCount = 0; while (reader.Read()) @@ -209,7 +210,8 @@ namespace umbraco.DataLayer.Utility.Installer } else { - SqlHelper.ExecuteNonQuery(v.Sql); + using (var sqlHelper = SqlHelper) + sqlHelper.ExecuteNonQuery(v.Sql); } //if (!String.IsNullOrEmpty(v.Table) && !String.IsNullOrEmpty(v.Field) && !String.IsNullOrEmpty(v.Value)) @@ -251,7 +253,8 @@ namespace umbraco.DataLayer.Utility.Installer { string rawStatement = statement.Trim(); if (rawStatement.Length > 0) - SqlHelper.ExecuteNonQuery(rawStatement); + using (var sqlHelper = SqlHelper) + sqlHelper.ExecuteNonQuery(rawStatement); } }