using OI.Metrology.Server.Models; using OI.Metrology.Shared.Models.Stateless; namespace OI.Metrology.Server.Repository; public class AppSettingsRepository : IAppSettingsRepository { private readonly AppSettings _AppSettings; public AppSettingsRepository(AppSettings appSettings) => _AppSettings = appSettings; internal Models.Binder.AppSettings GetAppSettings() { Models.Binder.AppSettings result = new() { BuildNumber = _AppSettings.BuildNumber, Company = _AppSettings.Company, GitCommitSeven = _AppSettings.GitCommitSeven, IsDevelopment = _AppSettings.IsDevelopment, IsStaging = _AppSettings.IsStaging, }; return result; } Models.Binder.AppSettings IAppSettingsRepository.GetAppSettings() => GetAppSettings(); internal string GetBuildNumberAndGitCommitSeven() { string result = string.Concat(_AppSettings.BuildNumber, '-', _AppSettings.GitCommitSeven); return result; } internal void VerifyConnectionStrings() { if (string.IsNullOrEmpty(_AppSettings.ConnectionString)) throw new NotSupportedException(); #if DEBUG if (!_AppSettings.ConnectionString.Contains("test", StringComparison.CurrentCultureIgnoreCase)) throw new NotSupportedException(); #endif #if !DEBUG if (_AppSettings.ConnectionString.Contains("test", StringComparison.CurrentCultureIgnoreCase)) throw new NotSupportedException(); #endif } string IAppSettingsRepository.GetBuildNumberAndGitCommitSeven() => GetBuildNumberAndGitCommitSeven(); void IAppSettingsRepository.VerifyConnectionStrings() => VerifyConnectionStrings(); }