Files
jdescopingtool/OLD/DataModel/Process/LotFinderDB.MisData.cs
T
Joseph Doherty 26ff8d9b4f 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.
2026-01-02 07:43:29 -05:00

68 lines
2.5 KiB
C#
Executable File

using System;
using System.Data.SqlClient;
using Dapper;
namespace DataModel.Process
{
/// <summary>
/// MIS data tracking functions for LotFinderDB interface
/// </summary>
public partial class LotFinderDB
{
/// <summary>
/// Post-processing script to set obsoletion dates
/// </summary>
private const string SQL_POSTPROCESS_MISDATA = @"
SET ANSI_WARNINGS OFF;
WITH cte AS (
SELECT md.MisNumber, md.RevID, md.Status, MIN(md.ReleaseDate) Released
FROM dbo.MisData AS md
GROUP BY md.MisNumber, md.RevID, md.Status
)
UPDATE dbo.MisData
SET ObsoleteDate = bl.Released
FROM cte bl
WHERE MisData.MisNumber = bl.MisNumber AND
MisData.RevID = bl.RevID AND
MisData.Status = 'Current' AND
bl.Status = 'BackLevel';
WITH cte AS (
SELECT md.MisNumber, md.RevID, md.Status, MIN(md.ReleaseDate) Released
FROM dbo.MisData AS md
GROUP BY md.MisNumber, md.RevID, md.Status
)
UPDATE dbo.MisData
SET ObsoleteDate = (SELECT TOP 1 nl.Released
FROM cte nl
WHERE MisData.MisNumber = nl.MisNumber AND
MisData.RevID < nl.RevID AND
MisData.Status = nl.Status
ORDER BY nl.RevID)
WHERE ObsoleteDate IS NULL;
ALTER INDEX [PK_MisData] ON [dbo].[MisData] REBUILD;";
/// <summary>
/// Performs post processing on imported Mis data
/// </summary>
public static void PostProcessMisData()
{
try
{
using (SqlConnection connection = GetConnection())
{
connection.Execute(SQL_POSTPROCESS_MISDATA);
}
}
catch (Exception error)
{
//Log and forward exception
logger.Error("PostProcessMisData: failed to post process MIS data: {0}.", error.Message);
throw new Exception($"Failed to post process MIS data from LotFinderDB.", error);
}
}
}
}