26ff8d9b4f
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
74 lines
2.6 KiB
C#
Executable File
74 lines
2.6 KiB
C#
Executable File
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();
|
|
}
|
|
}
|
|
}
|