Add XML documentation for improved code clarity
Added detailed XML documentation across multiple files to enhance code maintainability and readability. Key updates include: - Documented `AllowAllDashboardAuthorizationFilter` to clarify its development-only usage. - Added comments to `DtoExtensions` for Hangfire job ID generation and DTO-to-command conversion methods. - Enhanced `HealthCheckHtmlGenerator` with detailed descriptions of HTML generation methods and utility functions. - Documented `DependencyInjection` and `ProfileWorkerOptionsValidator` to explain service registration and configuration validation. - Updated `ProfileCache` with comments on thread-safe operations. - Added documentation to `ProfileWork` for profile synchronization logic and execution flow. - Enhanced `ProfileWorker` with health check logic and background service execution details. - Documented `ProfileWorkerOptions` configuration properties. These changes aim to improve developer understanding and ensure best practices are followed in production environments.
This commit is contained in:
@@ -2,8 +2,26 @@
|
||||
|
||||
namespace ECMJobRunner.WebCron.ProfileWorker;
|
||||
|
||||
/// <summary>
|
||||
/// Extension methods for configuring ProfileWorker services in the DI container.
|
||||
/// </summary>
|
||||
public static class DependencyInjection
|
||||
{
|
||||
/// <summary>
|
||||
/// Registers ProfileWorker background service and related dependencies.
|
||||
/// </summary>
|
||||
/// <param name="services">The service collection to configure.</param>
|
||||
/// <param name="configuration">Application configuration containing ProfileWorker settings.</param>
|
||||
/// <returns>The configured service collection for method chaining.</returns>
|
||||
/// <remarks>
|
||||
/// Registers the following services:
|
||||
/// <list type="bullet">
|
||||
/// <item><description><see cref="ProfileWorkerOptions"/> - Configuration options from appsettings.json</description></item>
|
||||
/// <item><description><see cref="ProfileWorker"/> - Singleton background service (also registered as IHostedService)</description></item>
|
||||
/// <item><description><see cref="ProfileCache"/> - Singleton cache for profile state</description></item>
|
||||
/// <item><description><see cref="ProfileWork"/> - Scoped service for profile synchronization logic</description></item>
|
||||
/// </list>
|
||||
/// </remarks>
|
||||
public static IServiceCollection AddProfileWorker(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
// Configure ProfileWorker options from appsettings.json
|
||||
@@ -25,10 +43,27 @@ public static class DependencyInjection
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validates ProfileWorkerOptions configuration at startup.
|
||||
/// Validates <see cref="ProfileWorkerOptions"/> configuration at application startup.
|
||||
/// Ensures IntervalMS is within acceptable bounds to prevent misconfiguration.
|
||||
/// </summary>
|
||||
internal class ProfileWorkerOptionsValidator : IValidateOptions<ProfileWorkerOptions>
|
||||
{
|
||||
/// <summary>
|
||||
/// Validates the ProfileWorker options.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the options instance (not used).</param>
|
||||
/// <param name="options">The options to validate.</param>
|
||||
/// <returns>
|
||||
/// <see cref="ValidateOptionsResult.Success"/> if valid,
|
||||
/// or <see cref="ValidateOptionsResult.Fail"/> with error message if invalid.
|
||||
/// </returns>
|
||||
/// <remarks>
|
||||
/// Validation rules:
|
||||
/// <list type="bullet">
|
||||
/// <item><description>IntervalMS must be greater than 0</description></item>
|
||||
/// <item><description>IntervalMS should be at least 100ms to avoid excessive CPU usage</description></item>
|
||||
/// </list>
|
||||
/// </remarks>
|
||||
public ValidateOptionsResult Validate(string? name, ProfileWorkerOptions options)
|
||||
{
|
||||
if (options.IntervalMS <= 0)
|
||||
|
||||
Reference in New Issue
Block a user