refactor: relocate options classes to dedicated Options folders

Move configuration options from Core/DataAccess/DataSync/ExcelIO to
dedicated Options folders within each project for better organization.
Update all references and tests accordingly.
This commit is contained in:
Joseph Doherty
2026-01-03 08:55:08 -05:00
parent 3cb73eb09f
commit ec4c8fab87
52 changed files with 4628 additions and 202 deletions
@@ -1,7 +1,6 @@
using JdeScoping.Core.Interfaces;
using JdeScoping.Core.Options;
using JdeScoping.DataAccess;
using JdeScoping.DataAccess.Configuration;
using JdeScoping.DataAccess.Options;
using JdeScoping.DataAccess.FilterHandlers;
using JdeScoping.DataAccess.Interfaces;
using JdeScoping.DataAccess.QueryBuilders;
@@ -1,4 +1,4 @@
namespace JdeScoping.DataAccess.Configuration;
namespace JdeScoping.DataAccess.Options;
/// <summary>
/// Configuration options for the data access layer.
@@ -0,0 +1,27 @@
namespace JdeScoping.DataAccess.Options;
/// <summary>
/// Configuration options for search operations.
/// </summary>
public class SearchOptions
{
/// <summary>
/// Configuration section name in appsettings.json.
/// </summary>
public const string SectionName = "Search";
/// <summary>
/// Maximum number of result rows to return.
/// </summary>
public int MaxResultRows { get; set; } = 100000;
/// <summary>
/// Search query timeout in seconds.
/// </summary>
public int TimeoutSeconds { get; set; } = 300;
/// <summary>
/// Maximum number of concurrent search operations.
/// </summary>
public int MaxConcurrentSearches { get; set; } = 5;
}
@@ -1,4 +1,4 @@
namespace JdeScoping.DataAccess.Configuration;
namespace JdeScoping.DataAccess.Options;
/// <summary>
/// Configuration options for search processing.
@@ -0,0 +1,27 @@
namespace JdeScoping.DataAccess.Options;
/// <summary>
/// Configuration options for search processing background service.
/// </summary>
public class SearchProcessingOptions
{
/// <summary>
/// Configuration section name in appsettings.json.
/// </summary>
public const string SectionName = "SearchProcessing";
/// <summary>
/// Interval in seconds between polling for new search requests.
/// </summary>
public int PollingIntervalSeconds { get; set; } = 5;
/// <summary>
/// Maximum number of concurrent search operations.
/// </summary>
public int MaxConcurrentSearches { get; set; } = 2;
/// <summary>
/// Search operation timeout in minutes.
/// </summary>
public int SearchTimeoutMinutes { get; set; } = 30;
}
@@ -2,7 +2,7 @@ using System.Runtime.CompilerServices;
using Dapper;
using JdeScoping.Core.Models;
using JdeScoping.Core.Models.Quality;
using JdeScoping.DataAccess.Configuration;
using JdeScoping.DataAccess.Options;
using JdeScoping.DataAccess.Interfaces;
using JdeScoping.DataAccess.Queries;
using Microsoft.Extensions.Logging;
@@ -1,6 +1,6 @@
using System.Runtime.CompilerServices;
using Dapper;
using JdeScoping.DataAccess.Configuration;
using JdeScoping.DataAccess.Options;
using JdeScoping.DataAccess.Interfaces;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
@@ -1,6 +1,6 @@
using System.Data;
using JdeScoping.Core.Interfaces;
using JdeScoping.DataAccess.Configuration;
using JdeScoping.DataAccess.Options;
using JdeScoping.DataAccess.Exceptions;
using JdeScoping.DataAccess.Interfaces;
using Microsoft.Data.SqlClient;
@@ -1,6 +1,6 @@
using System.Runtime.CompilerServices;
using Dapper;
using JdeScoping.DataAccess.Configuration;
using JdeScoping.DataAccess.Options;
using JdeScoping.DataAccess.Interfaces;
using JdeScoping.DataAccess.Models;
using JdeScoping.DataAccess.Models.Results;