Fixes many hard coded SQL table names with the proposed new prefix

This commit is contained in:
Shannon
2018-03-22 17:17:01 +11:00
parent 448d490eb7
commit 422fd8e274
20 changed files with 145 additions and 117 deletions
@@ -25,7 +25,7 @@
Database.Execute("update umbracoUser2UserGroup set userId=-1 where userId=0;");
Database.Execute("update umbracoNode set nodeUser=-1 where nodeUser=0;");
Database.Execute("update uContentVersion set userId=-1 where userId=0;");
Database.Execute($"update {Constants.DatabaseSchema.Tables.ContentVersion} set userId=-1 where userId=0;");
Database.Execute("delete from umbracoUser where id=0;");
}
}
@@ -29,20 +29,20 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0
MigrateContent();
MigrateVersions();
if (Database.Fetch<dynamic>(@"SELECT uContentVersion.nodeId, COUNT(uContentVersion.id)
FROM uContentVersion
JOIN uDocumentVersion ON uContentVersion.id=uDocumentVersion.id
WHERE uDocumentVersion.published=1
GROUP BY uContentVersion.nodeId
HAVING COUNT(uContentVersion.id) > 1").Any())
if (Database.Fetch<dynamic>($@"SELECT {Constants.DatabaseSchema.Tables.ContentVersion}.nodeId, COUNT({Constants.DatabaseSchema.Tables.ContentVersion}.id)
FROM {Constants.DatabaseSchema.Tables.ContentVersion}
JOIN {Constants.DatabaseSchema.Tables.DocumentVersion} ON {Constants.DatabaseSchema.Tables.ContentVersion}.id={Constants.DatabaseSchema.Tables.DocumentVersion}.id
WHERE {Constants.DatabaseSchema.Tables.DocumentVersion}.published=1
GROUP BY {Constants.DatabaseSchema.Tables.ContentVersion}.nodeId
HAVING COUNT({Constants.DatabaseSchema.Tables.ContentVersion}.id) > 1").Any())
{
Debugger.Break();
throw new Exception("Migration failed: duplicate 'published' document versions.");
}
if (Database.Fetch<dynamic>(@"SELECT v1.nodeId, v1.id, COUNT(v2.id)
FROM uContentVersion v1
LEFT JOIN uContentVersion v2 ON v1.nodeId=v2.nodeId AND v2.[current]=1
if (Database.Fetch<dynamic>($@"SELECT v1.nodeId, v1.id, COUNT(v2.id)
FROM {Constants.DatabaseSchema.Tables.ContentVersion} v1
LEFT JOIN {Constants.DatabaseSchema.Tables.ContentVersion} v2 ON v1.nodeId=v2.nodeId AND v2.[current]=1
GROUP BY v1.nodeId, v1.id
HAVING COUNT(v2.id) <> 1").Any())
{
@@ -502,13 +502,13 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
{
case "VERSIONDATE":
case "UPDATEDATE":
return GetDatabaseFieldNameForOrderBy("uContentVersion", "versionDate");
return GetDatabaseFieldNameForOrderBy(Constants.DatabaseSchema.Tables.ContentVersion, "versionDate");
case "CREATEDATE":
return GetDatabaseFieldNameForOrderBy("umbracoNode", "createDate");
case "NAME":
return GetDatabaseFieldNameForOrderBy("umbracoNode", "text");
case "PUBLISHED":
return GetDatabaseFieldNameForOrderBy("uDocument", "published");
return GetDatabaseFieldNameForOrderBy(Constants.DatabaseSchema.Tables.Document, "published");
case "OWNER":
//TODO: This isn't going to work very nicely because it's going to order by ID, not by letter
return GetDatabaseFieldNameForOrderBy("umbracoNode", "nodeUser");
@@ -1091,11 +1091,11 @@ ORDER BY contentTypeId, id";
pt.contentTypeId AS contentTypeId,
pt.id AS id, pt.uniqueID AS " + sqlSyntax.GetQuotedColumnName("key") + @",
pt.propertyTypeGroupId AS groupId,
pt.Alias AS alias, pt." + sqlSyntax.GetQuotedColumnName("Description") + @" AS " + sqlSyntax.GetQuotedColumnName("desc") + @", pt.mandatory AS mandatory,
pt.Alias AS alias, pt." + sqlSyntax.GetQuotedColumnName("Description") + @" AS " + sqlSyntax.GetQuotedColumnName("desc") + $@", pt.mandatory AS mandatory,
pt.Name AS name, pt.sortOrder AS sortOrder, pt.validationRegExp AS regexp, pt.variations as variations,
dt.nodeId as dataTypeId, dt.dbType as dbType, dt.propertyEditorAlias as editorAlias
FROM cmsPropertyType pt
INNER JOIN uDataType as dt ON pt.dataTypeId = dt.nodeId
INNER JOIN {Constants.DatabaseSchema.Tables.DataType} as dt ON pt.dataTypeId = dt.nodeId
WHERE pt.contentTypeId IN (@ids)
ORDER BY contentTypeId, groupId, id";
@@ -1238,9 +1238,9 @@ WHERE cmsContentType." + aliasColumn + @" LIKE @pattern",
public bool HasContainerInPath(string contentPath)
{
var ids = contentPath.Split(',').Select(int.Parse);
var sql = new Sql(@"SELECT COUNT(*) FROM cmsContentType
INNER JOIN uContent ON cmsContentType.nodeId=uContent.contentTypeId
WHERE uContent.nodeId IN (@ids) AND cmsContentType.isContainer=@isContainer", new { ids, isContainer = true });
var sql = new Sql($@"SELECT COUNT(*) FROM cmsContentType
INNER JOIN {Constants.DatabaseSchema.Tables.Content} ON cmsContentType.nodeId={Constants.DatabaseSchema.Tables.Content}.contentTypeId
WHERE {Constants.DatabaseSchema.Tables.Content}.nodeId IN (@ids) AND cmsContentType.isContainer=@isContainer", new { ids, isContainer = true });
return Database.ExecuteScalar<int>(sql) > 0;
}
@@ -355,12 +355,12 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
entity.ResetDirtyProperties();
// troubleshooting
//if (Database.ExecuteScalar<int>("SELECT COUNT(*) FROM uDocumentVersion JOIN uContentVersion ON uDocumentVersion.id=uContentVersion.id WHERE published=1 AND nodeId=" + content.Id) > 1)
//if (Database.ExecuteScalar<int>($"SELECT COUNT(*) FROM {Constants.DatabaseSchema.Tables.DocumentVersion} JOIN {Constants.DatabaseSchema.Tables.ContentVersion} ON {Constants.DatabaseSchema.Tables.DocumentVersion}.id={Constants.DatabaseSchema.Tables.ContentVersion}.id WHERE published=1 AND nodeId=" + content.Id) > 1)
//{
// Debugger.Break();
// throw new Exception("oops");
//}
//if (Database.ExecuteScalar<int>("SELECT COUNT(*) FROM uDocumentVersion JOIN uContentVersion ON uDocumentVersion.id=uContentVersion.id WHERE [current]=1 AND nodeId=" + content.Id) > 1)
//if (Database.ExecuteScalar<int>($"SELECT COUNT(*) FROM {Constants.DatabaseSchema.Tables.DocumentVersion} JOIN {Constants.DatabaseSchema.Tables.ContentVersion} ON {Constants.DatabaseSchema.Tables.DocumentVersion}.id={Constants.DatabaseSchema.Tables.ContentVersion}.id WHERE [current]=1 AND nodeId=" + content.Id) > 1)
//{
// Debugger.Break();
// throw new Exception("oops");
@@ -500,12 +500,12 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
entity.ResetDirtyProperties();
// troubleshooting
//if (Database.ExecuteScalar<int>("SELECT COUNT(*) FROM uDocumentVersion JOIN uContentVersion ON uDocumentVersion.id=uContentVersion.id WHERE published=1 AND nodeId=" + content.Id) > 1)
//if (Database.ExecuteScalar<int>($"SELECT COUNT(*) FROM {Constants.DatabaseSchema.Tables.DocumentVersion} JOIN {Constants.DatabaseSchema.Tables.ContentVersion} ON {Constants.DatabaseSchema.Tables.DocumentVersion}.id={Constants.DatabaseSchema.Tables.ContentVersion}.id WHERE published=1 AND nodeId=" + content.Id) > 1)
//{
// Debugger.Break();
// throw new Exception("oops");
//}
//if (Database.ExecuteScalar<int>("SELECT COUNT(*) FROM uDocumentVersion JOIN uContentVersion ON uDocumentVersion.id=uContentVersion.id WHERE [current]=1 AND nodeId=" + content.Id) > 1)
//if (Database.ExecuteScalar<int>($"SELECT COUNT(*) FROM {Constants.DatabaseSchema.Tables.DocumentVersion} JOIN {Constants.DatabaseSchema.Tables.ContentVersion} ON {Constants.DatabaseSchema.Tables.DocumentVersion}.id={Constants.DatabaseSchema.Tables.ContentVersion}.id WHERE [current]=1 AND nodeId=" + content.Id) > 1)
//{
// Debugger.Break();
// throw new Exception("oops");
@@ -91,7 +91,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
if (entity.RootContentId.HasValue)
{
var contentExists = Database.ExecuteScalar<int>("SELECT COUNT(*) FROM uContent WHERE nodeId = @id", new { id = entity.RootContentId.Value });
var contentExists = Database.ExecuteScalar<int>($"SELECT COUNT(*) FROM {Constants.DatabaseSchema.Tables.Content} WHERE nodeId = @id", new { id = entity.RootContentId.Value });
if (contentExists == 0) throw new NullReferenceException("No content exists with id " + entity.RootContentId.Value);
}
@@ -129,7 +129,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
if (entity.RootContentId.HasValue)
{
var contentExists = Database.ExecuteScalar<int>("SELECT COUNT(*) FROM uContent WHERE nodeId = @id", new { id = entity.RootContentId.Value });
var contentExists = Database.ExecuteScalar<int>($"SELECT COUNT(*) FROM {Constants.DatabaseSchema.Tables.Content} WHERE nodeId = @id", new { id = entity.RootContentId.Value });
if (contentExists == 0) throw new NullReferenceException("No content exists with id " + entity.RootContentId.Value);
}
@@ -148,7 +148,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
"cmsPropertyType.Name", "cmsPropertyType.Description", "cmsPropertyType.mandatory", "cmsPropertyType.UniqueID",
"cmsPropertyType.validationRegExp", "cmsPropertyType.dataTypeId", "cmsPropertyType.sortOrder AS PropertyTypeSortOrder",
"cmsPropertyType.propertyTypeGroupId AS PropertyTypesGroupId", "cmsMemberType.memberCanEdit", "cmsMemberType.viewOnProfile",
"uDataType.propertyEditorAlias", "uDataType.dbType", "cmsPropertyTypeGroup.id AS PropertyTypeGroupId",
$"{Constants.DatabaseSchema.Tables.DataType}.propertyEditorAlias", $"{Constants.DatabaseSchema.Tables.DataType}.dbType", "cmsPropertyTypeGroup.id AS PropertyTypeGroupId",
"cmsPropertyTypeGroup.text AS PropertyGroupName", "cmsPropertyTypeGroup.uniqueID AS PropertyGroupUniqueID",
"cmsPropertyTypeGroup.sortorder AS PropertyGroupSortOrder", "cmsPropertyTypeGroup.contenttypeNodeId")
.From<NodeDto>()
@@ -1,4 +1,5 @@
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Persistence.Mappers;
using Umbraco.Core.Persistence.SqlSyntax;
@@ -37,7 +38,7 @@ namespace Umbraco.Tests.Persistence.Mappers
string column = new DataTypeMapper().Map(new SqlCeSyntaxProvider(), "DatabaseType");
// Assert
Assert.That(column, Is.EqualTo("[uDataType].[dbType]"));
Assert.That(column, Is.EqualTo($"[{Constants.DatabaseSchema.Tables.DataType}].[dbType]"));
}
[Test]
@@ -48,7 +49,7 @@ namespace Umbraco.Tests.Persistence.Mappers
string column = new DataTypeMapper().Map(new SqlCeSyntaxProvider(), "EditorAlias");
// Assert
Assert.That(column, Is.EqualTo("[uDataType].[propertyEditorAlias]"));
Assert.That(column, Is.EqualTo($"[{Constants.DatabaseSchema.Tables.DataType}].[propertyEditorAlias]"));
}
}
}
@@ -1,4 +1,5 @@
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Persistence.Mappers;
using Umbraco.Core.Persistence.SqlSyntax;
@@ -54,7 +55,7 @@ namespace Umbraco.Tests.Persistence.Mappers
string column = new PropertyTypeMapper().Map(new SqlCeSyntaxProvider(), "PropertyEditorAlias");
// Assert
Assert.That(column, Is.EqualTo("[uDataType].[propertyEditorAlias]"));
Assert.That(column, Is.EqualTo($"[{Constants.DatabaseSchema.Tables.DataType}].[propertyEditorAlias]"));
}
[Test]
@@ -64,7 +65,7 @@ namespace Umbraco.Tests.Persistence.Mappers
string column = new PropertyTypeMapper().Map(new SqlCeSyntaxProvider(), "ValueStorageType");
// Assert
Assert.That(column, Is.EqualTo("[uDataType].[dbType]"));
Assert.That(column, Is.EqualTo($"[{Constants.DatabaseSchema.Tables.DataType}].[dbType]"));
}
}
}
@@ -1,5 +1,6 @@
using System.Diagnostics;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Dtos;
using Umbraco.Core.Persistence.Querying;
@@ -202,7 +203,7 @@ namespace Umbraco.Tests.Persistence.NPocoTests
public void Can_Select_From_With_Type()
{
var expected = Sql();
expected.SelectAll().From("[uContent]");
expected.SelectAll().From($"[{Constants.DatabaseSchema.Tables.Content}]");
var sql = Sql();
sql.SelectAll().From<ContentDto>();
@@ -217,9 +218,9 @@ namespace Umbraco.Tests.Persistence.NPocoTests
{
var expected = Sql();
expected.SelectAll()
.From("[uDocumentVersion]")
.InnerJoin("[uContentVersion]")
.On("[uDocumentVersion].[id] = [uContentVersion].[id]");
.From($"[{Constants.DatabaseSchema.Tables.DocumentVersion}]")
.InnerJoin($"[{Constants.DatabaseSchema.Tables.ContentVersion}]")
.On($"[{Constants.DatabaseSchema.Tables.DocumentVersion}].[id] = [{Constants.DatabaseSchema.Tables.ContentVersion}].[id]");
var sql = Sql();
sql.SelectAll().From<DocumentVersionDto>()
@@ -235,7 +236,7 @@ namespace Umbraco.Tests.Persistence.NPocoTests
public void Can_OrderBy_With_Type()
{
var expected = Sql();
expected.SelectAll().From("[uContent]").OrderBy("([uContent].[contentTypeId])");
expected.SelectAll().From($"[{Constants.DatabaseSchema.Tables.Content}]").OrderBy($"([{Constants.DatabaseSchema.Tables.Content}].[contentTypeId])");
var sql = Sql();
sql.SelectAll().From<ContentDto>().OrderBy<ContentDto>(x => x.ContentTypeId);
@@ -249,7 +250,7 @@ namespace Umbraco.Tests.Persistence.NPocoTests
public void Can_GroupBy_With_Type()
{
var expected = Sql();
expected.SelectAll().From("[uContent]").GroupBy("[uContent].[contentTypeId]");
expected.SelectAll().From($"[{Constants.DatabaseSchema.Tables.Content}]").GroupBy($"[{Constants.DatabaseSchema.Tables.Content}].[contentTypeId]");
var sql = Sql();
sql.SelectAll().From<ContentDto>().GroupBy<ContentDto>(x => x.ContentTypeId);
@@ -263,7 +264,7 @@ namespace Umbraco.Tests.Persistence.NPocoTests
public void Can_Use_Where_Predicate()
{
var expected = Sql();
expected.SelectAll().From("[uContent]").Where("([uContent].[nodeId] = @0)", 1045);
expected.SelectAll().From($"[{Constants.DatabaseSchema.Tables.Content}]").Where($"([{Constants.DatabaseSchema.Tables.Content}].[nodeId] = @0)", 1045);
var sql = Sql();
sql.SelectAll().From<ContentDto>().Where<ContentDto>(x => x.NodeId == 1045);
@@ -278,9 +279,9 @@ namespace Umbraco.Tests.Persistence.NPocoTests
{
var expected = Sql();
expected.SelectAll()
.From("[uContent]")
.Where("([uContent].[nodeId] = @0)", 1045)
.Where("([uContent].[contentTypeId] = @0)", 1050);
.From($"[{Constants.DatabaseSchema.Tables.Content}]")
.Where($"([{Constants.DatabaseSchema.Tables.Content}].[nodeId] = @0)", 1045)
.Where($"([{Constants.DatabaseSchema.Tables.Content}].[contentTypeId] = @0)", 1050);
var sql = Sql();
sql.SelectAll()
@@ -94,7 +94,7 @@ namespace Umbraco.Tests.Persistence.Querying
expected.SelectAll()
.From("[cmsPropertyTypeGroup]")
.RightJoin("[cmsPropertyType]").On("[cmsPropertyTypeGroup].[id] = [cmsPropertyType].[propertyTypeGroupId]")
.InnerJoin("[uDataType]").On("[cmsPropertyType].[dataTypeId] = [uDataType].[nodeId]");
.InnerJoin($"[{Constants.DatabaseSchema.Tables.DataType}]").On($"[cmsPropertyType].[dataTypeId] = [{Constants.DatabaseSchema.Tables.DataType}].[nodeId]");
var sql = Sql();
sql.SelectAll()
@@ -140,7 +140,7 @@ namespace Umbraco.Tests.Persistence.Querying
expected.SelectAll()
.From("[cmsPropertyTypeGroup]")
.RightJoin("[cmsPropertyType]").On("[cmsPropertyTypeGroup].[id] = [cmsPropertyType].[propertyTypeGroupId]")
.InnerJoin("[uDataType]").On("[cmsPropertyType].[dataTypeId] = [uDataType].[nodeId]")
.InnerJoin($"[{Constants.DatabaseSchema.Tables.DataType}]").On($"[cmsPropertyType].[dataTypeId] = [{Constants.DatabaseSchema.Tables.DataType}].[nodeId]")
.Where("([cmsPropertyType].[contentTypeId] = @0)", 1050);
var sql = Sql();
@@ -19,8 +19,8 @@ namespace Umbraco.Tests.Persistence.Querying
var expected = new Sql();
expected.Select("*")
.From("[uDataType]")
.InnerJoin("[umbracoNode]").On("[uDataType].[nodeId] = [umbracoNode].[id]")
.From($"[{Constants.DatabaseSchema.Tables.DataType}]")
.InnerJoin("[umbracoNode]").On($"[{Constants.DatabaseSchema.Tables.DataType}].[nodeId] = [umbracoNode].[id]")
.Where("([umbracoNode].[nodeObjectType] = @0)", new Guid("30a2a501-1978-4ddb-a57b-f7efed43ba3c"));
var sql = Sql();
@@ -19,9 +19,9 @@ namespace Umbraco.Tests.Persistence.Querying
var expected = new Sql();
expected.Select("*")
.From("[uContentVersion]")
.InnerJoin("[uContent]").On("[uContentVersion].[nodeId] = [uContent].[nodeId]")
.InnerJoin("[umbracoNode]").On("[uContent].[nodeId] = [umbracoNode].[id]")
.From($"[{Constants.DatabaseSchema.Tables.ContentVersion}]")
.InnerJoin($"[{Constants.DatabaseSchema.Tables.Content}]").On($"[{Constants.DatabaseSchema.Tables.ContentVersion}].[nodeId] = [{Constants.DatabaseSchema.Tables.Content}].[nodeId]")
.InnerJoin("[umbracoNode]").On($"[{Constants.DatabaseSchema.Tables.Content}].[nodeId] = [umbracoNode].[id]")
.Where("([umbracoNode].[nodeObjectType] = @0)", new Guid("b796f64c-1f99-4ffb-b886-4bf4bc011a9c"));
var sql = Sql();
@@ -152,7 +152,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>($"SELECT published FROM {Constants.DatabaseSchema.Tables.Document} WHERE nodeId=@id", new { id = content1.Id }));
// change something
// save = update the current (draft) version
@@ -168,7 +168,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>($"SELECT published FROM {Constants.DatabaseSchema.Tables.Document} WHERE nodeId=@id", new { id = content1.Id }));
// unpublish = no impact on versions
((Content) content1).PublishedState = PublishedState.Unpublishing;
@@ -183,7 +183,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(false, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(false, scope.Database.ExecuteScalar<bool>($"SELECT published FROM {Constants.DatabaseSchema.Tables.Document} WHERE nodeId=@id", new { id = content1.Id }));
// change something
// save = update the current (draft) version
@@ -198,7 +198,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(false, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(false, scope.Database.ExecuteScalar<bool>($"SELECT published FROM {Constants.DatabaseSchema.Tables.Document} WHERE nodeId=@id", new { id = content1.Id }));
// publish = version
((Content) content1).PublishValues();
@@ -214,7 +214,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>($"SELECT published FROM {Constants.DatabaseSchema.Tables.Document} WHERE nodeId=@id", new { id = content1.Id }));
// change something
// save = update the current (draft) version
@@ -232,7 +232,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>($"SELECT published FROM {Constants.DatabaseSchema.Tables.Document} WHERE nodeId=@id", new { id = content1.Id }));
// publish = new version
content1.Name = "name-4";
@@ -250,7 +250,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>($"SELECT published FROM {Constants.DatabaseSchema.Tables.Document} WHERE nodeId=@id", new { id = content1.Id }));
// all versions
var allVersions = repository.GetAllVersions(content1.Id).ToArray();
@@ -219,6 +219,29 @@ namespace Umbraco.Tests.Persistence.Repositories
// Assert
Assert.That(languageBR.HasIdentity, Is.True);
Assert.That(languageBR.Id, Is.EqualTo(6)); //With 5 existing entries the Id should be 6
Assert.IsFalse(languageBR.IsDefaultVariantLanguage);
Assert.IsFalse(languageBR.Mandatory);
}
}
[Test]
public void Can_Perform_Add_On_LanguageRepository_With_Boolean_Properties()
{
// Arrange
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(provider);
// Act
var languageBR = new Language("pt-BR") { CultureName = "pt-BR", IsDefaultVariantLanguage = true, Mandatory = true };
repository.Save(languageBR);
// Assert
Assert.That(languageBR.HasIdentity, Is.True);
Assert.That(languageBR.Id, Is.EqualTo(6)); //With 5 existing entries the Id should be 6
Assert.IsTrue(languageBR.IsDefaultVariantLanguage);
Assert.IsTrue(languageBR.Mandatory);
}
}
@@ -323,8 +323,8 @@ namespace Umbraco.Tests.Persistence.Repositories
}
var sql = provider.SqlContext.Sql();
sql.Select("umbracoNode.*", "uContent.contentTypeId", "cmsContentType.alias AS ContentTypeAlias", "uContentVersion.versionId",
"uContentVersion.versionDate", "cmsMember.Email",
sql.Select("umbracoNode.*", $"{Constants.DatabaseSchema.Tables.Content}.contentTypeId", "cmsContentType.alias AS ContentTypeAlias", $"{Constants.DatabaseSchema.Tables.ContentVersion}.versionId",
$"{Constants.DatabaseSchema.Tables.ContentVersion}.versionDate", "cmsMember.Email",
"cmsMember.LoginName", "cmsMember.Password",
Constants.DatabaseSchema.Tables.PropertyData + ".id AS PropertyDataId", Constants.DatabaseSchema.Tables.PropertyData + ".propertytypeid",
Constants.DatabaseSchema.Tables.PropertyData + ".dateValue", Constants.DatabaseSchema.Tables.PropertyData + ".intValue",
@@ -341,7 +341,7 @@ namespace Umbraco.Tests.Persistence.Repositories
.LeftJoin<PropertyTypeDto>().On<PropertyTypeDto, ContentDto>(left => left.ContentTypeId, right => right.ContentTypeId)
.LeftJoin<DataTypeDto>().On<DataTypeDto, PropertyTypeDto>(left => left.NodeId, right => right.DataTypeId)
.LeftJoin<PropertyDataDto>().On<PropertyDataDto, PropertyTypeDto>(left => left.PropertyTypeId, right => right.Id)
.Append("AND " + Constants.DatabaseSchema.Tables.PropertyData + ".versionId = uContentVersion.id")
.Append("AND " + Constants.DatabaseSchema.Tables.PropertyData + $".versionId = {Constants.DatabaseSchema.Tables.ContentVersion}.id")
.Where<NodeDto>(x => x.NodeObjectType == NodeObjectTypeId);
return sql;
}
@@ -359,7 +359,7 @@ namespace Umbraco.Tests.Persistence.Repositories
.LeftJoin<PropertyTypeDto>().On<PropertyTypeDto, ContentDto>(left => left.ContentTypeId, right => right.ContentTypeId)
.LeftJoin<DataTypeDto>().On<DataTypeDto, PropertyTypeDto>(left => left.NodeId, right => right.DataTypeId)
.LeftJoin<PropertyDataDto>().On<PropertyDataDto, PropertyTypeDto>(left => left.PropertyTypeId, right => right.Id)
.Append("AND " + Constants.DatabaseSchema.Tables.PropertyData + ".versionId = uContentVersion.id")
.Append("AND " + Constants.DatabaseSchema.Tables.PropertyData + $".versionId = {Constants.DatabaseSchema.Tables.ContentVersion}.id")
.Where<NodeDto>(x => x.NodeObjectType == NodeObjectTypeId);
return sql;
}
@@ -36,7 +36,7 @@ namespace Umbraco.Tests.Services
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest, PublishedRepositoryEvents = true, WithApplication = true)]
public class ContentServiceTests : TestWithSomeContentBase
{
//TODO Add test to verify there is only ONE newest document/content in uDocument table after updating.
//TODO Add test to verify there is only ONE newest document/content in {Constants.DatabaseSchema.Tables.Document} table after updating.
//TODO Add test to delete specific version (with and without deleting prior versions) and versions by date.
public override void SetUp()
@@ -168,7 +168,7 @@ namespace Umbraco.Tests.UmbracoExamine
//var query = new Mock<IQuery<IContent>>();
//query
// .Setup(x => x.GetWhereClauses())
// .Returns(new List<Tuple<string, object[]>> { new Tuple<string, object[]>("uDocument.published", new object[] { 1 }) });
// .Returns(new List<Tuple<string, object[]>> { new Tuple<string, object[]>($"{Constants.DatabaseSchema.Tables.Document}.published", new object[] { 1 }) });
var scopeProvider = new Mock<IScopeProvider>();
//scopeProvider
// .Setup(x => x.Query<IContent>())
@@ -1251,12 +1251,12 @@ WHERE cmsContentNu.nodeId IN (
{
// assume number of ctypes won't blow IN(...)
// must support SQL-CE
db.Execute(@"DELETE FROM cmsContentNu
db.Execute($@"DELETE FROM cmsContentNu
WHERE cmsContentNu.nodeId IN (
SELECT id FROM umbracoNode
JOIN uContent ON uContent.nodeId=umbracoNode.id
JOIN {Constants.DatabaseSchema.Tables.Content} ON {Constants.DatabaseSchema.Tables.Content}.nodeId=umbracoNode.id
WHERE umbracoNode.nodeObjectType=@objType
AND uContent.contentTypeId IN (@ctypes)
AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)
)",
new { objType = contentObjectType, ctypes = contentTypeIdsA });
}
@@ -1318,12 +1318,12 @@ WHERE cmsContentNu.nodeId IN (
{
// assume number of ctypes won't blow IN(...)
// must support SQL-CE
db.Execute(@"DELETE FROM cmsContentNu
db.Execute($@"DELETE FROM cmsContentNu
WHERE cmsContentNu.nodeId IN (
SELECT id FROM umbracoNode
JOIN uContent ON uContent.nodeId=umbracoNode.id
JOIN {Constants.DatabaseSchema.Tables.Content} ON {Constants.DatabaseSchema.Tables.Content}.nodeId=umbracoNode.id
WHERE umbracoNode.nodeObjectType=@objType
AND uContent.contentTypeId IN (@ctypes)
AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)
)",
new { objType = mediaObjectType, ctypes = contentTypeIdsA });
}
@@ -1376,12 +1376,12 @@ WHERE cmsContentNu.nodeId IN (
{
// assume number of ctypes won't blow IN(...)
// must support SQL-CE
db.Execute(@"DELETE FROM cmsContentNu
db.Execute($@"DELETE FROM cmsContentNu
WHERE cmsContentNu.nodeId IN (
SELECT id FROM umbracoNode
JOIN uContent ON uContent.nodeId=umbracoNode.id
JOIN {Constants.DatabaseSchema.Tables.Content} ON {Constants.DatabaseSchema.Tables.Content}.nodeId=umbracoNode.id
WHERE umbracoNode.nodeObjectType=@objType
AND uContent.contentTypeId IN (@ctypes)
AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)
)",
new { objType = memberObjectType, ctypes = contentTypeIdsA });
}
@@ -1423,13 +1423,13 @@ WHERE cmsContentNu.nodeId IN (
var contentObjectType = Constants.ObjectTypes.Document;
var db = scope.Database;
var count = db.ExecuteScalar<int>(@"SELECT COUNT(*)
var count = db.ExecuteScalar<int>($@"SELECT COUNT(*)
FROM umbracoNode
JOIN uDocument ON umbracoNode.id=uDocument.nodeId
JOIN {Constants.DatabaseSchema.Tables.Document} ON umbracoNode.id={Constants.DatabaseSchema.Tables.Document}.nodeId
LEFT JOIN cmsContentNu nuEdited ON (umbracoNode.id=nuEdited.nodeId AND nuEdited.published=0)
LEFT JOIN cmsContentNu nuPublished ON (umbracoNode.id=nuPublished.nodeId AND nuPublished.published=1)
WHERE umbracoNode.nodeObjectType=@objType
AND nuEdited.nodeId IS NULL OR (uDocument.published=1 AND nuPublished.nodeId IS NULL);"
AND nuEdited.nodeId IS NULL OR ({Constants.DatabaseSchema.Tables.Document}.published=1 AND nuPublished.nodeId IS NULL);"
, new { objType = contentObjectType });
return count == 0;
@@ -494,16 +494,18 @@ AND (umbracoNode.id=@id)";
return xml;
}
public XmlNode GetPreviewXmlNode(int contentId)
{
const string sql = @"SELECT umbracoNode.id, umbracoNode.parentId, umbracoNode.sortOrder, umbracoNode.Level,
cmsPreviewXml.xml, uDocument.published
private static readonly string PreviewXmlNodeSql = $@"SELECT umbracoNode.id, umbracoNode.parentId, umbracoNode.sortOrder, umbracoNode.Level,
cmsPreviewXml.xml, {Constants.DatabaseSchema.Tables.Document}.published
FROM umbracoNode
JOIN cmsPreviewXml ON (cmsPreviewXml.nodeId=umbracoNode.id)
JOIN uDocument ON (uDocument.nodeId=umbracoNode.id)
JOIN {Constants.DatabaseSchema.Tables.Document} ON ({Constants.DatabaseSchema.Tables.Document}.nodeId=umbracoNode.id)
WHERE umbracoNode.nodeObjectType = @nodeObjectType
AND (umbracoNode.id=@id)";
public XmlNode GetPreviewXmlNode(int contentId)
{
var sql = PreviewXmlNodeSql;
XmlDto xmlDto;
using (var scope = _scopeProvider.CreateScope())
{
@@ -837,32 +839,32 @@ AND (umbracoNode.id=@id)";
#region Database
private const string ReadTreeCmsContentXmlSql = @"SELECT
private static readonly string ReadTreeCmsContentXmlSql = $@"SELECT
umbracoNode.id, umbracoNode.parentId, umbracoNode.sortOrder, umbracoNode.level, umbracoNode.path,
cmsContentXml.xml, cmsContentXml.rv, uDocument.published
cmsContentXml.xml, cmsContentXml.rv, {Constants.DatabaseSchema.Tables.Document}.published
FROM umbracoNode
JOIN cmsContentXml ON (cmsContentXml.nodeId=umbracoNode.id)
JOIN uDocument ON (uDocument.nodeId=umbracoNode.id)
WHERE umbracoNode.nodeObjectType = @nodeObjectType AND uDocument.published=1
JOIN {Constants.DatabaseSchema.Tables.Document} ON ({Constants.DatabaseSchema.Tables.Document}.nodeId=umbracoNode.id)
WHERE umbracoNode.nodeObjectType = @nodeObjectType AND {Constants.DatabaseSchema.Tables.Document}.published=1
ORDER BY umbracoNode.level, umbracoNode.sortOrder";
private const string ReadBranchCmsContentXmlSql = @"SELECT
private static readonly string ReadBranchCmsContentXmlSql = $@"SELECT
umbracoNode.id, umbracoNode.parentId, umbracoNode.sortOrder, umbracoNode.level, umbracoNode.path,
cmsContentXml.xml, cmsContentXml.rv, uDocument.published
cmsContentXml.xml, cmsContentXml.rv, {Constants.DatabaseSchema.Tables.Document}.published
FROM umbracoNode
JOIN cmsContentXml ON (cmsContentXml.nodeId=umbracoNode.id)
JOIN uDocument ON (uDocument.nodeId=umbracoNode.id)
WHERE umbracoNode.nodeObjectType = @nodeObjectType AND uDocument.published=1 AND (umbracoNode.id = @id OR umbracoNode.path LIKE @path)
JOIN {Constants.DatabaseSchema.Tables.Document} ON ({Constants.DatabaseSchema.Tables.Document}.nodeId=umbracoNode.id)
WHERE umbracoNode.nodeObjectType = @nodeObjectType AND {Constants.DatabaseSchema.Tables.Document}.published=1 AND (umbracoNode.id = @id OR umbracoNode.path LIKE @path)
ORDER BY umbracoNode.level, umbracoNode.sortOrder";
private const string ReadCmsContentXmlForContentTypesSql = @"SELECT
private static readonly string ReadCmsContentXmlForContentTypesSql = $@"SELECT
umbracoNode.id, umbracoNode.parentId, umbracoNode.sortOrder, umbracoNode.level, umbracoNode.path,
cmsContentXml.xml, cmsContentXml.rv, uDocument.published
cmsContentXml.xml, cmsContentXml.rv, {Constants.DatabaseSchema.Tables.Document}.published
FROM umbracoNode
JOIN cmsContentXml ON (cmsContentXml.nodeId=umbracoNode.id)
JOIN uDocument ON (uDocument.nodeId=umbracoNode.id)
JOIN uContent ON (uDocument.nodeId=uContent.nodeId)
WHERE umbracoNode.nodeObjectType = @nodeObjectType AND uDocument.published=1 AND uContent.contentTypeId IN (@ids)
JOIN {Constants.DatabaseSchema.Tables.Document} ON ({Constants.DatabaseSchema.Tables.Document}.nodeId=umbracoNode.id)
JOIN {Constants.DatabaseSchema.Tables.Content} ON ({Constants.DatabaseSchema.Tables.Document}.nodeId={Constants.DatabaseSchema.Tables.Content}.nodeId)
WHERE umbracoNode.nodeObjectType = @nodeObjectType AND {Constants.DatabaseSchema.Tables.Document}.published=1 AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ids)
ORDER BY umbracoNode.level, umbracoNode.sortOrder";
private const string ReadMoreCmsContentXmlSql = @"SELECT
@@ -873,13 +875,13 @@ JOIN cmsContentXml ON (cmsContentXml.nodeId=umbracoNode.id)
WHERE umbracoNode.nodeObjectType = @nodeObjectType
ORDER BY umbracoNode.level, umbracoNode.sortOrder";
private const string ReadCmsPreviewXmlSql1 = @"SELECT
private static readonly string ReadCmsPreviewXmlSql1 = $@"SELECT
umbracoNode.id, umbracoNode.parentId, umbracoNode.sortOrder, umbracoNode.level, umbracoNode.path,
cmsPreviewXml.xml, cmsPreviewXml.rv, uDocument.published
cmsPreviewXml.xml, cmsPreviewXml.rv, {Constants.DatabaseSchema.Tables.Document}.published
FROM umbracoNode
JOIN cmsPreviewXml ON (cmsPreviewXml.nodeId=umbracoNode.id)
JOIN uDocument ON (uDocument.nodeId=umbracoNode.id)
WHERE umbracoNode.nodeObjectType = @nodeObjectType AND uDocument.published=1
JOIN {Constants.DatabaseSchema.Tables.Document} ON ({Constants.DatabaseSchema.Tables.Document}.nodeId=umbracoNode.id)
WHERE umbracoNode.nodeObjectType = @nodeObjectType AND {Constants.DatabaseSchema.Tables.Document}.published=1
AND (umbracoNode.path=@path OR"; // @path LIKE concat(umbracoNode.path, ',%')";
private const string ReadCmsPreviewXmlSql2 = @")
@@ -1711,15 +1713,15 @@ WHERE cmsContentXml.nodeId IN (
// db.Execute(@"DELETE cmsContentXml
//FROM cmsContentXml
//JOIN umbracoNode ON (cmsContentXml.nodeId=umbracoNode.Id)
//JOIN uContent ON (cmsContentXml.nodeId=uContent.nodeId)
//JOIN {Constants.DatabaseSchema.Tables.Content} ON (cmsContentXml.nodeId={Constants.DatabaseSchema.Tables.Content}.nodeId)
//WHERE umbracoNode.nodeObjectType=@objType
//AND uContent.contentTypeId IN (@ctypes)",
db.Execute(@"DELETE FROM cmsContentXml
//AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)",
db.Execute($@"DELETE FROM cmsContentXml
WHERE cmsContentXml.nodeId IN (
SELECT id FROM umbracoNode
JOIN uContent ON uContent.nodeId=umbracoNode.id
JOIN {Constants.DatabaseSchema.Tables.Content} ON {Constants.DatabaseSchema.Tables.Content}.nodeId=umbracoNode.id
WHERE umbracoNode.nodeObjectType=@objType
AND uContent.contentTypeId IN (@ctypes)
AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)
)",
new { objType = contentObjectType, ctypes = contentTypeIdsA });
}
@@ -1782,15 +1784,15 @@ WHERE cmsPreviewXml.nodeId IN (
// db.Execute(@"DELETE cmsPreviewXml
//FROM cmsPreviewXml
//JOIN umbracoNode ON (cmsPreviewXml.nodeId=umbracoNode.Id)
//JOIN uContent ON (cmsPreviewXml.nodeId=uContent.nodeId)
//JOIN {Constants.DatabaseSchema.Tables.Content} ON (cmsPreviewXml.nodeId={Constants.DatabaseSchema.Tables.Content}.nodeId)
//WHERE umbracoNode.nodeObjectType=@objType
//AND uContent.contentTypeId IN (@ctypes)",
db.Execute(@"DELETE FROM cmsPreviewXml
//AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)",
db.Execute($@"DELETE FROM cmsPreviewXml
WHERE cmsPreviewXml.nodeId IN (
SELECT id FROM umbracoNode
JOIN uContent ON uContent.nodeId=umbracoNode.id
JOIN {Constants.DatabaseSchema.Tables.Content} ON {Constants.DatabaseSchema.Tables.Content}.nodeId=umbracoNode.id
WHERE umbracoNode.nodeObjectType=@objType
AND uContent.contentTypeId IN (@ctypes)
AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)
)",
new { objType = contentObjectType, ctypes = contentTypeIdsA });
}
@@ -1805,7 +1807,7 @@ WHERE cmsPreviewXml.nodeId IN (
long total;
do
{
// .GetPagedResultsByQuery implicitely adds (uDocument.newest = 1) which
// .GetPagedResultsByQuery implicitely adds ({Constants.DatabaseSchema.Tables.Document}.newest = 1) which
// is what we want for preview (ie latest version of a content, published or not)
var descendants = _documentRepository.GetPage(query, pageIndex++, groupSize, out total, "Path", Direction.Ascending, true);
const bool published = true; // previewXml contains edit content!
@@ -1857,15 +1859,15 @@ WHERE cmsContentXml.nodeId IN (
// db.Execute(@"DELETE cmsContentXml
//FROM cmsContentXml
//JOIN umbracoNode ON (cmsContentXml.nodeId=umbracoNode.Id)
//JOIN uContent ON (cmsContentXml.nodeId=uContent.nodeId)
//JOIN {Constants.DatabaseSchema.Tables.Content} ON (cmsContentXml.nodeId={Constants.DatabaseSchema.Tables.Content}.nodeId)
//WHERE umbracoNode.nodeObjectType=@objType
//AND uContent.contentTypeId IN (@ctypes)",
db.Execute(@"DELETE FROM cmsContentXml
//AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)",
db.Execute($@"DELETE FROM cmsContentXml
WHERE cmsContentXml.nodeId IN (
SELECT id FROM umbracoNode
JOIN uContent ON uContent.nodeId=umbracoNode.id
JOIN {Constants.DatabaseSchema.Tables.Content} ON {Constants.DatabaseSchema.Tables.Content}.nodeId=umbracoNode.id
WHERE umbracoNode.nodeObjectType=@objType
AND uContent.contentTypeId IN (@ctypes)
AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)
)",
new { objType = mediaObjectType, ctypes = contentTypeIdsA });
}
@@ -1926,15 +1928,15 @@ WHERE cmsContentXml.nodeId IN (
// db.Execute(@"DELETE cmsContentXml
//FROM cmsContentXml
//JOIN umbracoNode ON (cmsContentXml.nodeId=umbracoNode.Id)
//JOIN uContent ON (cmsContentXml.nodeId=uContent.nodeId)
//JOIN {Constants.DatabaseSchema.Tables.Content} ON (cmsContentXml.nodeId={Constants.DatabaseSchema.Tables.Content}.nodeId)
//WHERE umbracoNode.nodeObjectType=@objType
//AND uContent.contentTypeId IN (@ctypes)",
db.Execute(@"DELETE FROM cmsContentXml
//AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)",
db.Execute($@"DELETE FROM cmsContentXml
WHERE cmsContentXml.nodeId IN (
SELECT id FROM umbracoNode
JOIN uContent ON uContent.nodeId=umbracoNode.id
JOIN {Constants.DatabaseSchema.Tables.Content} ON {Constants.DatabaseSchema.Tables.Content}.nodeId=umbracoNode.id
WHERE umbracoNode.nodeObjectType=@objType
AND uContent.contentTypeId IN (@ctypes)
AND {Constants.DatabaseSchema.Tables.Content}.contentTypeId IN (@ctypes)
)",
new { objType = memberObjectType, ctypes = contentTypeIdsA });
}
@@ -1977,9 +1979,9 @@ WHERE cmsContentXml.nodeId IN (
var contentObjectType = Constants.ObjectTypes.Document;
var db = scope.Database;
var count = db.ExecuteScalar<int>(@"SELECT COUNT(*)
var count = db.ExecuteScalar<int>($@"SELECT COUNT(*)
FROM umbracoNode
JOIN uDocument ON (umbracoNode.id=uDocument.nodeId and uDocument.published=1)
JOIN {Constants.DatabaseSchema.Tables.Document} ON (umbracoNode.id={Constants.DatabaseSchema.Tables.Document}.nodeId and {Constants.DatabaseSchema.Tables.Document}.published=1)
LEFT JOIN cmsContentXml ON (umbracoNode.id=cmsContentXml.nodeId)
WHERE umbracoNode.nodeObjectType=@objType
AND cmsContentXml.nodeId IS NULL OR cmsContentXml.xml NOT LIKE '% key=""'
@@ -2018,9 +2020,9 @@ AND cmsPreviewXml.nodeId IS NULL OR cmsPreviewXml.xml NOT LIKE '% key=""'
var mediaObjectType = Constants.ObjectTypes.Media;
var db = scope.Database;
var count = db.ExecuteScalar<int>(@"SELECT COUNT(*)
var count = db.ExecuteScalar<int>($@"SELECT COUNT(*)
FROM umbracoNode
JOIN uDocument ON (umbracoNode.id=uDocument.nodeId and uDocument.published=1)
JOIN {Constants.DatabaseSchema.Tables.Document} ON (umbracoNode.id={Constants.DatabaseSchema.Tables.Document}.nodeId and {Constants.DatabaseSchema.Tables.Document}.published=1)
LEFT JOIN cmsContentXml ON (umbracoNode.id=cmsContentXml.nodeId)
WHERE umbracoNode.nodeObjectType=@objType
AND cmsContentXml.nodeId IS NULL OR cmsContentXml.xml NOT LIKE '% key=""'