docs: XML warnings (#14663)

* chore: Fix XML warnings

* docs: Fix XML warnings

* docs: Fix XML in resource designer

* docs: Fix XML warnings

* Revert "docs: Fix XML in resource designer"

This reverts commit 8ea61c51ac161e1853ae080db7fe1b4d4cb4d2be.
This commit is contained in:
Nikolaj Brask-Nielsen
2023-09-06 20:08:17 +02:00
committed by GitHub
parent 401c881567
commit 6d48091328
124 changed files with 202 additions and 217 deletions

View File

@@ -49,6 +49,7 @@ public sealed class ImageSharpImageUrlGenerator : IImageUrlGenerator
/// Initializes a new instance of the <see cref="ImageSharpImageUrlGenerator" /> class.
/// </summary>
/// <param name="supportedImageFileTypes">The supported image file types/extensions.</param>
/// <param name="options">The ImageSharp middleware options.</param>
/// <param name="requestAuthorizationUtilities">Contains helpers that allow authorization of image requests.</param>
/// <remarks>
/// This constructor is only used for testing.

View File

@@ -22,7 +22,7 @@ internal class SqlServerEFCoreDistributedLockingMechanism<T> : IDistributedLocki
private readonly Lazy<IEFCoreScopeAccessor<T>> _scopeAccessor; // Hooray it's a circular dependency.
/// <summary>
/// Initializes a new instance of the <see cref="SqlServerDistributedLockingMechanism" /> class.
/// Initializes a new instance of the <see cref="SqlServerEFCoreDistributedLockingMechanism{T}"/> class.
/// </summary>
public SqlServerEFCoreDistributedLockingMechanism(
ILogger<SqlServerEFCoreDistributedLockingMechanism<T>> logger,

View File

@@ -35,7 +35,7 @@ public abstract class CacheRefresherBase<TNotification> : ICacheRefresher
public abstract string Name { get; }
/// <summary>
/// Gets the <see cref="ICacheRefresherNotificationFactory" /> for <see cref="TNotification" />
/// Gets the <see cref="ICacheRefresherNotificationFactory" /> for <typeparamref name="TNotification"/>.
/// </summary>
protected ICacheRefresherNotificationFactory NotificationFactory { get; }

View File

@@ -14,7 +14,7 @@ public abstract class JsonCacheRefresherBase<TNotification, TJsonPayload> : Cach
where TNotification : CacheRefresherNotification
{
/// <summary>
/// Initializes a new instance of the <see cref="JsonCacheRefresherBase{TInstanceType}" />.
/// Initializes a new instance of the <see cref="JsonCacheRefresherBase{TNotification, TJsonPayload}"/> class.
/// </summary>
protected JsonCacheRefresherBase(
AppCaches appCaches,

View File

@@ -37,7 +37,7 @@ public class EventClearingObservableCollection<TValue> : ObservableCollection<TV
}
/// <summary>
/// Clears all event handlers for the <see cref="CollectionChanged" /> event
/// Clears all event handlers for the <see cref="INotifyCollectionChanged.CollectionChanged" /> event.
/// </summary>
public void ClearCollectionChangedEvents() => _changed = null;

View File

@@ -1,4 +1,4 @@
using System.Collections.ObjectModel;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
namespace Umbraco.Cms.Core.Collections;
@@ -84,7 +84,7 @@ public class ObservableDictionary<TKey, TValue> : ObservableCollection<TValue>,
}
/// <summary>
/// Clears all <see cref="CollectionChanged" /> event handlers
/// Clears all <see cref="INotifyCollectionChanged.CollectionChanged" /> event handlers
/// </summary>
public void ClearCollectionChangedEvents() => _changed = null;

View File

@@ -1,3 +1,4 @@
using System.Reflection;
using Umbraco.Cms.Core.Semver;
namespace Umbraco.Cms.Core.Configuration;

View File

@@ -53,7 +53,7 @@ public static partial class Constants
public static readonly char[] Comma = { ',' };
/// <summary>
/// Char array containing only &
/// Char array containing only &amp;
/// </summary>
public static readonly char[] Ampersand = { '&' };
@@ -88,7 +88,7 @@ public static partial class Constants
public static readonly char[] QuestionMark = { '?' };
/// <summary>
/// Char array containing ? &
/// Char array containing ? &amp;
/// </summary>
public static readonly char[] QuestionMarkAmpersand = { '?', '&' };

View File

@@ -33,8 +33,8 @@ public class DelegateEqualityComparer<T> : IEqualityComparer<T>
/// <returns>
/// true if the specified objects are equal; otherwise, false.
/// </returns>
/// <param name="x">The first object of type <paramref name="T" /> to compare.</param>
/// <param name="y">The second object of type <paramref name="T" /> to compare.</param>
/// <param name="x">The first object of type <typeparamref name="T"/> to compare.</param>
/// <param name="y">The second object of type <typeparamref name="T"/> to compare.</param>
public bool Equals(T? x, T? y) => _equals.Invoke(x, y);
/// <summary>

View File

@@ -6,7 +6,7 @@ using Umbraco.Cms.Core.Models.PublishedContent;
namespace Umbraco.Extensions;
/// <summary>
/// Provides extension methods to the <see cref="IFactory" /> class.
/// Provides extension methods to the <see cref="IServiceProvider" /> class.
/// </summary>
public static class ServiceProviderExtensions
{
@@ -28,7 +28,7 @@ public static class ServiceProviderExtensions
/// <summary>
/// Creates an instance of a service, with arguments.
/// </summary>
/// <param name="serviceProvider">The <see cref="IServiceProvider" /></param>
/// <param name="serviceProvider">The <see cref="IServiceProvider" />.</param>
/// <param name="type">The type of the instance.</param>
/// <param name="args">Named arguments.</param>
/// <returns>An instance of the specified type.</returns>

View File

@@ -167,7 +167,7 @@ public static class ExpressionHelper
}
/// <summary>
/// Gets a <see cref="MethodInfo" /> from an <see cref="Expression{Action{T}}" /> provided it refers to a method call.
/// Gets a <see cref="MethodInfo" /> from an <see cref="Expression{TDelegate}"/> of <see cref="Action{T}"/> provided it refers to a method call.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="fromExpression">From expression.</param>
@@ -254,7 +254,7 @@ public static class ExpressionHelper
}
/// <summary>
/// Gets a <see cref="MemberInfo" /> from an <see cref="Expression{Func{T, TReturn}}" /> provided it refers to member
/// Gets a <see cref="MemberInfo" /> from an <see cref="Expression{TDelegate}" /> of <see cref="Func{T, TReturn}"/> provided it refers to member
/// access.
/// </summary>
/// <typeparam name="T"></typeparam>

View File

@@ -320,6 +320,8 @@ public static class ContentExtensions
/// Stores a file.
/// </summary>
/// <param name="content"><see cref="IContentBase" />A content item.</param>
/// <param name="mediaFileManager">The media file manager.</param>
/// <param name="contentTypeBaseServiceProvider">The content type base service provider.</param>
/// <param name="propertyTypeAlias">The property alias.</param>
/// <param name="filename">The name of the file.</param>
/// <param name="filestream">A stream containing the file data.</param>

View File

@@ -11,7 +11,7 @@ using Umbraco.Cms.Core;
namespace Umbraco.Extensions;
/// <summary>
/// Extension methods for Dictionary & ConcurrentDictionary
/// Extension methods for Dictionary &amp; ConcurrentDictionary.
/// </summary>
public static class DictionaryExtensions
{
@@ -254,7 +254,7 @@ public static class DictionaryExtensions
/// <summary>
/// Converts a dictionary object to a query string representation such as:
/// firstname=shannon&lastname=deminick
/// firstname=shannon&amp;lastname=deminick.
/// </summary>
/// <param name="d"></param>
/// <returns></returns>

View File

@@ -353,7 +353,8 @@ public static class EnumerableExtensions
/// <summary>
/// Transforms an enumerable.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="TSource"></typeparam>
/// <typeparam name="TTarget"></typeparam>
/// <param name="source"></param>
/// <param name="transform"></param>
/// <returns></returns>

View File

@@ -1253,7 +1253,7 @@ public static class PublishedContentExtensions
/// </returns>
/// <remarks>
/// This is the same as calling
/// <see cref="Umbraco.Web.PublishedContentExtensions.AncestorOrSelf(IPublishedContent, int)" /> with <c>maxLevel</c>
/// <see cref="AncestorOrSelf(IPublishedContent, int)" /> with <c>maxLevel</c>
/// set to 1.
/// </remarks>
public static IPublishedContent Root(this IPublishedContent content) => content.AncestorOrSelf(1);
@@ -1270,7 +1270,7 @@ public static class PublishedContentExtensions
/// </returns>
/// <remarks>
/// This is the same as calling
/// <see cref="Umbraco.Web.PublishedContentExtensions.AncestorOrSelf{T}(IPublishedContent, int)" /> with
/// <see cref="AncestorOrSelf{T}(IPublishedContent, int)" /> with
/// <c>maxLevel</c> set to 1.
/// </remarks>
public static T? Root<T>(this IPublishedContent content)

View File

@@ -28,7 +28,7 @@ public static class RequestHandlerSettingsExtension
return RequestHandlerSettings.DefaultCharCollection;
}
/// Merges CharCollection and UserDefinedCharCollection, prioritizing UserDefinedCharCollection.
// Merges CharCollection and UserDefinedCharCollection, prioritizing UserDefinedCharCollection.
return MergeUnique(requestHandlerSettings.UserDefinedCharCollection, RequestHandlerSettings.DefaultCharCollection);
}

View File

@@ -194,7 +194,7 @@ public static class StringExtensions
/// <returns></returns>
/// <remarks>
/// This methods ensures that the resulting URL is structured correctly, that there's only one '?' and that things are
/// delimited properly with '&'
/// delimited properly with '&amp;'
/// </remarks>
public static string AppendQueryStringToUrl(this string url, params string[] queryStrings)
{

View File

@@ -28,7 +28,7 @@ public static class XmlExtensions
/// <remarks>
/// <para>
/// If
/// <param name="variables" />
/// <paramref name="variables" />
/// is <c>null</c>, or is empty, or contains only one single
/// value which itself is <c>null</c>, then variables are ignored.
/// </para>
@@ -51,7 +51,7 @@ public static class XmlExtensions
/// <remarks>
/// <para>
/// If
/// <param name="variables" />
/// <paramref name="variables" />
/// is <c>null</c>, or is empty, or contains only one single
/// value which itself is <c>null</c>, then variables are ignored.
/// </para>
@@ -74,7 +74,7 @@ public static class XmlExtensions
/// <remarks>
/// <para>
/// If
/// <param name="variables" />
/// <paramref name="variables" />
/// is <c>null</c>, or is empty, or contains only one single
/// value which itself is <c>null</c>, then variables are ignored.
/// </para>
@@ -102,7 +102,7 @@ public static class XmlExtensions
/// <remarks>
/// <para>
/// If
/// <param name="variables" />
/// <paramref name="variables" />
/// is <c>null</c>, or is empty, or contains only one single
/// value which itself is <c>null</c>, then variables are ignored.
/// </para>
@@ -130,7 +130,7 @@ public static class XmlExtensions
/// <remarks>
/// <para>
/// If
/// <param name="variables" />
/// <paramref name="variables" />
/// is <c>null</c>, or is empty, or contains only one single
/// value which itself is <c>null</c>, then variables are ignored.
/// </para>
@@ -153,7 +153,7 @@ public static class XmlExtensions
/// <remarks>
/// <para>
/// If
/// <param name="variables" />
/// <paramref name="variables" />
/// is <c>null</c>, or is empty, or contains only one single
/// value which itself is <c>null</c>, then variables are ignored.
/// </para>
@@ -176,7 +176,7 @@ public static class XmlExtensions
/// <remarks>
/// <para>
/// If
/// <param name="variables" />
/// <paramref name="variables" />
/// is <c>null</c>, or is empty, or contains only one single
/// value which itself is <c>null</c>, then variables are ignored.
/// </para>
@@ -203,7 +203,7 @@ public static class XmlExtensions
/// <remarks>
/// <para>
/// If
/// <param name="variables" />
/// <paramref name="variables" />
/// is <c>null</c>, or is empty, or contains only one single
/// value which itself is <c>null</c>, then variables are ignored.
/// </para>

View File

@@ -121,7 +121,6 @@ public sealed class MediaFileManager
/// <param name="content"></param>
/// <param name="mediaFilePath">The file path if a file was found</param>
/// <param name="propertyTypeAlias"></param>
/// <param name="variationContextAccessor"></param>
/// <param name="culture"></param>
/// <param name="segment"></param>
/// <returns></returns>

View File

@@ -22,14 +22,14 @@ public class UniqueMediaPathScheme : IMediaPathScheme
/// <inheritdoc />
/// <remarks>
/// <para>
/// Returning null so that <see cref="MediaFileSystem.DeleteMediaFiles" /> does *not*
/// Returning null so that <see cref="MediaFileManager.DeleteMediaFiles(IEnumerable{string})" /> does *not*
/// delete any directory. This is because the above shortening of the Guid to 8 chars
/// means we're increasing the risk of collision, and we don't want to delete files
/// belonging to other media items.
/// </para>
/// <para>
/// And, at the moment, we cannot delete directory "only if it is empty" because of
/// race conditions. We'd need to implement locks in <see cref="MediaFileSystem" /> for
/// race conditions. We'd need to implement locks in <see cref="MediaFileManager" /> for
/// this.
/// </para>
/// </remarks>

View File

@@ -113,7 +113,7 @@ public class DisposableTimer : DisposableObjectSlim
/// <summary>
/// Disposes resources.
/// </summary>
/// <remarks>Overrides abstract class <see cref="DisposableObject" /> which handles required locking.</remarks>
/// <remarks>Overrides abstract class <see cref="DisposableObjectSlim" /> which handles required locking.</remarks>
protected override void DisposeResources()
{
Stopwatch.Stop();

View File

@@ -141,7 +141,7 @@ public sealed class ProfilingLogger : IProfilingLogger
public void LogTrace(string messageTemplate, params object[] propertyValues)
=> Logger.LogTrace(messageTemplate, propertyValues);
///<inheritdoc>/>
///<inheritdoc/>
public bool IsEnabled(LogLevel logLevel)
{
switch (logLevel)

View File

@@ -15,7 +15,7 @@ public interface IEmbedProvider
/// <summary>
/// A collection of querystring request parameters to append to the API URL
/// </summary>
/// <example>?key=value&key2=value2</example>
/// <example>?key=value&amp;key2=value2</example>
Dictionary<string, string> RequestParams { get; }
string? GetMarkup(string url, int maxWidth = 0, int maxHeight = 0);

View File

@@ -20,9 +20,7 @@ namespace Umbraco.Cms.Core.Models.Blocks
/// <param name="content">The content.</param>
/// <param name="settingsUdi">The settings UDI.</param>
/// <param name="settings">The settings.</param>
/// <param name="rowSpan">The number of rows to span</param>
/// <param name="columnSpan">The number of columns to span</param>
/// <exception cref="System.ArgumentNullException">contentUdi
/// <exception cref="ArgumentNullException">contentUdi
/// or
/// content</exception>
public BlockGridItem(Udi contentUdi, IPublishedElement content, Udi settingsUdi, IPublishedElement settings)
@@ -114,8 +112,6 @@ namespace Umbraco.Cms.Core.Models.Blocks
/// <param name="content">The content.</param>
/// <param name="settingsUdi">The settings UDI.</param>
/// <param name="settings">The settings.</param>
/// <param name="rowSpan">The number of rows to span</param>
/// <param name="columnSpan">The number of columns to span</param>
public BlockGridItem(Udi contentUdi, T content, Udi settingsUdi, IPublishedElement settings)
: base(contentUdi, content, settingsUdi, settings)
{
@@ -147,8 +143,6 @@ namespace Umbraco.Cms.Core.Models.Blocks
/// <param name="content">The content.</param>
/// <param name="settingsUdi">The settings udi.</param>
/// <param name="settings">The settings.</param>
/// <param name="rowSpan">The number of rows to span</param>
/// <param name="columnSpan">The number of columns to span</param>
public BlockGridItem(Udi contentUdi, TContent content, Udi settingsUdi, TSettings settings)
: base(contentUdi, content, settingsUdi, settings)
{

View File

@@ -44,7 +44,8 @@ public interface IBlockReference<TSettings> : IBlockReference
/// <summary>
/// Represents a data item reference with content and settings for a Block editor implementation.
/// </summary>
/// <typeparam name="TSettings">The type of the content.</typeparam>
/// <typeparam name="TContent">The type of the content.</typeparam>
/// <typeparam name="TSettings">The type of the settings.</typeparam>
public interface IBlockReference<TContent, TSettings> : IBlockReference<TSettings>
{
/// <summary>

View File

@@ -59,6 +59,7 @@ public static class ContentRepositoryExtensions
/// </summary>
/// <param name="content"></param>
/// <param name="date"></param>
/// <param name="publishing"></param>
/// <remarks>
/// This is so that in an operation where (for example) 2 languages are updates like french and english, it is possible
/// that

View File

@@ -182,7 +182,6 @@ public sealed class CultureImpact
/// </summary>
/// <param name="culture">The culture code.</param>
/// <param name="isDefault">A value indicating whether the culture is the default culture.</param>
/// <param name="allowEditInvariantFromNonDefault">A value indicating if publishing invariant properties from non-default language.</param>
[Obsolete("Use ICultureImpactService instead.")]
public static CultureImpact Explicit(string? culture, bool isDefault)
{
@@ -211,7 +210,6 @@ public sealed class CultureImpact
/// <param name="culture">The culture code.</param>
/// <param name="isDefault">A value indicating whether the culture is the default culture.</param>
/// <param name="content">The content item.</param>
/// <param name="allowEditInvariantFromNonDefault">A value indicating if publishing invariant properties from non-default language.</param>
/// <remarks>
/// <para>Validates that the culture is compatible with the variation.</para>
/// </remarks>

View File

@@ -10,6 +10,7 @@ public interface IMediaUrlGenerator
/// </summary>
/// <param name="propertyEditorAlias">The property editor alias</param>
/// <param name="value">The value of the property</param>
/// <param name="mediaPath">The media path</param>
/// <returns>
/// True if a media path was returned
/// </returns>

View File

@@ -58,7 +58,7 @@ public class Media : ContentBase, IMedia
/// <summary>
/// Changes the <see cref="IMediaType" /> for the current Media object
/// </summary>
/// <param name="contentType">New MediaType for this Media</param>
/// <param name="mediaType">New MediaType for this Media</param>
/// <remarks>Leaves PropertyTypes intact after change</remarks>
internal void ChangeContentType(IMediaType mediaType) => ChangeContentType(mediaType, false);
@@ -66,7 +66,7 @@ public class Media : ContentBase, IMedia
/// Changes the <see cref="IMediaType" /> for the current Media object and removes PropertyTypes,
/// which are not part of the new MediaType.
/// </summary>
/// <param name="contentType">New MediaType for this Media</param>
/// <param name="mediaType">New MediaType for this Media</param>
/// <param name="clearProperties">Boolean indicating whether to clear PropertyTypes upon change</param>
internal void ChangeContentType(IMediaType mediaType, bool clearProperties)
{

View File

@@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models.Entities;
namespace Umbraco.Cms.Core.Models.Membership;
/// <summary>
/// Represents an <see cref="IContent" /> -> user group & permission key value pair collection
/// Represents an <see cref="IContent" /> -> user group &amp; permission key value pair collection
/// </summary>
/// <remarks>
/// This implements <see cref="IEntity" /> purely so it can be used with the repository layer which is why it's

View File

@@ -1,7 +1,7 @@
namespace Umbraco.Cms.Core.Models.Membership;
/// <summary>
/// Represents an entity -&gt; user group & permission key value pair collection
/// Represents an entity -&gt; user group &amp; permission key value pair collection
/// </summary>
public class EntityPermissionSet
{
@@ -20,7 +20,7 @@ public class EntityPermissionSet
public virtual int EntityId { get; }
/// <summary>
/// The key/value pairs of user group id & single permission
/// The key/value pairs of user group id &amp; single permission
/// </summary>
public EntityPermissionCollection PermissionsSet { get; }

View File

@@ -5,7 +5,6 @@ namespace Umbraco.Cms.Core.Models;
/// <summary>
/// Represents a paged result for a model collection
/// </summary>
/// <typeparam name="T"></typeparam>
[DataContract(Name = "pagedCollection", Namespace = "")]
public abstract class PagedResult
{

View File

@@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Cache;
namespace Umbraco.Cms.Core.Models.PublishedContent;
/// <summary>
/// Implements <see cref="IVariationContextAccessor" /> on top of <see cref="IHttpContextAccessor" />.
/// Implements <see cref="IVariationContextAccessor" /> on top of <see cref="IRequestCache" />.
/// </summary>
public class HttpContextVariationContextAccessor : IVariationContextAccessor
{

View File

@@ -6,7 +6,9 @@ namespace Umbraco.Cms.Core.Models;
/// Represents a range with a minimum and maximum value.
/// </summary>
/// <typeparam name="T">The type of the minimum and maximum values.</typeparam>
/// <seealso cref="IEquatable{Range{T}}" />
/// <remarks>
/// See also <see cref="IEquatable{T}"/> of <see cref="Range{T}"/>
/// </remarks>
public class Range<T> : IEquatable<Range<T>>
where T : IComparable<T>
{

View File

@@ -24,7 +24,6 @@ public sealed class ContentPublishedNotification : EnumerableObjectNotification<
public ContentPublishedNotification(IEnumerable<IContent> target, EventMessages messages, bool includeDescendants)
: base(target, messages) => IncludeDescendants = includeDescendants;
/// </summary>
public IEnumerable<IContent> PublishedEntities => Target;
public bool IncludeDescendants { get; }

View File

@@ -3,7 +3,7 @@ using System.Text;
namespace Umbraco.Cms.Core.Notifications;
/// <summary>
/// Contains event data for the <see cref="ModelBindingException" /> event.
/// Contains event data for the <see cref="T:Umbraco.Cms.Web.Common.ModelBinders.ModelBindingException" /> event.
/// </summary>
public class ModelBindingErrorNotification : INotification
{

View File

@@ -1,10 +1,10 @@
namespace Umbraco.Cms.Core.Notifications;
/// <summary>
/// Notification that occurs at the very end of the Umbraco boot process (after all <see cref="IComponent" />s are
/// Notification that occurs at the very end of the Umbraco boot process (after all <see cref="Composing.IComponent" />s are
/// initialized).
/// </summary>
/// <seealso cref="Umbraco.Cms.Core.Notifications.IUmbracoApplicationLifetimeNotification" />
/// <seealso cref="IUmbracoApplicationLifetimeNotification" />
public class UmbracoApplicationStartingNotification : IUmbracoApplicationLifetimeNotification
{
/// <summary>

View File

@@ -2,9 +2,9 @@ namespace Umbraco.Cms.Core.Notifications;
/// <summary>
/// Notification that occurs when Umbraco is shutting down (after all <see cref="IComponent" />s are terminated).
/// Notification that occurs when Umbraco is shutting down (after all <see cref="Composing.IComponent" />s are terminated).
/// </summary>
/// <seealso cref="Umbraco.Cms.Core.Notifications.IUmbracoApplicationLifetimeNotification" />
/// <seealso cref="IUmbracoApplicationLifetimeNotification" />
public class UmbracoApplicationStoppingNotification : IUmbracoApplicationLifetimeNotification
{
/// <summary>

View File

@@ -22,7 +22,7 @@ public interface IPackageInstallation
/// <summary>
/// Reads the package xml and returns the <see cref="CompiledPackage" /> model
/// </summary>
/// <param name="packageFile"></param>
/// <param name="packageXmlFile"></param>
/// <returns></returns>
CompiledPackage ReadPackage(XDocument? packageXmlFile);
}

View File

@@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models;
namespace Umbraco.Cms.Core.Persistence.Repositories;
/// <summary>
/// Represents a repository for <see cref="ICacheInstruction" /> entities.
/// Represents a repository for <see cref="CacheInstruction" /> entities.
/// </summary>
public interface ICacheInstructionRepository : IRepository
{

View File

@@ -36,9 +36,8 @@ public interface IDocumentRepository : IContentRepository<int, IContent>, IReadR
/// Gets <see cref="IContent" /> objects having an expiration date before (lower than, or equal to) a specified date.
/// </summary>
/// <remarks>
/// The content returned from this method may be culture variant, in which case the resulting
/// <see cref="IContent.ContentSchedule" /> should be queried
/// for which culture(s) have been scheduled.
/// The content returned from this method may be culture variant, in which case you can use
/// <see cref="Umbraco.Extensions.ContentExtensions.GetStatus(IContent, ContentScheduleCollection, string?)" /> to get the status for a specific culture.
/// </remarks>
IEnumerable<IContent> GetContentForExpiration(DateTime date);
@@ -46,9 +45,8 @@ public interface IDocumentRepository : IContentRepository<int, IContent>, IReadR
/// Gets <see cref="IContent" /> objects having a release date before (lower than, or equal to) a specified date.
/// </summary>
/// <remarks>
/// The content returned from this method may be culture variant, in which case the resulting
/// <see cref="IContent.ContentSchedule" /> should be queried
/// for which culture(s) have been scheduled.
/// The content returned from this method may be culture variant, in which case you can use
/// <see cref="Umbraco.Extensions.ContentExtensions.GetStatus(IContent, ContentScheduleCollection, string?)" /> to get the status for a specific culture.
/// </remarks>
IEnumerable<IContent> GetContentForRelease(DateTime date);

View File

@@ -5,7 +5,7 @@ namespace Umbraco.Cms.Core.PropertyEditors;
/// <summary>
/// Provides a default implementation for
/// <see ref="IPropertyIndexValueFactory">, returning a single field to index containing the property value.
/// <see ref="IPropertyIndexValueFactory" />, returning a single field to index containing the property value.
/// </summary>
public class DefaultPropertyIndexValueFactory : IPropertyIndexValueFactory
{

View File

@@ -17,7 +17,7 @@ public class VoidEditor : DataEditor
/// Initializes a new instance of the <see cref="VoidEditor" /> class.
/// </summary>
/// <param name="aliasSuffix">An optional alias suffix.</param>
/// <param name="loggerFactory">A logger factory.</param>
/// <param name="dataValueEditorFactory">A data value editor factory.</param>
/// <remarks>
/// The default alias of the editor is "Umbraco.Void". When a suffix is provided,
/// it is appended to the alias. Eg if the suffix is "Foo" the alias is "Umbraco.Void.Foo".
@@ -39,7 +39,7 @@ public class VoidEditor : DataEditor
/// <summary>
/// Initializes a new instance of the <see cref="VoidEditor" /> class.
/// </summary>
/// <param name="loggerFactory">A logger factory.</param>
/// <param name="dataValueEditorFactory">A data value editor factory.</param>
/// <remarks>The alias of the editor is "Umbraco.Void".</remarks>
public VoidEditor(
IDataValueEditorFactory dataValueEditorFactory)

View File

@@ -19,7 +19,7 @@ public interface IPublishedContentCache : IPublishedCache
/// </para>
/// <para>
/// If
/// <param name="hideTopLevelNode" />
/// <paramref name="hideTopLevelNode" />
/// is <c>null</c> then the settings value is used.
/// </para>
/// <para>The value of <paramref name="preview" /> overrides defaults.</para>
@@ -40,7 +40,7 @@ public interface IPublishedContentCache : IPublishedCache
/// </para>
/// <para>
/// If
/// <param name="hideTopLevelNode" />
/// <paramref name="hideTopLevelNode" />
/// is <c>null</c> then the settings value is used.
/// </para>
/// <para>Considers published or unpublished content depending on defaults.</para>

View File

@@ -47,7 +47,6 @@ public class DefaultUrlProvider : IUrlProvider
/// <summary>
/// Gets the other URLs of a published content.
/// </summary>
/// <param name="umbracoContextAccessor">The Umbraco context.</param>
/// <param name="id">The published content id.</param>
/// <param name="current">The current absolute URL.</param>
/// <returns>The other URLs for the published content.</returns>

View File

@@ -1,5 +1,6 @@
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Routing;
@@ -101,7 +102,7 @@ public interface IPublishedRequest
/// This flag is based on previous Umbraco versions but it is not clear how this flag can be set by developers
/// since
/// collission checking only occurs in the back office which is launched by
/// <see cref="IPublishedRouter.TryRouteRequestAsync(IPublishedRequestBuilder)" />
/// <see cref="PublishedRouter.TryRouteRequest(IPublishedRequestBuilder)" />
/// for which events do not execute.
/// </para>
/// <para>

View File

@@ -2,6 +2,7 @@ using System.Globalization;
using System.Net;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Routing;
@@ -162,7 +163,7 @@ public interface IPublishedRequestBuilder
/// This flag is based on previous Umbraco versions but it is not clear how this flag can be set by developers
/// since
/// collission checking only occurs in the back office which is launched by
/// <see cref="IPublishedRouter.TryRouteRequestAsync(IPublishedRequestBuilder)" />
/// <see cref="PublishedRouter.TryRouteRequest(IPublishedRequestBuilder)" />
/// for which events do not execute.
/// </para>
/// <para>

View File

@@ -26,6 +26,7 @@ public interface IPublishedRouter
/// Updates the request to use the specified <see cref="IPublishedContent" /> item, or NULL
/// </summary>
/// <param name="request">The request.</param>
/// <param name="publishedContent">The published content.</param>
/// <remarks>
/// <returns>
/// A new <see cref="IPublishedRequest" /> based on values from the original <see cref="IPublishedRequest" />

View File

@@ -21,7 +21,6 @@ namespace Umbraco.Cms.Core.Routing
/// <param name="urlProviders">The list of URL providers.</param>
/// <param name="mediaUrlProviders">The list of media URL providers.</param>
/// <param name="variationContextAccessor">The current variation accessor.</param>
/// <param name="propertyEditorCollection"></param>
public UrlProvider(IUmbracoContextAccessor umbracoContextAccessor, IOptions<WebRoutingSettings> routingSettings, UrlProviderCollection urlProviders, MediaUrlProviderCollection mediaUrlProviders, IVariationContextAccessor variationContextAccessor)
{
_umbracoContextAccessor = umbracoContextAccessor ?? throw new ArgumentNullException(nameof(umbracoContextAccessor));

View File

@@ -6,6 +6,7 @@ public interface ILockingMechanism : IDisposable
/// Read-locks some lock objects lazily.
/// </summary>
/// <param name="instanceId">Instance id of the scope who is requesting the lock</param>
/// <param name="timeout">Timeout for the lock</param>
/// <param name="lockIds">Array of lock object identifiers.</param>
void ReadLock(Guid instanceId, TimeSpan? timeout = null, params int[] lockIds);
@@ -15,6 +16,7 @@ public interface ILockingMechanism : IDisposable
/// Write-locks some lock objects lazily.
/// </summary>
/// <param name="instanceId">Instance id of the scope who is requesting the lock</param>
/// <param name="timeout">Timeout for the lock</param>
/// <param name="lockIds">Array of object identifiers.</param>
void WriteLock(Guid instanceId, TimeSpan? timeout = null, params int[] lockIds);
@@ -24,6 +26,7 @@ public interface ILockingMechanism : IDisposable
/// Eagerly acquires a read-lock
/// </summary>
/// <param name="instanceId"></param>
/// <param name="timeout">Timeout for the lock</param>
/// <param name="lockIds"></param>
void EagerReadLock(Guid instanceId, TimeSpan? timeout = null, params int[] lockIds);
@@ -33,6 +36,7 @@ public interface ILockingMechanism : IDisposable
/// Eagerly acquires a write-lock
/// </summary>
/// <param name="instanceId"></param>
/// <param name="timeout">Timeout for the lock</param>
/// <param name="lockIds"></param>
void EagerWriteLock(Guid instanceId, TimeSpan? timeout = null, params int[] lockIds);

View File

@@ -151,8 +151,6 @@ public class ContentPermissions
/// </summary>
/// <param name="nodeId"></param>
/// <param name="user"></param>
/// <param name="userService"></param>
/// <param name="entityService"></param>
/// <param name="entity">The <see cref="IUmbracoEntity" /> item resolved if one was found for the id</param>
/// <param name="permissionsToCheck"></param>
/// <returns></returns>
@@ -218,9 +216,6 @@ public class ContentPermissions
/// </summary>
/// <param name="nodeId"></param>
/// <param name="user"></param>
/// <param name="userService"></param>
/// <param name="contentService"></param>
/// <param name="entityService"></param>
/// <param name="contentItem">The <see cref="IContent" /> item resolved if one was found for the id</param>
/// <param name="permissionsToCheck"></param>
/// <returns></returns>

View File

@@ -5,7 +5,6 @@ namespace Umbraco.Cms.Core.Security;
/// <summary>
/// An external login provider linked to a user
/// </summary>
/// <typeparam name="TKey">The PK type for the user</typeparam>
public interface IIdentityUserLogin : IEntity, IRememberBeingDirty
{
/// <summary>

View File

@@ -218,10 +218,9 @@ public class LegacyPasswordSecurity
}
/// <summary>
/// Return the hash algorithm to use based on the <see cref="IPasswordConfiguration" />
/// Return the hash algorithm to use based on the provided <paramref name="algorithm"/>.
/// </summary>
/// <param name="algorithm">The hashing algorithm name.</param>
/// <param name="password"></param>
/// <returns></returns>
private HashAlgorithm GetHashAlgorithm(string algorithm)
{

View File

@@ -207,7 +207,7 @@ public class ContentService : RepositoryService, IContentService
/// <summary>
/// Used to bulk update the permissions set for a content item. This will replace all permissions
/// assigned to an entity with a list of user id & permission pairs.
/// assigned to an entity with a list of user id &amp; permission pairs.
/// </summary>
/// <param name="permissionSet"></param>
public void SetPermissions(EntityPermissionSet permissionSet)

View File

@@ -36,7 +36,9 @@ public interface ICacheInstructionService
/// <summary>
/// Processes and then prunes pending database cache instructions.
/// </summary>
/// <param name="released">Flag indicating if process is shutting now and operations should exit.</param>
/// <param name="cacheRefreshers">Cache refreshers.</param>
/// <param name="serverRole">Server role.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <param name="localIdentity">Local identity of the executing AppDomain.</param>
/// <param name="lastPruned">Date of last prune operation.</param>
/// <param name="lastId">Id of the latest processed instruction</param>

View File

@@ -76,12 +76,10 @@ public interface IContentService : IContentServiceBase<IContent>
/// </summary>
IContent? GetById(int id);
new
/// <summary>
/// Gets a document.
/// </summary>
IContent? GetById(Guid key);
new IContent? GetById(Guid key);
/// <summary>
/// Gets publish/unpublish schedule for a content node.
@@ -167,9 +165,8 @@ public interface IContentService : IContentServiceBase<IContent>
/// </summary>
/// <returns>An Enumerable list of <see cref="IContent" /> objects</returns>
/// <remarks>
/// The content returned from this method may be culture variant, in which case the resulting
/// <see cref="IContent.ContentSchedule" /> should be queried
/// for which culture(s) have been scheduled.
/// The content returned from this method may be culture variant, in which case you can use
/// <see cref="Umbraco.Extensions.ContentExtensions.GetStatus(IContent, ContentScheduleCollection, string?)" /> to get the status for a specific culture.
/// </remarks>
IEnumerable<IContent> GetContentForExpiration(DateTime date);
@@ -178,9 +175,8 @@ public interface IContentService : IContentServiceBase<IContent>
/// </summary>
/// <returns>An Enumerable list of <see cref="IContent" /> objects</returns>
/// <remarks>
/// The content returned from this method may be culture variant, in which case the resulting
/// <see cref="IContent.ContentSchedule" /> should be queried
/// for which culture(s) have been scheduled.
/// The content returned from this method may be culture variant, in which case you can use
/// <see cref="Umbraco.Extensions.ContentExtensions.GetStatus(IContent, ContentScheduleCollection, string?)" /> to get the status for a specific culture.
/// </remarks>
IEnumerable<IContent> GetContentForRelease(DateTime date);

View File

@@ -35,7 +35,7 @@ public interface IExternalLoginWithKeyService : IService
/// <summary>
/// Saves the external login tokens associated with the user
/// </summary>
/// <param name="userId">
/// <param name="userOrMemberKey">
/// The user or member key associated with the logins
/// </param>
/// <param name="tokens"></param>

View File

@@ -90,9 +90,6 @@ public interface IMediaService : IContentServiceBase<IMedia>
/// <param name="pageIndex">Page number</param>
/// <param name="pageSize">Page size</param>
/// <param name="totalRecords">Total records query would return without paging</param>
/// <param name="orderBy">Field to order by</param>
/// <param name="orderDirection">Direction to order by</param>
/// <param name="orderBySystemField">Flag to indicate when ordering by system field</param>
/// <param name="filter"></param>
/// <param name="ordering"></param>
/// <returns>An Enumerable list of <see cref="IContent" /> objects</returns>

View File

@@ -178,7 +178,7 @@ public interface IMemberService : IMembershipMemberService
/// </summary>
/// <remarks>If no alias is supplied then the count for all Member will be returned</remarks>
/// <param name="memberTypeAlias">Optional alias for the MemberType when counting number of Members</param>
/// <returns><see cref="System.int" /> with number of Members</returns>
/// <returns><see cref="int" /> with number of Members</returns>
int Count(string? memberTypeAlias = null);
/// <summary>
@@ -204,7 +204,7 @@ public interface IMemberService : IMembershipMemberService
/// <summary>
/// Gets a Member by its integer id
/// </summary>
/// <param name="id"><see cref="System.int" /> Id</param>
/// <param name="id"><see cref="int" /> Id</param>
/// <returns>
/// <see cref="IMember" />
/// </returns>
@@ -278,7 +278,7 @@ public interface IMemberService : IMembershipMemberService
/// Gets a list of Members based on a property search
/// </summary>
/// <param name="propertyTypeAlias">Alias of the PropertyType to search for</param>
/// <param name="value"><see cref="System.string" /> Value to match</param>
/// <param name="value"><see cref="string" /> Value to match</param>
/// <param name="matchType">
/// The type of match to make as <see cref="StringPropertyMatchType" />. Default is
/// <see cref="StringPropertyMatchType.Exact" />
@@ -295,7 +295,7 @@ public interface IMemberService : IMembershipMemberService
/// Gets a list of Members based on a property search
/// </summary>
/// <param name="propertyTypeAlias">Alias of the PropertyType to search for</param>
/// <param name="value"><see cref="System.int" /> Value to match</param>
/// <param name="value"><see cref="int" /> Value to match</param>
/// <param name="matchType">
/// The type of match to make as <see cref="StringPropertyMatchType" />. Default is
/// <see cref="StringPropertyMatchType.Exact" />
@@ -309,7 +309,7 @@ public interface IMemberService : IMembershipMemberService
/// Gets a list of Members based on a property search
/// </summary>
/// <param name="propertyTypeAlias">Alias of the PropertyType to search for</param>
/// <param name="value"><see cref="System.bool" /> Value to match</param>
/// <param name="value"><see cref="bool" /> Value to match</param>
/// <returns>
/// <see cref="IEnumerable{IMember}" />
/// </returns>

View File

@@ -48,7 +48,7 @@ public interface IMembershipMemberService<T> : IService
/// but that is how MS have made theirs so we'll follow that principal.
/// </remarks>
/// <param name="countType"><see cref="MemberCountType" /> to count by</param>
/// <returns><see cref="System.int" /> with number of Members or Users for passed in type</returns>
/// <returns><see cref="int" /> with number of Members or Users for passed in type</returns>
int GetCount(MemberCountType countType);
/// <summary>

View File

@@ -9,14 +9,14 @@ public interface IPackagingService : IService
/// <summary>
/// Returns a <see cref="CompiledPackage" /> result from an umbraco package file (zip)
/// </summary>
/// <param name="packageFile"></param>
/// <param name="packageXml"></param>
/// <returns></returns>
CompiledPackage GetCompiledPackageInfo(XDocument packageXml);
/// <summary>
/// Installs the data, entities, objects contained in an umbraco package file (zip)
/// </summary>
/// <param name="packageFile"></param>
/// <param name="packageXmlFile"></param>
/// <param name="userId"></param>
InstallationSummary InstallCompiledPackageData(FileInfo packageXmlFile, int userId = Constants.Security.SuperUserId);

View File

@@ -167,7 +167,8 @@ public interface IRelationService : IService
/// <param name="relationTypeId"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="totalChildren"></param>
/// <param name="totalRecords"></param>
/// <param name="ordering"></param>
/// <returns></returns>
IEnumerable<IRelation> GetPagedByRelationTypeId(int relationTypeId, long pageIndex, int pageSize, out long totalRecords, Ordering? ordering = null);
@@ -213,6 +214,7 @@ public interface IRelationService : IService
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="totalChildren"></param>
/// <param name="entityTypes"></param>
/// <returns>An enumerable list of <see cref="IUmbracoEntity" /></returns>
IEnumerable<IUmbracoEntity> GetPagedParentEntitiesByChildId(int id, long pageIndex, int pageSize, out long totalChildren, params UmbracoObjectTypes[] entityTypes);
@@ -223,6 +225,7 @@ public interface IRelationService : IService
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="totalChildren"></param>
/// <param name="entityTypes"></param>
/// <returns>An enumerable list of <see cref="IUmbracoEntity" /></returns>
IEnumerable<IUmbracoEntity> GetPagedChildEntitiesByParentId(int id, long pageIndex, int pageSize, out long totalChildren, params UmbracoObjectTypes[] entityTypes);

View File

@@ -1,9 +1,9 @@
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models;
namespace Umbraco.Cms.Core.Services;
/// <summary>
/// Tag service to query for tags in the tags db table. The tags returned are only relevant for published content &
/// Tag service to query for tags in the tags db table. The tags returned are only relevant for published content &amp;
/// saved media or members
/// </summary>
/// <remarks>

View File

@@ -55,7 +55,6 @@ public interface ITrackedReferencesService
/// A boolean indicating whether to filter only the RelationTypes which are
/// dependencies (isDependency field is set to true).
/// </param>
/// <param name="totalItems">The total amount of items.</param>
/// <returns>A paged result of <see cref="RelationItemModel" /> objects.</returns>
PagedModel<RelationItemModel> GetPagedRelationsForItem(int id, long skip, long take, bool filterMustBeIsDependency) => throw new NotImplementedException();
@@ -69,7 +68,6 @@ public interface ITrackedReferencesService
/// A boolean indicating whether to filter only the RelationTypes which are
/// dependencies (isDependency field is set to true).
/// </param>
/// <param name="totalItems">The total amount of items.</param>
/// <returns>A paged result of <see cref="RelationItemModel" /> objects.</returns>
PagedModel<RelationItemModel> GetPagedDescendantsInReferences(int parentId, long skip, long take, bool filterMustBeIsDependency) => throw new NotImplementedException();
@@ -83,7 +81,6 @@ public interface ITrackedReferencesService
/// A boolean indicating whether to filter only the RelationTypes which are
/// dependencies (isDependency field is set to true).
/// </param>
/// <param name="totalItems">The total amount of items.</param>
/// <returns>A paged result of <see cref="RelationItemModel" /> objects.</returns>
PagedModel<RelationItemModel> GetPagedItemsWithRelations(int[] ids, long skip, long take, bool filterMustBeIsDependency) => throw new NotImplementedException();
}

View File

@@ -56,7 +56,7 @@ namespace Umbraco.Cms.Core.Services
/// but that is how MS have made theirs so we'll follow that principal.
/// </remarks>
/// <param name="countType"><see cref="MemberCountType"/> to count by</param>
/// <returns><see cref="System.int"/> with number of Members for passed in type</returns>
/// <returns><see cref="int"/> with number of Members for passed in type</returns>
public int GetCount(MemberCountType countType)
{
using ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true);
@@ -87,7 +87,7 @@ namespace Umbraco.Cms.Core.Services
/// </summary>
/// <remarks>If no alias is supplied then the count for all Member will be returned</remarks>
/// <param name="memberTypeAlias">Optional alias for the MemberType when counting number of Members</param>
/// <returns><see cref="System.int"/> with number of Members</returns>
/// <returns><see cref="int"/> with number of Members</returns>
public int Count(string? memberTypeAlias = null)
{
using ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true);
@@ -155,7 +155,6 @@ namespace Umbraco.Cms.Core.Services
/// <param name="email">Email of the <see cref="IMembershipUser"/> to create</param>
/// <param name="passwordValue">This value should be the encoded/encrypted/hashed value for the password that will be stored in the database</param>
/// <param name="memberTypeAlias">Alias of the Type</param>
/// <param name="isApproved">Is the member approved</param>
/// <returns><see cref="IMember"/></returns>
IMember IMembershipMemberService<IMember>.CreateWithIdentity(string username, string email, string passwordValue, string memberTypeAlias)
=> CreateMemberWithIdentity(username, email, username, passwordValue, memberTypeAlias);
@@ -186,15 +185,16 @@ namespace Umbraco.Cms.Core.Services
=> CreateMemberWithIdentity(username, email, name, string.Empty, memberTypeAlias, isApproved);
/// <summary>
/// Creates and persists a Member
/// Creates and persists a Member.
/// </summary>
/// <remarks>Using this method will persist the Member object before its returned
/// meaning that it will have an Id available (unlike the CreateMember method)</remarks>
/// <param name="username">Username of the Member to create</param>
/// <param name="email">Email of the Member to create</param>
/// <param name="name">Name of the Member to create</param>
/// <param name="memberTypeAlias">Alias of the MemberType the Member should be based on</param>
/// <param name="isApproved">Optional IsApproved of the Member to create</param>
/// meaning that it will have an Id available (unlike the <see cref="CreateMember(string, string, string, string)"/> method).</remarks>
/// <param name="username">Username of the Member to create.</param>
/// <param name="email">Email of the Member to create.</param>
/// <param name="name">Name of the Member to create.</param>
/// <param name="passwordValue">Password value of the Member to create.</param>
/// <param name="memberTypeAlias">Alias of the MemberType the Member should be based on.</param>
/// <param name="isApproved">Optional IsApproved of the Member to create.</param>
/// <returns><see cref="IMember"/></returns>
public IMember CreateMemberWithIdentity(string username, string email, string name, string passwordValue, string memberTypeAlias, bool isApproved = true)
{
@@ -230,6 +230,7 @@ namespace Umbraco.Cms.Core.Services
/// <param name="username">Username of the Member to create</param>
/// <param name="email">Email of the Member to create</param>
/// <param name="memberType">MemberType the Member should be based on</param>
/// <param name="isApproved">Is the member approved.</param>
/// <returns><see cref="IMember"/></returns>
public IMember CreateMemberWithIdentity(string username, string email, IMemberType memberType, bool isApproved)
=> CreateMemberWithIdentity(username, email, username, string.Empty, memberType, isApproved);
@@ -246,6 +247,7 @@ namespace Umbraco.Cms.Core.Services
/// <param name="email">Email of the Member to create</param>
/// <param name="name">Name of the Member to create</param>
/// <param name="memberType">MemberType the Member should be based on</param>
/// <param name="isApproved">Is the member approved</param>
/// <returns><see cref="IMember"/></returns>
public IMember CreateMemberWithIdentity(string username, string email, string name, IMemberType memberType, bool isApproved)
=> CreateMemberWithIdentity(username, email, name, string.Empty, memberType, isApproved);
@@ -260,6 +262,7 @@ namespace Umbraco.Cms.Core.Services
/// <param name="name">Name of the Member to create</param>
/// <param name="passwordValue">This value should be the encoded/encrypted/hashed value for the password that will be stored in the database</param>
/// <param name="memberType">MemberType the Member should be based on</param>
/// <param name="isApproved">Is the member approved</param>
/// <returns><see cref="IMember"/></returns>
private IMember CreateMemberWithIdentity(string username, string email, string name, string passwordValue, IMemberType memberType, bool isApproved = true)
{
@@ -296,7 +299,7 @@ namespace Umbraco.Cms.Core.Services
/// <summary>
/// Gets a Member by its integer id
/// </summary>
/// <param name="id"><see cref="System.int"/> Id</param>
/// <param name="id"><see cref="int"/> Id</param>
/// <returns><see cref="IMember"/></returns>
public IMember? GetById(int id)
{
@@ -580,7 +583,7 @@ namespace Umbraco.Cms.Core.Services
/// Gets a list of Members based on a property search
/// </summary>
/// <param name="propertyTypeAlias">Alias of the PropertyType to search for</param>
/// <param name="value"><see cref="System.string"/> Value to match</param>
/// <param name="value"><see cref="string"/> Value to match</param>
/// <param name="matchType">The type of match to make as <see cref="StringPropertyMatchType"/>. Default is <see cref="StringPropertyMatchType.Exact"/></param>
/// <returns><see cref="IEnumerable{IMember}"/></returns>
public IEnumerable<IMember>? GetMembersByPropertyValue(string propertyTypeAlias, string value, StringPropertyMatchType matchType = StringPropertyMatchType.Exact)
@@ -614,7 +617,7 @@ namespace Umbraco.Cms.Core.Services
/// Gets a list of Members based on a property search
/// </summary>
/// <param name="propertyTypeAlias">Alias of the PropertyType to search for</param>
/// <param name="value"><see cref="System.int"/> Value to match</param>
/// <param name="value"><see cref="int"/> Value to match</param>
/// <param name="matchType">The type of match to make as <see cref="StringPropertyMatchType"/>. Default is <see cref="StringPropertyMatchType.Exact"/></param>
/// <returns><see cref="IEnumerable{IMember}"/></returns>
public IEnumerable<IMember>? GetMembersByPropertyValue(string propertyTypeAlias, int value, ValuePropertyMatchType matchType = ValuePropertyMatchType.Exact)
@@ -651,7 +654,7 @@ namespace Umbraco.Cms.Core.Services
/// Gets a list of Members based on a property search
/// </summary>
/// <param name="propertyTypeAlias">Alias of the PropertyType to search for</param>
/// <param name="value"><see cref="System.bool"/> Value to match</param>
/// <param name="value"><see cref="bool"/> Value to match</param>
/// <returns><see cref="IEnumerable{IMember}"/></returns>
public IEnumerable<IMember>? GetMembersByPropertyValue(string propertyTypeAlias, bool value)
{

View File

@@ -7,7 +7,7 @@ using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services;
/// <summary>
/// Tag service to query for tags in the tags db table. The tags returned are only relevant for published content &
/// Tag service to query for tags in the tags db table. The tags returned are only relevant for published content &amp;
/// saved media or members
/// </summary>
/// <remarks>

View File

@@ -140,7 +140,7 @@ internal class UserService : RepositoryService, IUserService
/// <summary>
/// Gets a User by its integer id
/// </summary>
/// <param name="id"><see cref="System.int" /> Id</param>
/// <param name="id"><see cref="int" /> Id</param>
/// <returns>
/// <see cref="IUser" />
/// </returns>
@@ -535,7 +535,7 @@ internal class UserService : RepositoryService, IUserService
/// but that is how MS have made theirs so we'll follow that principal.
/// </remarks>
/// <param name="countType"><see cref="MemberCountType" /> to count by</param>
/// <returns><see cref="System.int" /> with number of Users for passed in type</returns>
/// <returns><see cref="int" /> with number of Users for passed in type</returns>
public int GetCount(MemberCountType countType)
{
using (ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true))
@@ -945,19 +945,12 @@ internal class UserService : RepositoryService, IUserService
}
/// <summary>
/// Saves a UserGroup
/// Saves a UserGroup.
/// </summary>
/// <param name="userGroup">UserGroup to save</param>
/// <param name="userGroup">UserGroup to save.</param>
/// <param name="userIds">
/// If null than no changes are made to the users who are assigned to this group, however if a value is passed in
/// than all users will be removed from this group and only these users will be added
/// </param>
/// Default is
/// <c>True</c>
/// otherwise set to
/// <c>False</c>
/// to not raise events
/// </param>
/// than all users will be removed from this group and only these users will be added.</param>
public void Save(IUserGroup userGroup, int[]? userIds = null)
{
EventMessages evtMsgs = EventMessagesFactory.Get();

View File

@@ -19,7 +19,6 @@ public sealed class ElectedServerRoleAccessor : IServerRoleAccessor
/// Initializes a new instance of the <see cref="ElectedServerRoleAccessor" /> class.
/// </summary>
/// <param name="registrationService">The registration service.</param>
/// <param name="options">Some options.</param>
public ElectedServerRoleAccessor(IServerRegistrationService registrationService) => _registrationService =
registrationService ?? throw new ArgumentNullException(nameof(registrationService));

View File

@@ -62,6 +62,9 @@ public class RefreshInstruction
/// <summary>
/// A private constructor to create a new instance
/// </summary>
/// <param name="refresher"></param>
/// <param name="refreshType"></param>
/// <param name="json"></param>
/// <param name="idCount">
/// When the refresh method is <see cref="RefreshMethodType.RefreshByIds" /> we know how many Ids are being refreshed
/// so we know the instruction

View File

@@ -65,7 +65,6 @@ public sealed class HtmlLocalLinkParser
/// Parses the string looking for the {localLink} syntax and updates them to their correct links.
/// </summary>
/// <param name="text"></param>
/// <param name="urlProvider"></param>
/// <returns></returns>
public string EnsureInternalLinks(string text)
{

View File

@@ -16,7 +16,6 @@ public interface ISearchableTree : IDiscoverable
/// <param name="query"></param>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <param name="totalFound"></param>
/// <param name="searchFrom">
/// A starting point for the search, generally a node id, but for members this is a member type alias
/// </param>

View File

@@ -17,7 +17,7 @@ public class HybridUmbracoContextAccessor : HybridAccessorBase<IUmbracoContext>,
}
/// <summary>
/// Tries to get the <see cref="UmbracoContext" /> object.
/// Tries to get the <see cref="IUmbracoContext" /> object.
/// </summary>
public bool TryGetUmbracoContext([MaybeNullWhen(false)] out IUmbracoContext umbracoContext)
{
@@ -27,12 +27,12 @@ public class HybridUmbracoContextAccessor : HybridAccessorBase<IUmbracoContext>,
}
/// <summary>
/// Clears the current <see cref="UmbracoContext" /> object.
/// Clears the current <see cref="IUmbracoContext" /> object.
/// </summary>
public void Clear() => Value = null;
/// <summary>
/// Sets the <see cref="UmbracoContext" /> object.
/// Sets the <see cref="IUmbracoContext" /> object.
/// </summary>
/// <param name="umbracoContext"></param>
public void Set(IUmbracoContext umbracoContext) => Value = umbracoContext;

View File

@@ -14,6 +14,7 @@ public interface IRuntimeMinifier
/// Creates a css bundle
/// </summary>
/// <param name="bundleName"></param>
/// <param name="bundleOptions"></param>
/// <param name="filePaths"></param>
/// <remarks>
/// All files must be absolute paths, relative paths will throw <see cref="InvalidOperationException" />
@@ -36,7 +37,7 @@ public interface IRuntimeMinifier
/// Creates a JS bundle
/// </summary>
/// <param name="bundleName"></param>
/// <param name="optimizeOutput"></param>
/// <param name="bundleOptions"></param>
/// <param name="filePaths"></param>
/// <remarks>
/// All files must be absolute paths, relative paths will throw <see cref="InvalidOperationException" />

View File

@@ -3,13 +3,13 @@ using Examine;
namespace Umbraco.Cms.Infrastructure.Examine;
/// <summary>
/// Creates a collection of <see cref="ValueSet" /> to be indexed based on a collection of <see cref="T" />
/// Creates a collection of <see cref="ValueSet" /> to be indexed based on a collection of <typeparamref name="T"/>.
/// </summary>
/// <typeparam name="T"></typeparam>
public interface IValueSetBuilder<in T>
{
/// <summary>
/// Creates a collection of <see cref="ValueSet" /> to be indexed based on a collection of <see cref="T" />
/// Creates a collection of <see cref="ValueSet" /> to be indexed based on a collection of <typeparamref name="T"/>.
/// </summary>
/// <param name="content"></param>
/// <returns></returns>

View File

@@ -4,7 +4,7 @@ using Umbraco.Cms.Core.Collections;
namespace Umbraco.Cms.Infrastructure.Examine;
/// <summary>
/// An <see cref="IIndexPopulator" /> that is automatically associated to any index of type <see cref="TIndex" />
/// An <see cref="IIndexPopulator" /> that is automatically associated to any index of type <typeparamref name="TIndex"/>
/// </summary>
/// <typeparam name="TIndex"></typeparam>
public abstract class IndexPopulator<TIndex> : IndexPopulator

View File

@@ -12,7 +12,7 @@ namespace Umbraco.Cms.Infrastructure.HostedServices;
/// Provides a base class for recurring background tasks implemented as hosted services.
/// </summary>
/// <remarks>
/// See: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-3.1&tabs=visual-studio#timed-background-tasks
/// See: <see href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-3.1&amp;tabs=visual-studio#timed-background-tasks"/>.
/// </remarks>
public abstract class RecurringHostedServiceBase : IHostedService, IDisposable
{

View File

@@ -124,9 +124,9 @@ namespace Umbraco.Extensions
/// Outputs a .txt format log at /App_Data/Logs/
/// </summary>
/// <param name="logConfig">A Serilog LoggerConfiguration</param>
/// <param name="loggingConfiguration"></param>
/// <param name="hostingEnvironment"></param>
/// <param name="minimumLevel">The log level you wish the JSON file to collect - default is Verbose (highest)</param>
/// <param name="retainedFileCount">The number of days to keep log files. Default is set to null which means all logs are kept</param>
///
[Obsolete("Will be removed in Umbraco 13.")]
public static LoggerConfiguration OutputDefaultTextFile(
this LoggerConfiguration logConfig,

View File

@@ -520,19 +520,8 @@ public class DatabaseSchemaCreator
}
/// <summary>
/// Drops the table for the specified <typeparamref name="T" />.
/// Drops the table for the specified <paramref name="tableName"/>
/// </summary>
/// <typeparam name="T">The type representing the DTO/table.</typeparam>
/// <example>
/// <code>
/// schemaHelper.DropTable&lt;MyDto&gt;);
/// </code>
/// </example>
/// <remarks>
/// If <typeparamref name="T" /> has been decorated with an <see cref="TableNameAttribute" />, the name from that
/// attribute will be used for the table name. If the attribute is not present, the name
/// <typeparamref name="T" /> will be used instead.
/// </remarks>
public void DropTable(string? tableName)
{
var sql = new Sql(string.Format(SqlSyntax.DropTable, SqlSyntax.GetQuotedTableName(tableName)));

View File

@@ -33,7 +33,7 @@ public abstract class MigrationExpressionBase : IMigrationExpression
public List<IMigrationExpression> Expressions => _expressions ??= new List<IMigrationExpression>();
/// <summary>
/// This might be useful in the future if we add it to the interface, but for now it's used to hack the DeleteAppTables & DeleteForeignKeyExpression
/// This might be useful in the future if we add it to the interface, but for now it's used to hack the DeleteAppTables &amp; DeleteForeignKeyExpression
/// to ensure they are not executed twice.
/// </summary>
internal string? Name { get; set; }

View File

@@ -5,11 +5,11 @@ using Umbraco.Extensions;
namespace Umbraco.Cms.Infrastructure.Migrations.Upgrade.V_8_0_0;
[Obsolete("This is not used anymore and will be removed in Umbraco 13")]
/// <summary>
/// Adds a new, self-joined field to umbracoLanguages to hold the fall-back language for
/// a given language.
/// </summary>
[Obsolete("This is not used anymore and will be removed in Umbraco 13")]
public class FallbackLanguage : MigrationBase
{
public FallbackLanguage(IMigrationContext context)

View File

@@ -3,10 +3,10 @@ using Umbraco.Cms.Infrastructure.Persistence.Dtos;
namespace Umbraco.Cms.Infrastructure.Migrations.Upgrade.V_8_0_0;
[Obsolete("This is not used anymore and will be removed in Umbraco 13")]
/// <summary>
/// Creates/Updates non mandatory FK columns to the user table
/// </summary>
[Obsolete("This is not used anymore and will be removed in Umbraco 13")]
public class UserForeignKeys : MigrationBase
{
public UserForeignKeys(IMigrationContext context)

View File

@@ -63,7 +63,7 @@ public class MediaWithCrops<T> : MediaWithCrops
public new T Content { get; }
/// <summary>
/// Performs an implicit conversion from <see cref="MediaWithCrops{T}" /> to <see cref="T" />.
/// Performs an implicit conversion from <see cref="MediaWithCrops{T}" /> to <typeparamref name="T"/>.
/// </summary>
/// <param name="mediaWithCrops">The media with crops.</param>
/// <returns>

View File

@@ -35,6 +35,7 @@ public class TextBuilder : Builder
/// Initializes a new instance of the <see cref="TextBuilder" /> class with a list of models to generate
/// and the result of code parsing.
/// </summary>
/// <param name="config">The models builder configuration.</param>
/// <param name="typeModels">The list of models to generate.</param>
public TextBuilder(ModelsBuilderSettings config, IList<TypeModel> typeModels)
: base(config, typeModels)

View File

@@ -1,3 +1,4 @@
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Install.Models;
using Umbraco.Cms.Infrastructure.Persistence.SqlSyntax;

View File

@@ -37,7 +37,7 @@ public abstract class EntityRepositoryBase<TId, TEntity> : RepositoryBase, IRead
protected ILogger<EntityRepositoryBase<TId, TEntity>> Logger { get; }
/// <summary>
/// Gets the isolated cache for the <see cref="TEntity" />
/// Gets the isolated cache for the <typeparamref name="TEntity"/>
/// </summary>
protected IAppPolicyCache GlobalIsolatedCache => AppCaches.IsolatedCaches.GetOrCreate<TEntity>();
@@ -185,7 +185,7 @@ public abstract class EntityRepositoryBase<TId, TEntity> : RepositoryBase, IRead
=> PerformCount(query);
/// <summary>
/// Get the entity id for the <see cref="TEntity" />
/// Get the entity id for the <typeparamref name="TEntity"/>.
/// </summary>
protected virtual TId GetEntityId(TEntity entity)
=> (TId)(object)entity.Id;

View File

@@ -17,7 +17,7 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <remarks>
/// This repo implements the base <see cref="NPocoRepositoryBase{TId,TEntity}" /> class so that permissions can be
/// This repo implements the base <see cref="EntityRepositoryBase{TId, TEntity}" /> class so that permissions can be
/// queued to be persisted
/// like the normal repository pattern but the standard repository Get commands don't apply and will throw
/// <see cref="NotImplementedException" />

View File

@@ -145,7 +145,7 @@ internal class UserRepository : EntityRepositoryBase<int, IUser>, IUserRepositor
/// </summary>
/// <param name="username"></param>
/// <param name="includeSecurityData">
/// Can be used for slightly faster user lookups if the result doesn't require security data (i.e. groups, apps & start nodes).
/// Can be used for slightly faster user lookups if the result doesn't require security data (i.e. groups, apps &amp; start nodes).
/// This is really only used for a shim in order to upgrade to 7.6.
/// </param>
/// <returns>
@@ -160,7 +160,7 @@ internal class UserRepository : EntityRepositoryBase<int, IUser>, IUserRepositor
/// <param name="id"></param>
/// <param name="includeSecurityData">
/// This is really only used for a shim in order to upgrade to 7.6 but could be used
/// for slightly faster user lookups if the result doesn't require security data (i.e. groups, apps & start nodes)
/// for slightly faster user lookups if the result doesn't require security data (i.e. groups, apps &amp; start nodes)
/// </param>
/// <returns>
/// A non cached <see cref="IUser"/> instance

View File

@@ -390,7 +390,7 @@ public class UmbracoDatabase : Database, IUmbracoDatabase
public new T ExecuteScalar<T>(string sql, params object[] args)
=> ExecuteScalar<T>(new Sql(sql, args));
/// <inheritdoc cref="Database.ExecuteScalar{T}(sql)" />
/// <inheritdoc cref="Database.ExecuteScalar{T}(Sql)" />
public new T ExecuteScalar<T>(Sql sql)
=> ExecuteScalar<T>(sql.SQL, CommandType.Text, sql.Arguments);

View File

@@ -2,6 +2,7 @@ using NPoco;
using Umbraco.Cms.Core.Persistence;
using Umbraco.Cms.Infrastructure.Persistence.Dtos;
using Umbraco.Cms.Infrastructure.Persistence.SqlSyntax;
using Umbraco.Cms.Infrastructure.Runtime;
using Umbraco.Extensions;
namespace Umbraco.Cms.Infrastructure.Persistence;
@@ -21,7 +22,7 @@ internal static class UmbracoDatabaseExtensions
/// <summary>
/// Gets a dictionary of key/values directly from the database, no scope, nothing.
/// </summary>
/// <remarks>Used by <see cref="CoreRuntimeBootstrapper" /> to determine the runtime state.</remarks>
/// <remarks>Used by <see cref="RuntimeState" /> to determine the runtime state.</remarks>
public static IReadOnlyDictionary<string, string?>? GetFromKeyValueTable(
this IUmbracoDatabase? database,
string keyPrefix)

View File

@@ -119,7 +119,6 @@ internal abstract class BlockEditorPropertyValueEditor : DataValueEditor, IDataV
/// Ensure that sub-editor values are translated through their ToEditor methods
/// </summary>
/// <param name="property"></param>
/// <param name="dataTypeService"></param>
/// <param name="culture"></param>
/// <param name="segment"></param>
/// <returns></returns>

View File

@@ -33,6 +33,7 @@ internal static class ImageCropperConfigurationExtensions
/// <summary>
/// Applies the configuration to ensure only valid crops are kept and have the correct width/height.
/// </summary>
/// <param name="imageCropperValue"></param>
/// <param name="configuration">The configuration.</param>
public static void ApplyConfiguration(this ImageCropperValue imageCropperValue, ImageCropperConfiguration? configuration)
{

View File

@@ -108,7 +108,11 @@ public class BackOfficeIdentityUser : UmbracoIdentityUser
/// <summary>
/// Used to construct a new instance without an identity
/// </summary>
/// <param name="globalSettings"></param>
/// <param name="username"></param>
/// <param name="email">This is allowed to be null (but would need to be filled in if trying to persist this instance)</param>
/// <param name="culture"></param>
/// <param name="name"></param>
public static BackOfficeIdentityUser CreateNew(GlobalSettings globalSettings, string? username, string email, string culture, string? name = null)
{
if (string.IsNullOrWhiteSpace(username))

View File

@@ -14,7 +14,7 @@ public class DeleteExternalLoginsOnMemberDeletedHandler : INotificationHandler<M
private readonly IExternalLoginWithKeyService _externalLoginWithKeyService;
/// <summary>
/// Initializes a new instance of the <see cref="DeleteExternalLoginsOnMemberDeletingHandler" /> class.
/// Initializes a new instance of the <see cref="DeleteExternalLoginsOnMemberDeletedHandler"/> class.
/// </summary>
public DeleteExternalLoginsOnMemberDeletedHandler(IExternalLoginWithKeyService externalLoginWithKeyService)
=> _externalLoginWithKeyService = externalLoginWithKeyService;

View File

@@ -18,7 +18,7 @@ public interface IUmbracoUserManager<TUser> : IDisposable
Task<string> GetUserIdAsync(TUser user);
/// <summary>
/// Get the <see cref="TUser" /> from a <see cref="ClaimsPrincipal" />
/// Get the <typeparamref name="TUser"/> from a <see cref="ClaimsPrincipal" />
/// </summary>
/// <param name="principal">The <see cref="ClaimsPrincipal" /></param>
/// <returns>A <see cref="Task{TResult}" /> representing the result of the asynchronous operation.</returns>

View File

@@ -338,9 +338,14 @@ namespace Umbraco.Cms
/// <summary>
/// Processes the instruction batch and checks for errors.
/// </summary>
/// <param name="cacheRefreshers"></param>
/// <param name="instructionBatch"></param>
/// <param name="instruction"></param>
/// <param name="processed">
/// Tracks which instructions have already been processed to avoid duplicates
/// </param>
/// <param name="cancellationToken"></param>
/// <param name="lastId"></param>
/// <returns>
/// Returns true if all instructions in the batch were processed, otherwise false if they could not be due to the app being shut down
/// </returns>

View File

@@ -36,6 +36,7 @@ public class UserGroupHandler : MustSatisfyRequirementAuthorizationHandler<UserG
/// <param name="mediaService">Service for media related operations.</param>
/// <param name="entityService">Service for entity related operations.</param>
/// <param name="backOfficeSecurityAccessor">Accessor for back-office security.</param>
/// <param name="appCaches">App caches.</param>
public UserGroupHandler(
IHttpContextAccessor httpContextAccessor,
IUserService userService,

View File

@@ -650,7 +650,6 @@ public class AuthenticationController : UmbracoApiControllerBase
/// Return the <see cref="UserDetail" /> for the given <see cref="IUser" />
/// </summary>
/// <param name="user"></param>
/// <param name="principal"></param>
/// <returns></returns>
private UserDetail? GetUserDetail(IUser? user)
{

View File

@@ -633,7 +633,7 @@ public class CodeFileController : BackOfficeNotificationsController
/// <param name="data">The style sheet data</param>
/// <returns>The style sheet combined from the CSS and the rules</returns>
/// <remarks>
/// Any "umbraco style rules" in the CSS will be removed and replaced with the rules passed in <see cref="data" />
/// Any "umbraco style rules" in the CSS will be removed and replaced with the rules passed in <paramref name="data"/>
/// </remarks>
public string? PostInterpolateStylesheetRules(StylesheetData data)
{

View File

@@ -1962,7 +1962,7 @@ public class ContentController : ContentControllerBase
/// <param name="localizationArea"></param>
/// <param name="localizationAlias"></param>
/// <param name="cultureToken">
/// The culture used in the localization message, null by default which means <see cref="culture" /> will be used.
/// The culture used in the localization message, null by default which means <paramref name="culture"/> will be used.
/// </param>
private void AddVariantValidationError(string? culture, string? segment, string localizationArea, string localizationAlias, string? cultureToken = null)
{

View File

@@ -72,7 +72,6 @@ public abstract class ContentControllerBase : BackOfficeNotificationsController
/// Handles if the content for the specified ID isn't found
/// </summary>
/// <param name="id">The content ID to find</param>
/// <param name="throwException">Whether to throw an exception</param>
/// <returns>The error response</returns>
protected NotFoundObjectResult HandleContentNotFound(object id)
{

Some files were not shown because too many files have changed in this diff Show More