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
+33
View File
@@ -0,0 +1,33 @@
using System.Collections.Generic;
namespace WebInterface.Models
{
/// <summary>
/// Model for file upload result
/// </summary>
public class FileUploadResult<T>
{
/// <summary>
/// Whether or not upload was successful
/// </summary>
public bool WasSuccessful { get; set; }
/// <summary>
/// Error message generated
/// </summary>
public string ErrorMessage { get; set; }
/// <summary>
/// Data extracted from uploaded file
/// </summary>
public List<T> Data { get; set; }
/// <summary>
/// Constructor
/// </summary>
public FileUploadResult()
{
Data = new List<T>();
}
}
}
+92
View File
@@ -0,0 +1,92 @@
using System.Collections.Generic;
namespace WebInterface.Models
{
/// <summary>
///
/// </summary>
public class FilterControlModel
{
public string CollectionName { get; set; }
public string Prompt { get; set; }
public string CodeLabel { get; set; }
public string DescriptionLabel { get; set; }
public string LookupURL { get; set; }
public string LookupParameterName { get; set; }
public int Order { get; set; }
public bool GenerateModel { get; set; }
public bool GenerateDisplay { get; set; }
public bool IsSingleColumn { get; set; }
public int? CodeColumnWidth { get; set; }
public int? DescriptionColumnWidth { get; set; }
public string ClearMessage { get; set; }
public FilterControlModel()
{
Models.Add(this);
}
public static List<FilterControlModel> Models = new List<FilterControlModel>();
public static FilterControlModel PartNumbers = new FilterControlModel()
{
CollectionName = "PartNumbers",
Prompt = "Filter by part number?",
CodeLabel = "Part Number",
DescriptionLabel = "Description",
LookupURL = "FindPartNumber",
LookupParameterName = "partNumber",
Order = 1,
GenerateModel = true,
GenerateDisplay = true,
ClearMessage = "Are you sure you want to clear all part numbers?"
};
public static FilterControlModel WorkCenters = new FilterControlModel()
{
CollectionName = "WorkCenters",
Prompt = "Filter by work center?",
CodeLabel = "Work Center",
DescriptionLabel = "Description",
LookupURL = "FindWorkCenter",
LookupParameterName = "workCenter",
Order = 1,
GenerateModel = true,
GenerateDisplay = true,
ClearMessage = "Are you sure you want to clear all work centers?"
};
public static FilterControlModel ProfitCenters = new FilterControlModel()
{
CollectionName = "ProfitCenters",
Prompt = "Filter by profit center?",
CodeLabel = "Profit Center",
DescriptionLabel = "Description",
LookupURL = "FindProfitCenter",
LookupParameterName = "profitCenter",
Order = 1,
GenerateModel = true,
GenerateDisplay = true,
ClearMessage = "Are you sure you want to clear all profit centers?"
};
public static FilterControlModel Operators = new FilterControlModel()
{
CollectionName = "OperatorIDs",
Prompt = "Filter by operator?",
CodeLabel = "Name",
DescriptionLabel = "User Name",
LookupURL = "FindOperator",
LookupParameterName = "operatorName",
Order = 1,
GenerateModel = true,
GenerateDisplay = true,
CodeColumnWidth = 350,
DescriptionColumnWidth = 150,
ClearMessage = "Are you sure you want to clear all operators?"
};
}
}
+23
View File
@@ -0,0 +1,23 @@
namespace WebInterface.Models
{
/// <summary>
/// User's logon request details
/// </summary>
public class LogonRequest
{
/// <summary>
/// URL to redirect to after successful logon
/// </summary>
public string RedirectURL { get; set; }
/// <summary>
/// User's username
/// </summary>
public string UserName { get; set; }
/// <summary>
/// User's password
/// </summary>
public string Password { get; set; }
}
}
+27
View File
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using DataModel.Models;
namespace WebInterface.Models
{
/// <summary>
/// Data refresh status model
/// </summary>
public class RefreshStatusModel
{
/// <summary>
/// Minimum timestamp get results for
/// </summary>
public DateTime MinDT { get; set; }
/// <summary>
/// Maximum timestamp to get results for
/// </summary>
public DateTime MaxDT { get; set; }
/// <summary>
/// Cache update results for given timespan
/// </summary>
public List<DataUpdate> Results { get; set; }
}
}