More content refactoring (tests)

This commit is contained in:
Stephan
2017-11-15 08:53:20 +01:00
parent fcf2b27953
commit ef11fda272
108 changed files with 1803 additions and 1804 deletions

View File

@@ -14,21 +14,24 @@ namespace Umbraco.Web.PublishedCache.NuCache.DataSource
public int SortOrder { get; set; }
public int ParentId { get; set; }
public Guid Version { get; set; }
public DateTime CreateDate { get; set; }
public int CreatorId { get; set; }
public string DraftName { get; set; }
public Guid DraftVersion { get; set; }
public DateTime DraftVersionDate { get; set; }
public int DraftWriterId { get; set; }
public int DraftTemplateId { get; set; }
public string DraftData { get; set; }
public string PubName { get; set; }
public Guid PubVersion { get; set; }
public DateTime PubVersionDate { get; set; }
public int PubWriterId { get; set; }
public int PubTemplateId { get; set; }
public string PubData { get; set; }
public bool Published { get; set; }
public bool Edited { get; set; }
}
}

View File

@@ -16,19 +16,32 @@ namespace Umbraco.Web.PublishedCache.NuCache.DataSource
{
public ContentNodeKit GetContentSource(IScopeUnitOfWork uow, int id)
{
// fixme - missing things
//
// new: documentDto.publishDate
// new: documentDto.publishUserId
// new: documentDto.templateId - the published one
// fixme still, we have an issue with names
//
// node.text == contentVersion.text (and we use contentVersion.text to keep track of things)
// !! when creating a new version, the old version versionDate = publishDate, what else?
//
// new: documentDto.publishName === THE ONE WE USE FOR URLS !!
//
var dto = uow.Database.Fetch<ContentSourceDto>(new Sql(@"SELECT
n.id Id, n.uniqueId Uid,
uContent.contentTypeId ContentTypeId,
n.level Level, n.path Path, n.sortOrder SortOrder, n.parentId ParentId,
n.level Level, n.path Path, n.sortOrder SortOrder, n.parentId ParentId, cver.versionId Version,
n.createDate CreateDate, n.nodeUser CreatorId,
docDraft.text DraftName, docDraft.versionId DraftVersion, docDraft.updateDate DraftVersionDate, docDraft.writerUserId DraftWriterId, docDraft.templateId DraftTemplateId,
cver.text DraftName, c.updateDate DraftVersionDate, c.writerUserId DraftWriterId, dver.templateId DraftTemplateId, doc.edited Edited,
nuDraft.data DraftData,
docPub.text PubName, docPub.versionId PubVersion, docPub.updateDate PubVersionDate, docPub.writerUserId PubWriterId, docPub.templateId PubTemplateId,
docPub.text PubName, doc.publishDate PubVersionDate, doc.publishUserId PubWriterId, doc.templateId PubTemplateId, doc.published Published,
nuPub.data PubData
FROM umbracoNode n
JOIN uContent ON (uContent.nodeId=n.id)
LEFT JOIN cmsDocument docDraft ON (docDraft.nodeId=n.id AND docDraft.newest=1 AND docDraft.published=0)
LEFT JOIN cmsDocument docPub ON (docPub.nodeId=n.id AND docPub.published=1)
JOIN uContent c ON (c.nodeId=n.id)
LEFT JOIN uDocument doc ON (doc.nodeId=n.id)
LEFT JOIN uContentVersion cver ON (n.id=cver.nodeId AND cver.current=1)
LEFT JOIN uDocumentVersion dver ON (cver.id=dver.id)
LEFT JOIN cmsContentNu nuDraft ON (nuDraft.nodeId=n.id AND nuDraft.published=0)
LEFT JOIN cmsContentNu nuPub ON (nuPub.nodeId=n.id AND nuPub.published=1)
WHERE n.nodeObjectType=@objType AND n.id=@id
@@ -49,7 +62,7 @@ n.text PubName, ver.versionId PubVersion, ver.versionDate PubVersionDate,
nuPub.data PubData
FROM umbracoNode n
JOIN uContent ON (uContent.nodeId=n.id)
JOIN cmsContentVersion ver ON (ver.contentId=n.id)
JOIN uContentVersion ver ON (ver.contentId=n.id)
LEFT JOIN cmsContentNu nuPub ON (nuPub.nodeId=n.id AND nuPub.published=1)
WHERE n.nodeObjectType=@objType AND n.id=@id
", new { objType = Constants.ObjectTypes.Media, /*id =*/ id })).FirstOrDefault();
@@ -93,7 +106,7 @@ n.text PubName, ver.versionId PubVersion, ver.versionDate PubVersionDate,
nuPub.data PubData
FROM umbracoNode n
JOIN uContent ON (uContent.nodeId=n.id)
JOIN cmsContentVersion ver ON (ver.contentId=n.id)
JOIN uContentVersion ver ON (ver.contentId=n.id)
LEFT JOIN cmsContentNu nuPub ON (nuPub.nodeId=n.id AND nuPub.published=1)
WHERE n.nodeObjectType=@objType
ORDER BY n.level, n.sortOrder
@@ -137,7 +150,7 @@ nuPub.data PubData
FROM umbracoNode n
JOIN umbracoNode x ON (n.id=x.id OR n.path LIKE " + uow.SqlContext.SqlSyntax.GetConcat("x.path", "',%'") + @")
JOIN uContent ON (uContent.nodeId=n.id)
JOIN cmsContentVersion ver ON (ver.contentId=n.id)
JOIN uContentVersion ver ON (ver.contentId=n.id)
LEFT JOIN cmsContentNu nuPub ON (nuPub.nodeId=n.id AND nuPub.published=1)
WHERE n.nodeObjectType=@objType AND x.id=@id
ORDER BY n.level, n.sortOrder
@@ -179,7 +192,7 @@ n.text PubName, ver.versionId PubVersion, ver.versionDate PubVersionDate,
nuPub.data PubData
FROM umbracoNode n
JOIN uContent ON (uContent.nodeId=n.id)
JOIN cmsContentVersion ver ON (ver.contentId=n.id)
JOIN uContentVersion ver ON (ver.contentId=n.id)
LEFT JOIN cmsContentNu nuPub ON (nuPub.nodeId=n.id AND nuPub.published=1)
WHERE n.nodeObjectType=@objType AND uContent.contentTypeId IN (@ids)
ORDER BY n.level, n.sortOrder
@@ -191,7 +204,7 @@ ORDER BY n.level, n.sortOrder
ContentData d = null;
ContentData p = null;
if (dto.DraftVersion != Guid.Empty)
if (dto.Edited)
{
if (dto.DraftData == null)
{
@@ -205,7 +218,7 @@ ORDER BY n.level, n.sortOrder
Name = dto.DraftName,
Published = false,
TemplateId = dto.DraftTemplateId,
Version = dto.DraftVersion,
Version = dto.Version,
VersionDate = dto.DraftVersionDate,
WriterId = dto.DraftWriterId,
Properties = DeserializeData(dto.DraftData)
@@ -213,7 +226,7 @@ ORDER BY n.level, n.sortOrder
}
}
if (dto.PubVersion != Guid.Empty)
if (dto.Published)
{
if (dto.PubData == null)
{
@@ -227,7 +240,7 @@ ORDER BY n.level, n.sortOrder
Name = dto.PubName,
Published = true,
TemplateId = dto.PubTemplateId,
Version = dto.PubVersion,
Version = dto.Version,
VersionDate = dto.PubVersionDate,
WriterId = dto.PubWriterId,
Properties = DeserializeData(dto.PubData)
@@ -259,7 +272,7 @@ ORDER BY n.level, n.sortOrder
Name = dto.PubName,
Published = true,
TemplateId = -1,
Version = dto.PubVersion,
Version = dto.Version,
VersionDate = dto.PubVersionDate,
WriterId = dto.CreatorId, // what-else?
Properties = DeserializeData(dto.PubData)

View File

@@ -19,15 +19,17 @@ namespace Umbraco.Web.PublishedCache.NuCache
private readonly ICacheProvider _snapshotCache;
private readonly IMemberService _memberService;
private readonly IDataTypeService _dataTypeService;
private readonly ILocalizationService _localizationService;
private readonly PublishedContentTypeCache _contentTypeCache;
private readonly bool _previewDefault;
public MemberCache(bool previewDefault, ICacheProvider snapshotCache, IMemberService memberService, IDataTypeService dataTypeService, PublishedContentTypeCache contentTypeCache, IPublishedSnapshotAccessor publishedSnapshotAccessor)
public MemberCache(bool previewDefault, ICacheProvider snapshotCache, IMemberService memberService, IDataTypeService dataTypeService, ILocalizationService localizationService, PublishedContentTypeCache contentTypeCache, IPublishedSnapshotAccessor publishedSnapshotAccessor)
{
_snapshotCache = snapshotCache;
_publishedSnapshotAccessor = publishedSnapshotAccessor;
_memberService = memberService;
_dataTypeService = dataTypeService;
_localizationService = localizationService;
_previewDefault = previewDefault;
_contentTypeCache = contentTypeCache;
}
@@ -137,8 +139,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
var result = _memberService.GetById(id);
if (result == null) return null;
var exs = new EntityXmlSerializer();
var s = exs.Serialize(_dataTypeService, result);
var s = EntityXmlSerializer.Serialize(_dataTypeService, _localizationService, result);
var n = s.GetXmlNode();
return n.CreateNavigator();
}

View File

@@ -998,7 +998,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
{
ContentCache = new ContentCache(previewDefault, contentSnap, snapshotCache, elementsCache, new DomainHelper(domainCache)),
MediaCache = new MediaCache(previewDefault, mediaSnap, snapshotCache, elementsCache),
MemberCache = new MemberCache(previewDefault, snapshotCache, _serviceContext.MemberService, _serviceContext.DataTypeService, memberTypeCache, PublishedSnapshotAccessor),
MemberCache = new MemberCache(previewDefault, snapshotCache, _serviceContext.MemberService, _serviceContext.DataTypeService, _serviceContext.LocalizationService, memberTypeCache, PublishedSnapshotAccessor),
DomainCache = domainCache,
SnapshotCache = snapshotCache,
ElementsCache = elementsCache
@@ -1094,13 +1094,6 @@ namespace Umbraco.Web.PublishedCache.NuCache
// saving the published version = update data
pc = content;
}
else
{
// saving the non-published version, but there is a published version
// check whether we have changes that impact the published version (move...)
if (content.HasPublishedVersion && HasChangesImpactingAllVersions(content))
pc = sender.GetByVersion(content.PublishedVersionGuid);
}
if (pc == null)
return;
@@ -1281,11 +1274,7 @@ WHERE cmsContentNu.nodeId IN (
var items = new List<ContentNuDto>();
var guids = new List<Guid>();
foreach (var c in descendants)
{
items.Add(GetDto(c, c.Published));
if (c.Published == false && c.HasPublishedVersion)
guids.Add(c.PublishedVersionGuid);
}
items.AddRange(guids.Select(x => GetDto(repository.GetByVersion(x), true)));
db.BulkInsertRecords(items);