/* * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) * See https://github.com/openiddict/openiddict-core for more information concerning * the license and the contributors participating to this project. */ using System.ComponentModel; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; namespace OpenIddict.Server; /// /// Represents a service responsible for creating transactions. /// [EditorBrowsable(EditorBrowsableState.Never)] public sealed class OpenIddictServerFactory : IOpenIddictServerFactory { private readonly ILogger _logger; private readonly IOptionsMonitor _options; /// /// Creates a new instance of the class. /// public OpenIddictServerFactory( ILogger logger, IOptionsMonitor options) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _options = options ?? throw new ArgumentNullException(nameof(options)); } /// public ValueTask CreateTransactionAsync() => new(new OpenIddictServerTransaction { Logger = _logger, Options = _options.CurrentValue }); }