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:
Joseph Doherty
2026-01-02 07:43:29 -05:00
commit 26ff8d9b4f
1761 changed files with 596509 additions and 0 deletions
@@ -0,0 +1,58 @@
namespace JdeScoping.DataAccess.Attributes;
/// <summary>
/// Excel output column specification attribute.
/// </summary>
[AttributeUsage(AttributeTargets.Property)]
public class OutputColumnAttribute : Attribute
{
/// <summary>
/// Standard format.
/// </summary>
public const string StdFormat = "@";
/// <summary>
/// Standard date format.
/// </summary>
public const string DateFormat = "[$-409]MM/dd/yyyy;@";
/// <summary>
/// Standard timestamp format.
/// </summary>
public const string TimestampFormat = "[$-409]m/d/yy h:mm AM/PM;@";
/// <summary>
/// Wrapped text column default width.
/// </summary>
public const double WrappedColumnWidth = 65;
/// <summary>
/// Order to display column.
/// </summary>
public int Order { get; set; }
/// <summary>
/// Override text to display for column header.
/// </summary>
public string HeaderText { get; set; } = string.Empty;
/// <summary>
/// Column format (Excel formatting string).
/// </summary>
public string Format { get; set; } = StdFormat;
/// <summary>
/// Whether or not width should be set automatically.
/// </summary>
public bool AutoWidth { get; set; } = true;
/// <summary>
/// Manually set width (only used if AutoWidth = FALSE).
/// </summary>
public double Width { get; set; }
/// <summary>
/// Whether or not text should be wrapped.
/// </summary>
public bool WrapText { get; set; }
}
@@ -0,0 +1,23 @@
namespace JdeScoping.DataAccess.Attributes;
/// <summary>
/// Excel output table specification attribute.
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
public class OutputTableAttribute : Attribute
{
/// <summary>
/// Output tab name in Excel.
/// </summary>
public string TabName { get; set; } = string.Empty;
/// <summary>
/// Table name for the Excel table.
/// </summary>
public string TableName { get; set; } = string.Empty;
/// <summary>
/// Whether or not merged header should be shown.
/// </summary>
public bool ShowHeader { get; set; }
}