Add nullability to nucache & lucene projects

This commit is contained in:
Nikolaj Geisle
2022-03-30 13:34:56 +02:00
parent b52c4e50cf
commit 05a08bef63
105 changed files with 736 additions and 619 deletions

View File

@@ -117,9 +117,9 @@ namespace Umbraco.Cms.Infrastructure.PublishedCache.Persistence
}
public void Rebuild(
IReadOnlyCollection<int> contentTypeIds = null,
IReadOnlyCollection<int> mediaTypeIds = null,
IReadOnlyCollection<int> memberTypeIds = null)
IReadOnlyCollection<int>? contentTypeIds = null,
IReadOnlyCollection<int>? mediaTypeIds = null,
IReadOnlyCollection<int>? memberTypeIds = null)
{
IContentCacheDataSerializer serializer = _contentCacheDataSerializerFactory.Create(
ContentCacheDataSerializerEntityType.Document
@@ -134,7 +134,7 @@ namespace Umbraco.Cms.Infrastructure.PublishedCache.Persistence
}
// assumes content tree lock
private void RebuildContentDbCache(IContentCacheDataSerializer serializer, int groupSize, IReadOnlyCollection<int> contentTypeIds)
private void RebuildContentDbCache(IContentCacheDataSerializer serializer, int groupSize, IReadOnlyCollection<int>? contentTypeIds)
{
Guid contentObjectType = Constants.ObjectTypes.Document;
@@ -200,7 +200,7 @@ WHERE cmsContentNu.nodeId IN (
}
// assumes media tree lock
private void RebuildMediaDbCache(IContentCacheDataSerializer serializer, int groupSize, IReadOnlyCollection<int> contentTypeIds)
private void RebuildMediaDbCache(IContentCacheDataSerializer serializer, int groupSize, IReadOnlyCollection<int>? contentTypeIds)
{
var mediaObjectType = Constants.ObjectTypes.Media;
@@ -251,7 +251,7 @@ WHERE cmsContentNu.nodeId IN (
}
// assumes member tree lock
private void RebuildMemberDbCache(IContentCacheDataSerializer serializer, int groupSize, IReadOnlyCollection<int> contentTypeIds)
private void RebuildMemberDbCache(IContentCacheDataSerializer serializer, int groupSize, IReadOnlyCollection<int>? contentTypeIds)
{
Guid memberObjectType = Constants.ObjectTypes.Member;
@@ -388,23 +388,26 @@ AND cmsContentNu.nodeId IS NULL
// sanitize - names should be ok but ... never knows
if (content.ContentType.VariesByCulture())
{
ContentCultureInfosCollection infos = content is IContent document
ContentCultureInfosCollection? infos = content is IContent document
? published
? document.PublishCultureInfos
: document.CultureInfos
: content.CultureInfos;
// ReSharper disable once UseDeconstruction
foreach (ContentCultureInfos cultureInfo in infos)
if (infos is not null)
{
var cultureIsDraft = !published && content is IContent d && d.IsCultureEdited(cultureInfo.Culture);
cultureData[cultureInfo.Culture] = new CultureVariation
foreach (ContentCultureInfos cultureInfo in infos)
{
Name = cultureInfo.Name,
UrlSegment = content.GetUrlSegment(_shortStringHelper, _urlSegmentProviders, cultureInfo.Culture),
Date = content.GetUpdateDate(cultureInfo.Culture) ?? DateTime.MinValue,
IsDraft = cultureIsDraft
};
var cultureIsDraft = !published && content is IContent d && d.IsCultureEdited(cultureInfo.Culture);
cultureData[cultureInfo.Culture] = new CultureVariation
{
Name = cultureInfo.Name,
UrlSegment = content.GetUrlSegment(_shortStringHelper, _urlSegmentProviders, cultureInfo.Culture),
Date = content.GetUpdateDate(cultureInfo.Culture) ?? DateTime.MinValue,
IsDraft = cultureIsDraft
};
}
}
}
@@ -430,7 +433,7 @@ AND cmsContentNu.nodeId IS NULL
}
// we want arrays, we want them all loaded, not an enumerable
private Sql<ISqlContext> SqlContentSourcesSelect(Func<ISqlContext, Sql<ISqlContext>> joins = null)
private Sql<ISqlContext> SqlContentSourcesSelect(Func<ISqlContext, Sql<ISqlContext>>? joins = null)
{
var sqlTemplate = SqlContext.Templates.Get(Constants.SqlTemplates.NuCacheDatabaseDataSource.ContentSourcesSelect, tsql =>
tsql.Select<NodeDto>(x => Alias(x.NodeId, "Id"), x => Alias(x.UniqueId, "Key"),
@@ -538,7 +541,7 @@ AND cmsContentNu.nodeId IS NULL
/// </summary>
/// <param name="scope"></param>
/// <returns></returns>
private Sql<ISqlContext> SqlContentSourcesCount(Func<ISqlContext, Sql<ISqlContext>> joins = null)
private Sql<ISqlContext> SqlContentSourcesCount(Func<ISqlContext, Sql<ISqlContext>>? joins = null)
{
var sqlTemplate = SqlContext.Templates.Get(Constants.SqlTemplates.NuCacheDatabaseDataSource.ContentSourcesCount, tsql =>
tsql.Select<NodeDto>(x => Alias(x.NodeId, "Id"))
@@ -562,7 +565,7 @@ AND cmsContentNu.nodeId IS NULL
return sql;
}
private Sql<ISqlContext> SqlMediaSourcesSelect(Func<ISqlContext, Sql<ISqlContext>> joins = null)
private Sql<ISqlContext> SqlMediaSourcesSelect(Func<ISqlContext, Sql<ISqlContext>>? joins = null)
{
var sqlTemplate = SqlContext.Templates.Get(Constants.SqlTemplates.NuCacheDatabaseDataSource.MediaSourcesSelect, tsql =>
tsql.Select<NodeDto>(x => Alias(x.NodeId, "Id"), x => Alias(x.UniqueId, "Key"),
@@ -588,7 +591,7 @@ AND cmsContentNu.nodeId IS NULL
return sql;
}
private Sql<ISqlContext> SqlMediaSourcesCount(Func<ISqlContext, Sql<ISqlContext>> joins = null)
private Sql<ISqlContext> SqlMediaSourcesCount(Func<ISqlContext, Sql<ISqlContext>>? joins = null)
{
var sqlTemplate = SqlContext.Templates.Get(Constants.SqlTemplates.NuCacheDatabaseDataSource.MediaSourcesCount, tsql =>
tsql.Select<NodeDto>(x => Alias(x.NodeId, "Id")).From<NodeDto>());
@@ -668,9 +671,9 @@ AND cmsContentNu.nodeId IS NULL
}
}
public IEnumerable<ContentNodeKit> GetTypeContentSources(IEnumerable<int> ids)
public IEnumerable<ContentNodeKit> GetTypeContentSources(IEnumerable<int>? ids)
{
if (!ids.Any())
if (!ids?.Any() ?? false)
yield break;
var sql = SqlContentSourcesSelect()
@@ -802,8 +805,8 @@ AND cmsContentNu.nodeId IS NULL
private ContentNodeKit CreateContentNodeKit(ContentSourceDto dto, IContentCacheDataSerializer serializer)
{
ContentData d = null;
ContentData p = null;
ContentData? d = null;
ContentData? p = null;
if (dto.Edited)
{
@@ -823,14 +826,14 @@ AND cmsContentNu.nodeId IS NULL
d = new ContentData(
dto.EditName,
deserializedContent.UrlSegment,
deserializedContent?.UrlSegment,
dto.VersionId,
dto.EditVersionDate,
dto.EditWriterId,
dto.EditTemplateId,
published,
deserializedContent.PropertyData,
deserializedContent.CultureData);
deserializedContent?.PropertyData,
deserializedContent?.CultureData);
}
}
@@ -852,14 +855,14 @@ AND cmsContentNu.nodeId IS NULL
p = new ContentData(
dto.PubName,
deserializedContent.UrlSegment,
deserializedContent?.UrlSegment,
dto.VersionId,
dto.PubVersionDate,
dto.PubWriterId,
dto.PubTemplateId,
published,
deserializedContent.PropertyData,
deserializedContent.CultureData);
deserializedContent?.PropertyData,
deserializedContent?.CultureData);
}
}
@@ -887,8 +890,8 @@ AND cmsContentNu.nodeId IS NULL
dto.CreatorId,
-1,
published,
deserializedMedia.PropertyData,
deserializedMedia.CultureData);
deserializedMedia?.PropertyData,
deserializedMedia?.CultureData);
var n = new ContentNode(dto.Id, dto.Key,
dto.Level, dto.Path, dto.SortOrder, dto.ParentId, dto.CreateDate, dto.CreatorId);