// Copyright Epic Games, Inc. All Rights Reserved. using System; using EpicGames.Core; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; namespace HordeServer { /// /// Concrete implementation of /// class ServerInfo : IServerInfo { /// public SemVer Version => ServerApp.Version; /// public string Environment => ServerApp.DeploymentEnvironment; /// public string SessionId => ServerApp.SessionId; /// public DirectoryReference AppDir => ServerApp.AppDir; /// public DirectoryReference DataDir => ServerApp.DataDir; /// public IConfiguration Configuration => _configuration; /// public bool EnableDebugEndpoints => _serverSettings.Value.EnableDebugEndpoints; /// public bool ReadOnlyMode => _serverSettings.Value.MongoReadOnlyMode; /// public Uri ServerUrl => _serverSettings.Value.ServerUrl; /// public Uri DashboardUrl => _serverSettings.Value.DashboardUrl; readonly IConfiguration _configuration; readonly IOptions _serverSettings; /// /// Constructor /// public ServerInfo(IConfiguration configuration, IOptions serverSettings) { _configuration = configuration; _serverSettings = serverSettings; } /// public bool IsRunModeActive(RunMode mode) => _serverSettings.Value.IsRunModeActive(mode); } }