From d2cfe8f3b9558474eca46f3e0e7a6de6a37c2c62 Mon Sep 17 00:00:00 2001 From: Stephan Date: Mon, 22 Oct 2018 18:21:00 +0200 Subject: [PATCH] Fix GetVersionsSlim --- .../Implement/DocumentRepository.cs | 20 +++++++++---------- .../Services/ContentServiceTests.cs | 16 +++++++++++++++ 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs index 20c26b2f66..322ea5814d 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs @@ -966,17 +966,17 @@ namespace Umbraco.Core.Persistence.Repositories.Implement if (templateId.HasValue && templateId.Value > 0) templateIds.Add(templateId.Value); } - - // need properties - var versionId = dto.DocumentVersionDto.Id; - var publishedVersionId = dto.Published ? dto.PublishedVersionDto.Id : 0; - var temp = new TempContent(dto.NodeId, versionId, publishedVersionId, contentType, c) - { - Template1Id = dto.DocumentVersionDto.TemplateId - }; - if (dto.Published) temp.Template2Id = dto.PublishedVersionDto.TemplateId; - temps.Add(temp); } + + // need temps, for properties, templates and variations + var versionId = dto.DocumentVersionDto.Id; + var publishedVersionId = dto.Published ? dto.PublishedVersionDto.Id : 0; + var temp = new TempContent(dto.NodeId, versionId, publishedVersionId, contentType, c) + { + Template1Id = dto.DocumentVersionDto.TemplateId + }; + if (dto.Published) temp.Template2Id = dto.PublishedVersionDto.TemplateId; + temps.Add(temp); } if (!slim) diff --git a/src/Umbraco.Tests/Services/ContentServiceTests.cs b/src/Umbraco.Tests/Services/ContentServiceTests.cs index ef34f4bc24..3d22f4c04e 100644 --- a/src/Umbraco.Tests/Services/ContentServiceTests.cs +++ b/src/Umbraco.Tests/Services/ContentServiceTests.cs @@ -2330,6 +2330,22 @@ namespace Umbraco.Tests.Services } Console.WriteLine("-"); + var versionsSlim = ServiceContext.ContentService.GetVersionsSlim(page.Id, 0, 50).ToArray(); + Assert.AreEqual(5, versionsSlim.Length); + + for (var i = 0; i < 5; i++) + { + Console.Write("[{0}] ", i); + Console.WriteLine(versionsSlim[i].UpdateDate.ToString("O").Substring(11)); + Console.WriteLine(" fr: {0}", versionsSlim[i].GetUpdateDate("fr")?.ToString("O").Substring(11)); + Console.WriteLine(" da: {0}", versionsSlim[i].GetUpdateDate("da")?.ToString("O").Substring(11)); + } + Console.WriteLine("-"); + + // what we do in the controller to get rollback versions + var versionsSlimFr = versionsSlim.Where(x => x.UpdateDate == x.GetUpdateDate("fr")).ToArray(); + Assert.AreEqual(3, versionsSlimFr.Length); + // alas, at the moment we do *not* properly track 'dirty' for cultures, meaning // that we cannot synchronize dates the way we do with publish dates - and so this // would fail - the version UpdateDate is greater than the cultures'.