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