using Microsoft.Extensions.Logging; using ReInject.Implementation.Attributes; namespace Server; using Microsoft.Extensions.Configuration; public class AuthorizationServer : NetCoreServer.TcpServer { private readonly AesProvider _aesProvider; private readonly ILogger _logger; public AuthorizationServer(IConfiguration configuration, ILoggerFactory loggerFactory, AesProvider aesProvider) : base( configuration["auth:address"]!, configuration.GetValue("auth:port")) { _aesProvider = aesProvider; _logger = loggerFactory.CreateLogger(nameof(AuthorizationServer)); } protected override NetCoreServer.TcpSession CreateSession() { var session = new AuthorizationServerSession(this, _logger, _aesProvider); return session; } protected override void OnStarting() { base.OnStarting(); _logger.LogInformation("is starting"); } protected override void OnStarted() { base.OnStarted(); _logger.LogInformation("is started"); } protected override void OnStopping() { base.OnStopping(); _logger.LogInformation("is stopping"); } protected override void OnStopped() { base.OnStopped(); _logger.LogInformation("is stopped"); } protected override void OnError(System.Net.Sockets.SocketError error) { _logger.LogError("Authorization server caught an error with code {error}", error); } }