Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
namespace JdeScoping.DataAccess.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Exception thrown when a database connection fails.
|
||||
/// </summary>
|
||||
public class ConnectionException : DataAccessException
|
||||
{
|
||||
/// <summary>
|
||||
/// The data source identifier (e.g., "JDE", "CMS", "LotFinderDB").
|
||||
/// </summary>
|
||||
public string? DataSource { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ConnectionException"/> class.
|
||||
/// </summary>
|
||||
/// <param name="message">The error message.</param>
|
||||
/// <param name="dataSource">The data source that failed to connect.</param>
|
||||
/// <param name="inner">The inner exception.</param>
|
||||
public ConnectionException(string message, string? dataSource, Exception? inner = null)
|
||||
: base(message, operation: "CreateConnection", repository: dataSource, inner: inner)
|
||||
{
|
||||
DataSource = dataSource;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
namespace JdeScoping.DataAccess.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Base exception for all data access layer errors.
|
||||
/// </summary>
|
||||
public class DataAccessException : Exception
|
||||
{
|
||||
/// <summary>
|
||||
/// The operation that was being performed when the exception occurred.
|
||||
/// </summary>
|
||||
public string? Operation { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The repository where the exception occurred.
|
||||
/// </summary>
|
||||
public string? Repository { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DataAccessException"/> class.
|
||||
/// </summary>
|
||||
/// <param name="message">The error message.</param>
|
||||
/// <param name="operation">The operation that was being performed.</param>
|
||||
/// <param name="repository">The repository where the error occurred.</param>
|
||||
/// <param name="inner">The inner exception.</param>
|
||||
public DataAccessException(
|
||||
string message,
|
||||
string? operation = null,
|
||||
string? repository = null,
|
||||
Exception? inner = null)
|
||||
: base(message, inner)
|
||||
{
|
||||
Operation = operation;
|
||||
Repository = repository;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
namespace JdeScoping.DataAccess.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Exception thrown when a database operation times out.
|
||||
/// </summary>
|
||||
public class DataAccessTimeoutException : DataAccessException
|
||||
{
|
||||
/// <summary>
|
||||
/// The configured timeout value in seconds.
|
||||
/// </summary>
|
||||
public int TimeoutSeconds { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DataAccessTimeoutException"/> class.
|
||||
/// </summary>
|
||||
/// <param name="message">The error message.</param>
|
||||
/// <param name="timeoutSeconds">The configured timeout value in seconds.</param>
|
||||
/// <param name="operation">The operation that was being performed.</param>
|
||||
/// <param name="repository">The repository where the error occurred.</param>
|
||||
/// <param name="inner">The inner exception.</param>
|
||||
public DataAccessTimeoutException(
|
||||
string message,
|
||||
int timeoutSeconds,
|
||||
string? operation = null,
|
||||
string? repository = null,
|
||||
Exception? inner = null)
|
||||
: base(message, operation, repository, inner)
|
||||
{
|
||||
TimeoutSeconds = timeoutSeconds;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
namespace JdeScoping.DataAccess.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Exception thrown when a database query fails.
|
||||
/// </summary>
|
||||
public class QueryException : DataAccessException
|
||||
{
|
||||
/// <summary>
|
||||
/// The name of the query that failed.
|
||||
/// </summary>
|
||||
public string? QueryName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="QueryException"/> class.
|
||||
/// </summary>
|
||||
/// <param name="message">The error message.</param>
|
||||
/// <param name="queryName">The name of the query that failed.</param>
|
||||
/// <param name="operation">The operation that was being performed.</param>
|
||||
/// <param name="repository">The repository where the error occurred.</param>
|
||||
/// <param name="inner">The inner exception.</param>
|
||||
public QueryException(
|
||||
string message,
|
||||
string? queryName,
|
||||
string? operation = null,
|
||||
string? repository = null,
|
||||
Exception? inner = null)
|
||||
: base(message, operation, repository, inner)
|
||||
{
|
||||
QueryName = queryName;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user