From 46c9d91dc9df25fbc3ef83c687e313516652b265 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Mon, 16 Jan 2023 17:05:21 -0700 Subject: [PATCH] GetAppSettings --- .../ApiControllers/AppSettingsController.cs | 18 ++--- Server/Program.cs | 2 +- Server/Repositories/AppSettingsRepository.cs | 29 ++++---- .../Repositories/ClientSettingsRepository.cs | 4 +- Server/Repositories/MetrologyRepository.cs | 74 +++++++++++++------ .../Stateless/IAppSettingsRepository.cs | 4 +- Tests/UnitTestAppSettingsController.cs | 8 +- 7 files changed, 79 insertions(+), 60 deletions(-) diff --git a/Server/ApiControllers/AppSettingsController.cs b/Server/ApiControllers/AppSettingsController.cs index 4b6c5d9..ce0bf8f 100644 --- a/Server/ApiControllers/AppSettingsController.cs +++ b/Server/ApiControllers/AppSettingsController.cs @@ -8,22 +8,16 @@ namespace OI.Metrology.Server.ApiControllers; public class AppSettingsController : ControllerBase, IAppSettingsController { - private readonly IAppSettingsRepository _AppSettingsRepository; + private readonly IAppSettingsRepository _AppSettingsRepository; - public AppSettingsController(IAppSettingsRepository AppSettingsRepository) => _AppSettingsRepository = AppSettingsRepository; + public AppSettingsController(IAppSettingsRepository AppSettingsRepository) => _AppSettingsRepository = AppSettingsRepository; [HttpGet(nameof(IAppSettingsController.Action.App))] - public ActionResult GetAppSettings() - { - List results = _AppSettingsRepository.GetAppSettings(); - return Ok(results); - } + public ActionResult GetAppSettings() => + Ok(_AppSettingsRepository.GetAppSettings()); [HttpGet(nameof(IAppSettingsController.Action.DevOps))] - public ActionResult GetBuildNumberAndGitCommitSeven() - { - string result = _AppSettingsRepository.GetBuildNumberAndGitCommitSeven(); - return Ok(result); - } + public ActionResult GetBuildNumberAndGitCommitSeven() => + Ok(_AppSettingsRepository.GetBuildNumberAndGitCommitSeven()); } \ No newline at end of file diff --git a/Server/Program.cs b/Server/Program.cs index 089a4d4..12cbdb0 100644 --- a/Server/Program.cs +++ b/Server/Program.cs @@ -67,7 +67,7 @@ public class Program _ = webApplicationBuilder.Services.AddSingleton(_ => appSettings); _ = webApplicationBuilder.Services.AddSingleton(); - _ = webApplicationBuilder.Services.AddSingleton(_ => appSettingsRepository); + _ = webApplicationBuilder.Services.AddSingleton>(_ => appSettingsRepository); _ = webApplicationBuilder.Services.AddSingleton(_ => clientSettingsRepository); _ = webApplicationBuilder.Services.AddSingleton(); _ = webApplicationBuilder.Services.AddSingleton(_ => sqlDbConnectionFactory); diff --git a/Server/Repositories/AppSettingsRepository.cs b/Server/Repositories/AppSettingsRepository.cs index adad080..8a215f5 100644 --- a/Server/Repositories/AppSettingsRepository.cs +++ b/Server/Repositories/AppSettingsRepository.cs @@ -1,37 +1,36 @@ using OI.Metrology.Server.Models; using OI.Metrology.Shared.Models.Stateless; -using System.Text.Json; namespace OI.Metrology.Server.Repository; -public class AppSettingsRepository : IAppSettingsRepository +public class AppSettingsRepository : IAppSettingsRepository { private readonly AppSettings _AppSettings; public AppSettingsRepository(AppSettings appSettings) => _AppSettings = appSettings; - public List GetAppSettings() + internal Models.Binder.AppSettings 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; + Models.Binder.AppSettings result = new() + { + BuildNumber = _AppSettings.BuildNumber, + Company = _AppSettings.Company, + GitCommitSeven = _AppSettings.GitCommitSeven, + IsDevelopment = _AppSettings.IsDevelopment, + IsStaging = _AppSettings.IsStaging, + }; + return result; } - List IAppSettingsRepository.GetAppSettings() => GetAppSettings(); + Models.Binder.AppSettings IAppSettingsRepository.GetAppSettings() => GetAppSettings(); - public string GetBuildNumberAndGitCommitSeven() + internal string GetBuildNumberAndGitCommitSeven() { string result = string.Concat(_AppSettings.BuildNumber, '-', _AppSettings.GitCommitSeven); return result; } - string IAppSettingsRepository.GetBuildNumberAndGitCommitSeven() => GetBuildNumberAndGitCommitSeven(); + string IAppSettingsRepository.GetBuildNumberAndGitCommitSeven() => GetBuildNumberAndGitCommitSeven(); } \ No newline at end of file diff --git a/Server/Repositories/ClientSettingsRepository.cs b/Server/Repositories/ClientSettingsRepository.cs index d47f5e3..cf88ffd 100644 --- a/Server/Repositories/ClientSettingsRepository.cs +++ b/Server/Repositories/ClientSettingsRepository.cs @@ -11,7 +11,7 @@ public class ClientSettingsRepository : IClientSettingsRepository public ClientSettingsRepository(AppSettings appSettings) => _AppSettings = appSettings; - public List GetClientSettings(IPAddress? remoteIpAddress) + internal List GetClientSettings(IPAddress? remoteIpAddress) { List results = new(); if (remoteIpAddress is null) @@ -25,7 +25,7 @@ public class ClientSettingsRepository : IClientSettingsRepository List IClientSettingsRepository.GetClientSettings(IPAddress? remoteIpAddress) => GetClientSettings(remoteIpAddress); - public string GetIpAddress(IPAddress? remoteIpAddress) + internal static string GetIpAddress(IPAddress? remoteIpAddress) { string result = remoteIpAddress is null ? string.Empty : remoteIpAddress.ToString(); return result; diff --git a/Server/Repositories/MetrologyRepository.cs b/Server/Repositories/MetrologyRepository.cs index f19eeb3..bad1d20 100644 --- a/Server/Repositories/MetrologyRepository.cs +++ b/Server/Repositories/MetrologyRepository.cs @@ -31,7 +31,7 @@ public class MetrologyRepository : IMetrologyRepository protected DbProviderFactory GetDbProviderFactory(IDbConnection conn) => DbProviderFactories.GetFactory(conn.GetType().Namespace); - public TransactionScope StartTransaction() => new(); + internal static TransactionScope StartTransaction() => new(); protected void CacheItem(string key, object v) { @@ -40,7 +40,7 @@ public class MetrologyRepository : IMetrologyRepository _ = _Cache.Set(key, v, new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromHours(1))); } - public IEnumerable GetToolTypes() + internal IEnumerable GetToolTypes() { IEnumerable cached; string cacheKey = "GetToolTypes"; @@ -55,7 +55,7 @@ public class MetrologyRepository : IMetrologyRepository return r; } - public ToolType GetToolTypeByName(string name) + internal ToolType GetToolTypeByName(string name) { ToolType cached; string cacheKey = "GetToolTypeByName_" + name; @@ -72,7 +72,7 @@ public class MetrologyRepository : IMetrologyRepository return r; } - public ToolType GetToolTypeByID(int id) + internal ToolType GetToolTypeByID(int id) { ToolType cached; string cacheKey = "GetToolTypeByID_" + id.ToString(); @@ -89,7 +89,7 @@ public class MetrologyRepository : IMetrologyRepository return r; } - public IEnumerable GetToolTypeMetadataByToolTypeID(int id) + internal IEnumerable GetToolTypeMetadataByToolTypeID(int id) { IEnumerable cached; string cacheKey = "GetToolTypeMetadataByToolTypeID_" + id.ToString(); @@ -106,7 +106,7 @@ public class MetrologyRepository : IMetrologyRepository return r; } - public long InsertToolDataJSON(JToken jsonrow, long headerId, List metaData, string tableName) + internal long InsertToolDataJSON(JToken jsonrow, long headerId, List metaData, string tableName) { long r = -1; using (DbConnection conn = GetDbConnection()) @@ -261,7 +261,7 @@ public class MetrologyRepository : IMetrologyRepository return Convert.ToInt64(o); } - public DataTable ExportData(string spName, DateTime startTime, DateTime endTime) + internal DataTable ExportData(string spName, DateTime startTime, DateTime endTime) { DataTable dt = new(); DateTime endTimeLocal = endTime.ToLocalTime(); @@ -311,7 +311,7 @@ public class MetrologyRepository : IMetrologyRepository return sb.ToString(); } - public DataTable GetHeaders(int toolTypeId, DateTime? startTime, DateTime? endTime, int? pageNo, int? pageSize, long? headerId, out long totalRecords) + internal DataTable GetHeaders(int toolTypeId, DateTime? startTime, DateTime? endTime, int? pageNo, int? pageSize, long? headerId, out long totalRecords) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -404,7 +404,7 @@ public class MetrologyRepository : IMetrologyRepository return dt; } - public DataTable GetData(int toolTypeId, long headerid) + internal DataTable GetData(int toolTypeId, long headerid) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -499,7 +499,7 @@ public class MetrologyRepository : IMetrologyRepository return dt; } - public Guid GetHeaderAttachmentID(int toolTypeId, long headerId) + internal Guid GetHeaderAttachmentID(int toolTypeId, long headerId) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -511,7 +511,7 @@ public class MetrologyRepository : IMetrologyRepository $"SELECT AttachmentID FROM [{tt.HeaderTableName}] WHERE ID = @HeaderID"; return conn.ExecuteScalar(sql, param: new { HeaderID = headerId }); } - public string GetHeaderInsertDate(int toolTypeId, long headerId) + internal string GetHeaderInsertDate(int toolTypeId, long headerId) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -522,7 +522,7 @@ public class MetrologyRepository : IMetrologyRepository $"SELECT CONVERT(varchar, case when [InsertDate] < [Date] or [Date] is null then [InsertDate] else [Date] end, 120) d FROM[{tt.HeaderTableName}] where ID = @HeaderID"; return conn.ExecuteScalar(sql, param: new { HeaderID = headerId }); } - public string GetAttachmentInsertDateByGUID(string tableName, Guid attachmentId) + internal string GetAttachmentInsertDateByGUID(string tableName, Guid attachmentId) { using DbConnection conn = GetDbConnection(); string sql = ""; @@ -537,13 +537,13 @@ public class MetrologyRepository : IMetrologyRepository return conn.ExecuteScalar(sql, param: new { AttachmentID = attachmentId }); } - public void SetHeaderDirName(string tableName, long headerId, string dateDir) + internal void SetHeaderDirName(string tableName, long headerId, string dateDir) { using DbConnection conn = GetDbConnection(); _ = conn.Execute($"UPDATE [{tableName}] SET AttachDirName = @AttachDirName WHERE ID = @HeaderID;", new { HeaderID = headerId, AttachDirName = dateDir }); } - public Guid GetDataAttachmentID(int toolTypeId, long headerId, string title) + internal Guid GetDataAttachmentID(int toolTypeId, long headerId, string title) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -556,7 +556,7 @@ public class MetrologyRepository : IMetrologyRepository return conn.ExecuteScalar(sql, param: new { HeaderID = headerId, Title = title }); } // J Ouellette Added - public string GetDataInsertDate(int toolTypeId, long headerId, string title) + internal string GetDataInsertDate(int toolTypeId, long headerId, string title) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -575,7 +575,7 @@ public class MetrologyRepository : IMetrologyRepository return conn.ExecuteScalar(sql, param: new { HeaderID = headerId, Title = title }); } - public void SetDataDirName(string tableName, long headerId, string title, string dateDir) + internal void SetDataDirName(string tableName, long headerId, string title, string dateDir) { using DbConnection conn = GetDbConnection(); string sql = @@ -583,13 +583,13 @@ public class MetrologyRepository : IMetrologyRepository _ = conn.Execute(sql, param: new { HeaderID = headerId, Title = title, AttachDirName = dateDir }); } - public void PurgeExistingData(int toolTypeId, string title) + internal void PurgeExistingData(int toolTypeId, string title) { using DbConnection conn = GetDbConnection(); _ = conn.Execute("PurgeExistingData", param: new { ToolTypeID = toolTypeId, Title = title }, commandType: CommandType.StoredProcedure); } - public DataSet GetOIExportData(int toolTypeId, long headerid) + internal DataSet GetOIExportData(int toolTypeId, long headerid) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -618,7 +618,7 @@ public class MetrologyRepository : IMetrologyRepository return ds; } - public IEnumerable GetHeaderTitles(int toolTypeId, int? pageNo, int? pageSize, out long totalRecords) + internal IEnumerable GetHeaderTitles(int toolTypeId, int? pageNo, int? pageSize, out long totalRecords) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -647,7 +647,7 @@ public class MetrologyRepository : IMetrologyRepository return headers; } - public IEnumerable> GetHeaderFields(int toolTypeId, long headerid) + internal IEnumerable> GetHeaderFields(int toolTypeId, long headerid) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -694,7 +694,7 @@ public class MetrologyRepository : IMetrologyRepository return r; } - public IEnumerable GetAwaitingDisposition() + internal IEnumerable GetAwaitingDisposition() { IEnumerable? r; if (!string.IsNullOrEmpty(_MockRoot)) @@ -712,7 +712,7 @@ public class MetrologyRepository : IMetrologyRepository return r; } - public int UpdateReviewDate(int toolTypeId, long headerId, bool clearDate) + internal int UpdateReviewDate(int toolTypeId, long headerId, bool clearDate) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -734,7 +734,7 @@ public class MetrologyRepository : IMetrologyRepository } } - public Guid GetHeaderAttachmentIDByTitle(int toolTypeId, string title) + internal Guid GetHeaderAttachmentIDByTitle(int toolTypeId, string title) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -746,7 +746,7 @@ public class MetrologyRepository : IMetrologyRepository return conn.ExecuteScalar(sql, param: new { Title = title }); } - public Guid GetDataAttachmentIDByTitle(int toolTypeId, string title) + internal Guid GetDataAttachmentIDByTitle(int toolTypeId, string title) { ToolType tt = GetToolTypeByID(toolTypeId); if (tt is null) @@ -759,4 +759,30 @@ public class MetrologyRepository : IMetrologyRepository } DataTable IMetrologyRepository.GetDataSharePoint(int toolTypeId, string headerId) => throw new NotImplementedException(); + + IEnumerable IMetrologyRepository.GetToolTypes() => GetToolTypes(); + ToolType IMetrologyRepository.GetToolTypeByName(string name) => GetToolTypeByName(name); + ToolType IMetrologyRepository.GetToolTypeByID(int id) => GetToolTypeByID(id); + IEnumerable IMetrologyRepository.GetToolTypeMetadataByToolTypeID(int id) => GetToolTypeMetadataByToolTypeID(id); + TransactionScope IMetrologyRepository.StartTransaction() => StartTransaction(); + void IMetrologyRepository.PurgeExistingData(int toolTypeId, string title) => PurgeExistingData(toolTypeId, title); + long IMetrologyRepository.InsertToolDataJSON(JToken jsonbody, long headerId, List metaData, string tableName) => InsertToolDataJSON(jsonbody, headerId, metaData, tableName); + DataTable IMetrologyRepository.ExportData(string spName, DateTime startTime, DateTime endTime) => ExportData(spName, startTime, endTime); + DataTable IMetrologyRepository.GetHeaders(int toolTypeId, DateTime? startTime, DateTime? endTime, int? pageNo, int? pageSize, long? headerid, out long totalRecords) => GetHeaders(toolTypeId, startTime, endTime, pageNo, pageSize, headerid, out totalRecords); + DataTable IMetrologyRepository.GetData(int toolTypeId, long headerId) => GetData(toolTypeId, headerId); + IEnumerable IMetrologyRepository.GetHeaderTitles(int toolTypeId, int? pageNo, int? pageSize, out long totalRecords) => GetHeaderTitles(toolTypeId, pageNo, pageSize, out totalRecords); + Guid IMetrologyRepository.GetHeaderAttachmentIDByTitle(int toolTypeId, string title) => GetHeaderAttachmentIDByTitle(toolTypeId, title); + Guid IMetrologyRepository.GetDataAttachmentIDByTitle(int toolTypeId, string title) => GetDataAttachmentIDByTitle(toolTypeId, title); + Guid IMetrologyRepository.GetHeaderAttachmentID(int toolTypeId, long headerId) => GetHeaderAttachmentID(toolTypeId, headerId); + string IMetrologyRepository.GetHeaderInsertDate(int toolTypeId, long headerId) => GetHeaderInsertDate(toolTypeId, headerId); + string IMetrologyRepository.GetAttachmentInsertDateByGUID(string tableName, Guid attachmentId) => GetAttachmentInsertDateByGUID(tableName, attachmentId); + void IMetrologyRepository.SetHeaderDirName(string tableName, long headerId, string dateDir) => SetHeaderDirName(tableName, headerId, dateDir); + Guid IMetrologyRepository.GetDataAttachmentID(int toolTypeId, long headerId, string title) => GetDataAttachmentID(toolTypeId, headerId, title); + string IMetrologyRepository.GetDataInsertDate(int toolTypeId, long headerId, string title) => GetDataInsertDate(toolTypeId, headerId, title); + void IMetrologyRepository.SetDataDirName(string tableName, long headerId, string title, string dateDir) => SetDataDirName(tableName, headerId, title, dateDir); + DataSet IMetrologyRepository.GetOIExportData(int toolTypeId, long headerid) => GetOIExportData(toolTypeId, headerid); + IEnumerable> IMetrologyRepository.GetHeaderFields(int toolTypeId, long headerid) => GetHeaderFields(toolTypeId, headerid); + IEnumerable IMetrologyRepository.GetAwaitingDisposition() => GetAwaitingDisposition(); + int IMetrologyRepository.UpdateReviewDate(int toolTypeId, long headerId, bool clearDate) => UpdateReviewDate(toolTypeId, headerId, clearDate); + } \ No newline at end of file diff --git a/Shared/Models/Stateless/IAppSettingsRepository.cs b/Shared/Models/Stateless/IAppSettingsRepository.cs index d802509..faba174 100644 --- a/Shared/Models/Stateless/IAppSettingsRepository.cs +++ b/Shared/Models/Stateless/IAppSettingsRepository.cs @@ -1,9 +1,9 @@ namespace OI.Metrology.Shared.Models.Stateless; -public interface IAppSettingsRepository +public interface IAppSettingsRepository { - List GetAppSettings(); + T GetAppSettings(); string GetBuildNumberAndGitCommitSeven(); } \ No newline at end of file diff --git a/Tests/UnitTestAppSettingsController.cs b/Tests/UnitTestAppSettingsController.cs index 86a1f5a..a700510 100644 --- a/Tests/UnitTestAppSettingsController.cs +++ b/Tests/UnitTestAppSettingsController.cs @@ -51,9 +51,9 @@ public class UnitTestAppSettingsController { _Logger.Information("Starting Web Application"); IServiceProvider serviceProvider = _WebApplicationFactory.Services.CreateScope().ServiceProvider; - IAppSettingsRepository appSettingsRepository = serviceProvider.GetRequiredService(); - List collection = appSettingsRepository.GetAppSettings(); - Assert.IsTrue(collection is not null); + IAppSettingsRepository appSettingsRepository = serviceProvider.GetRequiredService>(); + Server.Models.Binder.AppSettings appSettings = appSettingsRepository.GetAppSettings(); + Assert.IsTrue(appSettings is not null); _Logger.Information($"{_TestContext?.TestName} completed"); } @@ -78,7 +78,7 @@ public class UnitTestAppSettingsController { _Logger.Information("Starting Web Application"); IServiceProvider serviceProvider = _WebApplicationFactory.Services.CreateScope().ServiceProvider; - IAppSettingsRepository appSettingsRepository = serviceProvider.GetRequiredService(); + IAppSettingsRepository appSettingsRepository = serviceProvider.GetRequiredService>(); string result = appSettingsRepository.GetBuildNumberAndGitCommitSeven(); Assert.IsTrue(result is not null); _Logger.Information($"{_TestContext?.TestName} completed");