// 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);
}
}