Fixes when SetCultureEdited and AdjustDates is called.

This commit is contained in:
Shannon
2021-07-13 09:52:31 -06:00
parent c08b5173a2
commit 961d70e352

View File

@@ -457,9 +457,6 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
Database.Insert(propertyDataDto);
}
// refresh content
entity.SetCultureEdited(editedCultures);
// if !publishing, we may have a new name != current publish name,
// also impacts 'edited'
if (!publishing && entity.PublishName != entity.Name)
@@ -485,19 +482,22 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
// persist the variations
if (entity.ContentType.VariesByCulture())
{
// bump dates to align cultures to version
entity.AdjustDates(contentVersionDto.VersionDate, publishing);
// names also impact 'edited'
// ReSharper disable once UseDeconstruction
foreach (ContentCultureInfos cultureInfo in entity.CultureInfos)
{
if (cultureInfo.Name != entity.GetPublishName(cultureInfo.Culture))
{
(editedCultures ?? (editedCultures = new HashSet<string>(StringComparer.OrdinalIgnoreCase))).Add(cultureInfo.Culture);
(editedCultures ??= new HashSet<string>(StringComparer.OrdinalIgnoreCase)).Add(cultureInfo.Culture);
}
}
// refresh content
entity.SetCultureEdited(editedCultures);
// bump dates to align cultures to version
entity.AdjustDates(contentVersionDto.VersionDate, publishing);
// insert content variations
Database.BulkInsertRecords(GetContentVariationDtos(entity, publishing));
@@ -651,9 +651,6 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
// insert property data
ReplacePropertyValues(entity, versionToDelete, publishing ? entity.PublishedVersionId : 0, out var edited, out HashSet<string> editedCultures);
// refresh content
entity.SetCultureEdited(editedCultures);
// if !publishing, we may have a new name != current publish name,
// also impacts 'edited'
if (!publishing && entity.PublishName != entity.Name)
@@ -663,9 +660,6 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
if (entity.ContentType.VariesByCulture())
{
// bump dates to align cultures to version
entity.AdjustDates(contentVersionDto.VersionDate, publishing);
// names also impact 'edited'
// ReSharper disable once UseDeconstruction
foreach (var cultureInfo in entity.CultureInfos)
@@ -673,7 +667,7 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
if (cultureInfo.Name != entity.GetPublishName(cultureInfo.Culture))
{
edited = true;
(editedCultures ?? (editedCultures = new HashSet<string>(StringComparer.OrdinalIgnoreCase))).Add(cultureInfo.Culture);
(editedCultures ??= new HashSet<string>(StringComparer.OrdinalIgnoreCase)).Add(cultureInfo.Culture);
// TODO: change tracking
// at the moment, we don't do any dirty tracking on property values, so we don't know whether the
@@ -683,6 +677,12 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
}
}
// refresh content
entity.SetCultureEdited(editedCultures);
// bump dates to align cultures to version
entity.AdjustDates(contentVersionDto.VersionDate, publishing);
// replace the content version variations (rather than updating)
// only need to delete for the version that existed, the new version (if any) has no property data yet
var deleteContentVariations = Sql().Delete<ContentVersionCultureVariationDto>().Where<ContentVersionCultureVariationDto>(x => x.VersionId == versionToDelete);