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
+73
View File
@@ -0,0 +1,73 @@
using System;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Dapper;
using DataModel;
using Topshelf;
using WorkerService.Helpers;
using WorkerService.Models;
using WorkerService.Models.Reporting;
using WorkerService.Process;
namespace WorkerService
{
class Program
{
static void Main(string[] args)
{
string cs = Config.LotFinderDBCS;
//Load app domain assemblies
var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => !a.IsDynamic).ToList();
var loadedPaths = loadedAssemblies.Select(a => a.Location).ToArray();
var referencedPaths = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll");
var toLoad = referencedPaths.Where(r => !loadedPaths.Contains(r, StringComparer.InvariantCultureIgnoreCase)).ToList();
toLoad.ForEach(path => loadedAssemblies.Add(AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(path))));
//Override defaults
SqlMapper.Settings.CommandTimeout = 1200 * 50;
Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
DataSourceConfig dsConfig = UpdateProcessor.configs.FirstOrDefault(c => c.TableName.Contains("User"));
UpdateProcessor.DoUpdate(dsConfig.TableName);
return;
if (args.Length > 0 && args[0].Equals("REFRESH_ARCHIVE", StringComparison.CurrentCultureIgnoreCase))
{
Parallel.ForEach(UpdateProcessor.configs.Where(c => c.TableName.Contains("Hist")), config =>
{
UpdateProcessor.DoUpdate(config.TableName);
});
return;
}
Host host = HostFactory.New(x =>
{
x.UseNLog();
x.StartAutomatically();
x.EnableServiceRecovery(rc => { rc.RestartService(1); });
x.EnableShutdown();
x.Service<WorkProcessor>(s =>
{
s.ConstructUsing(name => new WorkProcessor());
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc => tc.Stop());
});
x.RunAsLocalSystem();
x.SetDescription("JDE scoping search processor");
x.SetDisplayName("JDE_SearchProcessor");
x.SetServiceName("JDE_SearchProcessor");
});
host.Run();
}
}
}