V10: fix build warnings infrastructure (#12369)
* Run code cleanup * Run dotnet format * Start manual fixes * Manual fixing of warnings * Fix nullability in columnalias * Fix tests * Fix up after merge * Start updating after review * Update editorconfig to contain new static & const rules * Fix up editorconfig to not contain duplicate rules * Fix up static member names * Fix up according to review * Update src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.DistributedCache.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Examine/ContentIndexPopulator.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Examine/ContentIndexPopulator.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Examine/ContentValueSetValidator.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Examine/ContentValueSetValidator.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Examine/ContentValueSetValidator.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Examine/ExamineUmbracoIndexingHandler.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Examine/PublishedContentIndexPopulator.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Extensions/InstanceIdentifiableExtensions.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/HostedServices/RecurringHostedServiceBase.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/HostedServices/ReportSiteTask.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Macros/MacroTagParser.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Macros/MacroTagParser.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Macros/MacroTagParser.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Migrations/Expressions/Alter/Table/IAlterTableColumnOptionBuilder.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Migrations/Upgrade/V_10_0_0/AddMemberPropertiesAsColumns.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Dtos/ExternalLoginDto.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/AccessMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/AuditEntryMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/MediaMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/MemberMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/PropertyGroupMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/PropertyGroupMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/PropertyTypeMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/PropertyTypeMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/RelationTypeMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Mappers/RelationTypeMapper.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/NPocoMapperCollectionBuilder.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Querying/ExpressionVisitorBase.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ExternalLoginRepository.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Fix [..] to substring * Fix after merge with 10/dev * Fox ContentValueSetValidator.cs * Update LoggerConfigExtensions Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk> Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
This commit is contained in:
@@ -1,35 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NPoco;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Persistence.Repositories;
|
||||
using Umbraco.Cms.Core.Scoping;
|
||||
using Umbraco.Cms.Infrastructure.Persistence.Dtos;
|
||||
using Umbraco.Cms.Infrastructure.Scoping;
|
||||
using Umbraco.Extensions;
|
||||
|
||||
namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
|
||||
namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
|
||||
|
||||
internal class DocumentVersionRepository : IDocumentVersionRepository
|
||||
{
|
||||
internal class DocumentVersionRepository : IDocumentVersionRepository
|
||||
private readonly IScopeAccessor _scopeAccessor;
|
||||
|
||||
public DocumentVersionRepository(IScopeAccessor scopeAccessor) =>
|
||||
_scopeAccessor = scopeAccessor ?? throw new ArgumentNullException(nameof(scopeAccessor));
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// Never includes current draft version. <br />
|
||||
/// Never includes current published version.<br />
|
||||
/// Never includes versions marked as "preventCleanup".<br />
|
||||
/// </remarks>
|
||||
public IReadOnlyCollection<ContentVersionMeta>? GetDocumentVersionsEligibleForCleanup()
|
||||
{
|
||||
private readonly IScopeAccessor _scopeAccessor;
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql();
|
||||
|
||||
public DocumentVersionRepository(IScopeAccessor scopeAccessor) =>
|
||||
_scopeAccessor = scopeAccessor ?? throw new ArgumentNullException(nameof(scopeAccessor));
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// Never includes current draft version. <br/>
|
||||
/// Never includes current published version.<br/>
|
||||
/// Never includes versions marked as "preventCleanup".<br/>
|
||||
/// </remarks>
|
||||
public IReadOnlyCollection<ContentVersionMeta>? GetDocumentVersionsEligibleForCleanup()
|
||||
{
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql();
|
||||
|
||||
query?.Select(@"umbracoDocument.nodeId as contentId,
|
||||
query?.Select(@"umbracoDocument.nodeId as contentId,
|
||||
umbracoContent.contentTypeId as contentTypeId,
|
||||
umbracoContentVersion.id as versionId,
|
||||
umbracoContentVersion.userId as userId,
|
||||
@@ -38,39 +34,39 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
|
||||
umbracoContentVersion.[current] as currentDraftVersion,
|
||||
umbracoContentVersion.preventCleanup as preventCleanup,
|
||||
umbracoUser.userName as username")
|
||||
.From<DocumentDto>()
|
||||
.InnerJoin<ContentDto>()
|
||||
.On<DocumentDto, ContentDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<ContentVersionDto>()
|
||||
.On<ContentDto, ContentVersionDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<DocumentVersionDto>()
|
||||
.On<ContentVersionDto, DocumentVersionDto>(left => left.Id, right => right.Id)
|
||||
.LeftJoin<UserDto>()
|
||||
.On<UserDto, ContentVersionDto>(left => left.Id, right => right.UserId)
|
||||
.Where<ContentVersionDto>(x => !x.Current) // Never delete current draft version
|
||||
.Where<ContentVersionDto>(x => !x.PreventCleanup) // Never delete "pinned" versions
|
||||
.Where<DocumentVersionDto>(x => !x.Published); // Never delete published version
|
||||
.From<DocumentDto>()
|
||||
.InnerJoin<ContentDto>()
|
||||
.On<DocumentDto, ContentDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<ContentVersionDto>()
|
||||
.On<ContentDto, ContentVersionDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<DocumentVersionDto>()
|
||||
.On<ContentVersionDto, DocumentVersionDto>(left => left.Id, right => right.Id)
|
||||
.LeftJoin<UserDto>()
|
||||
.On<UserDto, ContentVersionDto>(left => left.Id, right => right.UserId)
|
||||
.Where<ContentVersionDto>(x => !x.Current) // Never delete current draft version
|
||||
.Where<ContentVersionDto>(x => !x.PreventCleanup) // Never delete "pinned" versions
|
||||
.Where<DocumentVersionDto>(x => !x.Published); // Never delete published version
|
||||
|
||||
return _scopeAccessor.AmbientScope?.Database.Fetch<ContentVersionMeta>(query);
|
||||
}
|
||||
return _scopeAccessor.AmbientScope?.Database.Fetch<ContentVersionMeta>(query);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public IReadOnlyCollection<ContentVersionCleanupPolicySettings>? GetCleanupPolicies()
|
||||
{
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql();
|
||||
/// <inheritdoc />
|
||||
public IReadOnlyCollection<ContentVersionCleanupPolicySettings>? GetCleanupPolicies()
|
||||
{
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql();
|
||||
|
||||
query?.Select<ContentVersionCleanupPolicyDto>()
|
||||
.From<ContentVersionCleanupPolicyDto>();
|
||||
query?.Select<ContentVersionCleanupPolicyDto>()
|
||||
.From<ContentVersionCleanupPolicyDto>();
|
||||
|
||||
return _scopeAccessor.AmbientScope?.Database.Fetch<ContentVersionCleanupPolicySettings>(query);
|
||||
}
|
||||
return _scopeAccessor.AmbientScope?.Database.Fetch<ContentVersionCleanupPolicySettings>(query);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<ContentVersionMeta>? GetPagedItemsByContentId(int contentId, long pageIndex, int pageSize, out long totalRecords, int? languageId = null)
|
||||
{
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql();
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<ContentVersionMeta>? GetPagedItemsByContentId(int contentId, long pageIndex, int pageSize, out long totalRecords, int? languageId = null)
|
||||
{
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql();
|
||||
|
||||
query?.Select(@"umbracoDocument.nodeId as contentId,
|
||||
query?.Select(@"umbracoDocument.nodeId as contentId,
|
||||
umbracoContent.contentTypeId as contentTypeId,
|
||||
umbracoContentVersion.id as versionId,
|
||||
umbracoContentVersion.userId as userId,
|
||||
@@ -79,86 +75,87 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
|
||||
umbracoContentVersion.[current] as currentDraftVersion,
|
||||
umbracoContentVersion.preventCleanup as preventCleanup,
|
||||
umbracoUser.userName as username")
|
||||
.From<DocumentDto>()
|
||||
.InnerJoin<ContentDto>()
|
||||
.On<DocumentDto, ContentDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<ContentVersionDto>()
|
||||
.On<ContentDto, ContentVersionDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<DocumentVersionDto>()
|
||||
.On<ContentVersionDto, DocumentVersionDto>(left => left.Id, right => right.Id)
|
||||
.LeftJoin<UserDto>()
|
||||
.On<UserDto, ContentVersionDto>(left => left.Id, right => right.UserId)
|
||||
.LeftJoin<ContentVersionCultureVariationDto>()
|
||||
.On<ContentVersionCultureVariationDto, ContentVersionDto>(left => left.VersionId, right => right.Id)
|
||||
.Where<ContentVersionDto>(x => x.NodeId == contentId);
|
||||
.From<DocumentDto>()
|
||||
.InnerJoin<ContentDto>()
|
||||
.On<DocumentDto, ContentDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<ContentVersionDto>()
|
||||
.On<ContentDto, ContentVersionDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<DocumentVersionDto>()
|
||||
.On<ContentVersionDto, DocumentVersionDto>(left => left.Id, right => right.Id)
|
||||
.LeftJoin<UserDto>()
|
||||
.On<UserDto, ContentVersionDto>(left => left.Id, right => right.UserId)
|
||||
.LeftJoin<ContentVersionCultureVariationDto>()
|
||||
.On<ContentVersionCultureVariationDto, ContentVersionDto>(left => left.VersionId, right => right.Id)
|
||||
.Where<ContentVersionDto>(x => x.NodeId == contentId);
|
||||
|
||||
// TODO: If there's not a better way to write this then we need a better way to write this.
|
||||
query = languageId.HasValue
|
||||
? query?.Where<ContentVersionCultureVariationDto>(x => x.LanguageId == languageId.Value)
|
||||
: query?.Where("umbracoContentVersionCultureVariation.languageId is null");
|
||||
// TODO: If there's not a better way to write this then we need a better way to write this.
|
||||
query = languageId.HasValue
|
||||
? query?.Where<ContentVersionCultureVariationDto>(x => x.LanguageId == languageId.Value)
|
||||
: query?.Where("umbracoContentVersionCultureVariation.languageId is null");
|
||||
|
||||
query = query?.OrderByDescending<ContentVersionDto>(x => x.Id);
|
||||
query = query?.OrderByDescending<ContentVersionDto>(x => x.Id);
|
||||
|
||||
Page<ContentVersionMeta>? page = _scopeAccessor.AmbientScope?.Database.Page<ContentVersionMeta>(pageIndex + 1, pageSize, query);
|
||||
Page<ContentVersionMeta>? page =
|
||||
_scopeAccessor.AmbientScope?.Database.Page<ContentVersionMeta>(pageIndex + 1, pageSize, query);
|
||||
|
||||
totalRecords = page?.TotalItems ?? 0;
|
||||
totalRecords = page?.TotalItems ?? 0;
|
||||
|
||||
return page?.Items;
|
||||
}
|
||||
return page?.Items;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// Deletes in batches of <see cref="Constants.Sql.MaxParameterCount"/>
|
||||
/// </remarks>
|
||||
public void DeleteVersions(IEnumerable<int> versionIds)
|
||||
/// <inheritdoc />
|
||||
/// <remarks>
|
||||
/// Deletes in batches of <see cref="Constants.Sql.MaxParameterCount" />
|
||||
/// </remarks>
|
||||
public void DeleteVersions(IEnumerable<int> versionIds)
|
||||
{
|
||||
foreach (IEnumerable<int> group in versionIds.InGroupsOf(Constants.Sql.MaxParameterCount))
|
||||
{
|
||||
foreach (IEnumerable<int> group in versionIds.InGroupsOf(Constants.Sql.MaxParameterCount))
|
||||
{
|
||||
var groupedVersionIds = group.ToList();
|
||||
var groupedVersionIds = group.ToList();
|
||||
|
||||
/* Note: We had discussed doing this in a single SQL Command.
|
||||
* If you can work out how to make that work with SQL CE, let me know!
|
||||
* Can use test PerformContentVersionCleanup_WithNoKeepPeriods_DeletesEverythingExceptActive to try things out.
|
||||
*/
|
||||
/* Note: We had discussed doing this in a single SQL Command.
|
||||
* If you can work out how to make that work with SQL CE, let me know!
|
||||
* Can use test PerformContentVersionCleanup_WithNoKeepPeriods_DeletesEverythingExceptActive to try things out.
|
||||
*/
|
||||
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql()
|
||||
.Delete<PropertyDataDto>()
|
||||
.WhereIn<PropertyDataDto>(x => x.VersionId, groupedVersionIds);
|
||||
_scopeAccessor.AmbientScope?.Database.Execute(query);
|
||||
|
||||
query = _scopeAccessor.AmbientScope?.SqlContext.Sql()
|
||||
.Delete<ContentVersionCultureVariationDto>()
|
||||
.WhereIn<ContentVersionCultureVariationDto>(x => x.VersionId, groupedVersionIds);
|
||||
_scopeAccessor.AmbientScope?.Database.Execute(query);
|
||||
|
||||
query = _scopeAccessor.AmbientScope?.SqlContext.Sql()
|
||||
.Delete<DocumentVersionDto>()
|
||||
.WhereIn<DocumentVersionDto>(x => x.Id, groupedVersionIds);
|
||||
_scopeAccessor.AmbientScope?.Database.Execute(query);
|
||||
|
||||
query = _scopeAccessor.AmbientScope?.SqlContext.Sql()
|
||||
.Delete<ContentVersionDto>()
|
||||
.WhereIn<ContentVersionDto>(x => x.Id, groupedVersionIds);
|
||||
_scopeAccessor.AmbientScope?.Database.Execute(query);
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void SetPreventCleanup(int versionId, bool preventCleanup)
|
||||
{
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql()
|
||||
.Update<ContentVersionDto>(x => x.Set(y => y.PreventCleanup, preventCleanup))
|
||||
.Where<ContentVersionDto>(x => x.Id == versionId);
|
||||
.Delete<PropertyDataDto>()
|
||||
.WhereIn<PropertyDataDto>(x => x.VersionId, groupedVersionIds);
|
||||
_scopeAccessor.AmbientScope?.Database.Execute(query);
|
||||
|
||||
query = _scopeAccessor.AmbientScope?.SqlContext.Sql()
|
||||
.Delete<ContentVersionCultureVariationDto>()
|
||||
.WhereIn<ContentVersionCultureVariationDto>(x => x.VersionId, groupedVersionIds);
|
||||
_scopeAccessor.AmbientScope?.Database.Execute(query);
|
||||
|
||||
query = _scopeAccessor.AmbientScope?.SqlContext.Sql()
|
||||
.Delete<DocumentVersionDto>()
|
||||
.WhereIn<DocumentVersionDto>(x => x.Id, groupedVersionIds);
|
||||
_scopeAccessor.AmbientScope?.Database.Execute(query);
|
||||
|
||||
query = _scopeAccessor.AmbientScope?.SqlContext.Sql()
|
||||
.Delete<ContentVersionDto>()
|
||||
.WhereIn<ContentVersionDto>(x => x.Id, groupedVersionIds);
|
||||
_scopeAccessor.AmbientScope?.Database.Execute(query);
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public ContentVersionMeta? Get(int versionId)
|
||||
{
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql();
|
||||
/// <inheritdoc />
|
||||
public void SetPreventCleanup(int versionId, bool preventCleanup)
|
||||
{
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql()
|
||||
.Update<ContentVersionDto>(x => x.Set(y => y.PreventCleanup, preventCleanup))
|
||||
.Where<ContentVersionDto>(x => x.Id == versionId);
|
||||
|
||||
query?.Select(@"umbracoDocument.nodeId as contentId,
|
||||
_scopeAccessor.AmbientScope?.Database.Execute(query);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public ContentVersionMeta? Get(int versionId)
|
||||
{
|
||||
Sql<ISqlContext>? query = _scopeAccessor.AmbientScope?.SqlContext.Sql();
|
||||
|
||||
query?.Select(@"umbracoDocument.nodeId as contentId,
|
||||
umbracoContent.contentTypeId as contentTypeId,
|
||||
umbracoContentVersion.id as versionId,
|
||||
umbracoContentVersion.userId as userId,
|
||||
@@ -167,18 +164,17 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
|
||||
umbracoContentVersion.[current] as currentDraftVersion,
|
||||
umbracoContentVersion.preventCleanup as preventCleanup,
|
||||
umbracoUser.userName as username")
|
||||
.From<DocumentDto>()
|
||||
.InnerJoin<ContentDto>()
|
||||
.On<DocumentDto, ContentDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<ContentVersionDto>()
|
||||
.On<ContentDto, ContentVersionDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<DocumentVersionDto>()
|
||||
.On<ContentVersionDto, DocumentVersionDto>(left => left.Id, right => right.Id)
|
||||
.LeftJoin<UserDto>()
|
||||
.On<UserDto, ContentVersionDto>(left => left.Id, right => right.UserId)
|
||||
.Where<ContentVersionDto>(x => x.Id == versionId);
|
||||
.From<DocumentDto>()
|
||||
.InnerJoin<ContentDto>()
|
||||
.On<DocumentDto, ContentDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<ContentVersionDto>()
|
||||
.On<ContentDto, ContentVersionDto>(left => left.NodeId, right => right.NodeId)
|
||||
.InnerJoin<DocumentVersionDto>()
|
||||
.On<ContentVersionDto, DocumentVersionDto>(left => left.Id, right => right.Id)
|
||||
.LeftJoin<UserDto>()
|
||||
.On<UserDto, ContentVersionDto>(left => left.Id, right => right.UserId)
|
||||
.Where<ContentVersionDto>(x => x.Id == versionId);
|
||||
|
||||
return _scopeAccessor.AmbientScope?.Database.Single<ContentVersionMeta>(query);
|
||||
}
|
||||
return _scopeAccessor.AmbientScope?.Database.Single<ContentVersionMeta>(query);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user