Files
2026-02-06 15:26:16 -05:00

73 lines
3.1 KiB
C#

#r "nuget: Dapper, 2.1.35"
#r "nuget: Microsoft.Data.SqlClient, 5.2.2"
using System;
using System.Threading.Tasks;
using Dapper;
using Microsoft.Data.SqlClient;
var connectionString = "Server=localhost,1434;Database=ScopingTool;User Id=sa;Password=ScopingTool_SA_2024Dev;TrustServerCertificate=true";
var testMisNumber = "TEST_DAPPER_001";
using var connection = new SqlConnection(connectionString);
await connection.OpenAsync();
// Cleanup
await connection.ExecuteAsync("DELETE FROM MisData_Curr WHERE MisNumber = @MisNumber", new { MisNumber = testMisNumber });
await connection.ExecuteAsync("DELETE FROM MisData_Hist WHERE MisNumber = @MisNumber", new { MisNumber = testMisNumber });
await connection.ExecuteAsync("DELETE FROM mis_temp WHERE MIS_IIS_Number = @MisNumber OR MIS_IIS_Number = @MisNumberWithPrefix",
new { MisNumber = testMisNumber, MisNumberWithPrefix = $"IIS_{testMisNumber}" });
Console.WriteLine("Cleanup done");
// Insert test data
await connection.ExecuteAsync(
@"INSERT INTO mis_temp (MIS_IIS_Number, PartNumber, Site, Version, CharacterNumber,
TestDescription, SamplingType, SamplingValue, ToolsGauges, WorkInstructions, Release_Date)
VALUES (@MisNumber, '12345', 'SITE1', 'A', '1',
'Test Description', 'Random', '5', 'Gauge1', 'Instruction1', @ReleaseDate)",
new { MisNumber = testMisNumber, ReleaseDate = DateTime.Now });
Console.WriteLine("Inserted staging data");
// Check staging data
var stagingCount = await connection.QuerySingleAsync<int>(
"SELECT COUNT(*) FROM mis_temp WHERE MIS_IIS_Number = @MisNumber",
new { MisNumber = testMisNumber });
Console.WriteLine($"Staging count before proc: {stagingCount}");
// Run procedure
Console.WriteLine("Running stored procedure...");
await connection.ExecuteAsync("EXEC dbo.usp_ProcessMisStagingData @SaveChanges = 1");
Console.WriteLine("Stored procedure completed");
// Check result
var record = await connection.QuerySingleOrDefaultAsync<dynamic>(
@"SELECT MisNumber, ItemNumber, BranchCode, RevID, CharNumber, Status, ObsoleteDate
FROM MisData_Curr
WHERE MisNumber = @MisNumber",
new { MisNumber = testMisNumber });
if (record == null)
{
Console.WriteLine("FAIL: Record is null!");
// Additional debugging - check if it got deleted during the proc
var stagingCountAfter = await connection.QuerySingleAsync<int>(
"SELECT COUNT(*) FROM mis_temp WHERE MIS_IIS_Number = @MisNumber",
new { MisNumber = testMisNumber });
Console.WriteLine($"Staging count after proc: {stagingCountAfter}");
}
else
{
Console.WriteLine($"SUCCESS: Found record - Status={record.Status}");
}
// Cleanup
await connection.ExecuteAsync("DELETE FROM MisData_Curr WHERE MisNumber = @MisNumber", new { MisNumber = testMisNumber });
await connection.ExecuteAsync("DELETE FROM MisData_Hist WHERE MisNumber = @MisNumber", new { MisNumber = testMisNumber });
await connection.ExecuteAsync("DELETE FROM mis_temp WHERE MIS_IIS_Number = @MisNumber OR MIS_IIS_Number = @MisNumberWithPrefix",
new { MisNumber = testMisNumber, MisNumberWithPrefix = $"IIS_{testMisNumber}" });
Console.WriteLine("Test complete");