From aac278a4e3ba381dcf57ef233afca38ff0bf6579 Mon Sep 17 00:00:00 2001 From: Marc Goodson Date: Mon, 26 Nov 2018 00:07:27 +0000 Subject: [PATCH] Fix for #3758 - Map NodeId of Audited Item instead of Log entry PK The Entity NodeIds aren't being passed through from the database Audit table, instead the Log Entry Primary Key is used incorrectly instead, this commit fixes it so the NodeId is passed! --- .../Persistence/Repositories/AuditRepository.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs b/src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs index 4fe235346f..0ff233b1fa 100644 --- a/src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs @@ -48,7 +48,7 @@ namespace Umbraco.Core.Persistence.Repositories var sql = GetBaseQuery(false); if (query == null) query = new Query(); - + var queryHasWhereClause = query.GetWhereClauses().Any(); var translatorIds = new SqlTranslator(sql, query); var translatedQuery = translatorIds.Translate(); @@ -59,7 +59,7 @@ namespace Umbraco.Core.Persistence.Repositories { var filterSql = new Sql(); foreach (var filterClause in customFilterWheres) - { + { filterSql.Append($"AND ({filterClause.Item1})", filterClause.Item2); } @@ -70,7 +70,7 @@ namespace Umbraco.Core.Persistence.Repositories { var filterSql = new Sql(); foreach (var filterClause in auditTypeFilter) - { + { filterSql.Append("AND (logHeader = @logHeader)", new { logHeader = filterClause.ToString() }); } @@ -80,14 +80,14 @@ namespace Umbraco.Core.Persistence.Repositories if (orderDirection == Direction.Descending) translatedQuery.OrderByDescending("Datestamp"); else - translatedQuery.OrderBy("Datestamp"); + translatedQuery.OrderBy("Datestamp"); // Get page of results and total count var pagedResult = Database.Page(pageIndex + 1, pageSize, translatedQuery); totalRecords = pagedResult.TotalItems; var pages = pagedResult.Items.Select( - dto => new AuditItem(dto.Id, dto.Comment, Enum.ParseOrNull(dto.Header) ?? AuditType.Custom, dto.UserId)).ToArray(); + dto => new AuditItem(dto.NodeId, dto.Comment, Enum.ParseOrNull(dto.Header) ?? AuditType.Custom, dto.UserId)).ToArray(); //Mapping the DateStamp for (var i = 0; i < pages.Length; i++) @@ -142,7 +142,7 @@ namespace Umbraco.Core.Persistence.Repositories protected override IEnumerable PerformGetByQuery(IQuery query) { throw new NotImplementedException(); - } + } protected override string GetBaseWhereClause() { @@ -167,7 +167,7 @@ namespace Umbraco.Core.Persistence.Repositories // Apply filter if (filterSql != null) { - //ensure we don't append a WHERE if there is already one + //ensure we don't append a WHERE if there is already one var sqlFilter = hasWhereClause ? filterSql.SQL : " WHERE " + filterSql.SQL.TrimStart("AND ");