73 lines
3.1 KiB
C#
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");
|