using OI.Metrology.Server.Models; using OI.Metrology.Shared.Models.Stateless; using System.Text.Json; namespace OI.Metrology.Server.Repository; public class AppSettingsRepository : IAppSettingsRepository { private readonly AppSettings _AppSettings; public AppSettingsRepository(AppSettings appSettings) => _AppSettings = appSettings; public List GetAppSettings() { List results = new(); string json = JsonSerializer.Serialize(_AppSettings); JsonElement jsonElement = JsonSerializer.Deserialize(json); JsonProperty[] jsonProperties = jsonElement.EnumerateObject().ToArray(); foreach (JsonProperty jsonProperty in jsonProperties) results.Add(jsonProperty.Value.ToString()); if (!_AppSettings.IsDevelopment) throw new Exception("Shouldn't expose!"); return results; } List IAppSettingsRepository.GetAppSettings() => GetAppSettings(); public string GetBuildNumberAndGitCommitSeven() { string result = string.Concat(_AppSettings.BuildNumber, '-', _AppSettings.GitCommitSeven); return result; } string IAppSettingsRepository.GetBuildNumberAndGitCommitSeven() => GetBuildNumberAndGitCommitSeven(); }