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

@@ -31,21 +31,21 @@ namespace Umbraco.Cms.Infrastructure.PublishedCache
#region Get, Has
public override IPublishedContent GetById(bool preview, int contentId)
public override IPublishedContent? GetById(bool preview, int contentId)
{
// ignore preview, there's only draft for media
var n = _snapshot.Get(contentId);
return n?.PublishedModel;
}
public override IPublishedContent GetById(bool preview, Guid contentId)
public override IPublishedContent? GetById(bool preview, Guid contentId)
{
// ignore preview, there's only draft for media
var n = _snapshot.Get(contentId);
return n?.PublishedModel;
}
public override IPublishedContent GetById(bool preview, Udi contentId)
public override IPublishedContent? GetById(bool preview, Udi contentId)
{
var guidUdi = contentId as GuidUdi;
if (guidUdi == null)
@@ -74,7 +74,7 @@ namespace Umbraco.Cms.Infrastructure.PublishedCache
culture = _variationContextAccessor?.VariationContext?.Culture ?? "";
var atRoot = _snapshot.GetAtRoot().Select(x => x.PublishedModel);
return culture == "*" ? atRoot : atRoot.Where(x => x.IsInvariantOrHasCulture(culture));
return culture == "*" ? atRoot.WhereNotNull() : atRoot.Where(x => x?.IsInvariantOrHasCulture(culture) ?? false).WhereNotNull();
}
public override bool HasContent(bool preview)
@@ -86,21 +86,21 @@ namespace Umbraco.Cms.Infrastructure.PublishedCache
#region XPath
public override IPublishedContent GetSingleByXPath(bool preview, string xpath, XPathVariable[] vars)
public override IPublishedContent? GetSingleByXPath(bool preview, string xpath, XPathVariable[] vars)
{
var navigator = CreateNavigator(preview);
var iterator = navigator.Select(xpath, vars);
return GetSingleByXPath(iterator);
}
public override IPublishedContent GetSingleByXPath(bool preview, XPathExpression xpath, XPathVariable[] vars)
public override IPublishedContent? GetSingleByXPath(bool preview, XPathExpression xpath, XPathVariable[] vars)
{
var navigator = CreateNavigator(preview);
var iterator = navigator.Select(xpath, vars);
return GetSingleByXPath(iterator);
}
private static IPublishedContent GetSingleByXPath(XPathNodeIterator iterator)
private static IPublishedContent? GetSingleByXPath(XPathNodeIterator iterator)
{
if (iterator.MoveNext() == false) return null;
@@ -146,7 +146,7 @@ namespace Umbraco.Cms.Infrastructure.PublishedCache
return navigator;
}
public override XPathNavigator CreateNodeNavigator(int id, bool preview)
public override XPathNavigator? CreateNodeNavigator(int id, bool preview)
{
var source = new Source(this, preview);
var navigator = new NavigableNavigator(source);
@@ -157,11 +157,11 @@ namespace Umbraco.Cms.Infrastructure.PublishedCache
#region Content types
public override IPublishedContentType GetContentType(int id) => _snapshot.GetContentType(id);
public override IPublishedContentType? GetContentType(int id) => _snapshot.GetContentType(id);
public override IPublishedContentType GetContentType(string alias) => _snapshot.GetContentType(alias);
public override IPublishedContentType? GetContentType(string alias) => _snapshot.GetContentType(alias);
public override IPublishedContentType GetContentType(Guid key) => _snapshot.GetContentType(key);
public override IPublishedContentType? GetContentType(Guid key) => _snapshot.GetContentType(key);
#endregion