Audit object was being passed as byref but getting re-instantiated within the method

This commit is contained in:
Mike Phares 2025-04-01 13:38:06 -07:00
parent f110fba4cd
commit b3fb328b98
3 changed files with 13 additions and 12 deletions

View File

@ -58,6 +58,7 @@ public class AuditController : Controller {
try {
bool isAdmin = (bool)Session[GlobalVars.IS_ADMIN];
int userId = (int)Session[GlobalVars.SESSION_USERID];
audit = auditDMO.GetAuditItem(issueID, userId);
AuditEdit auditEdit = auditDMO.GetAuditEdit(issueID, audit, isAdmin, userId);
if (auditEdit.RedirectToAction)
return RedirectToAction("ReadOnlyAudit", new { auditNo = audit.AuditNo });

View File

@ -401,7 +401,6 @@ public class AuditDMO {
result.Is8DQA = "true";
}
audit = GetAuditItem(issueID, userId);
// transform audit users from string to list, delimited by a comma.
if (audit.Auditees == null) {
result.AuditeeNames = new List<string>();

View File

@ -51,7 +51,7 @@ public class AuditDMOTests {
try { throw new Exception(); } catch (Exception) { }
}
private static void AuditDMO(ILogger? logger, AppSettings appSettings) {
private static void AuditDMO(ILogger? logger, AppSettings appSettings, int auditNo, bool isAdmin) {
#pragma warning disable IDE0059
SetGlobalVars(logger, appSettings);
AuditDMO auditDMO = new(appSettings);
@ -61,25 +61,25 @@ public class AuditDMOTests {
AuditedArea[] auditedAreas = auditDMO.GetAuditAreaList().ToArray();
// IEnumerable<int> GetAuditFindingCategoryIdsByFindingId(int auditFindingsID);
// AuditFindings GetAuditFindingsByID(int auditFindingsID);
// IEnumerable<AuditFindings> GetAuditFindingsList(int auditNo);
// Audit GetAuditItem(int auditNo, appSettings.UserId);
// Audit GetAuditItemReadOnly(int auditNo, appSettings.UserId);
AuditFindings[] auditFindings = auditDMO.GetAuditFindingsList(auditNo).ToArray();
Audit auditB = auditDMO.GetAuditItem(auditNo, appSettings.UserId);
Audit auditC = new();
AuditEdit auditEdit = auditDMO.GetAuditEdit(auditNo, auditC, isAdmin, appSettings.UserId);
Audit auditD = auditDMO.GetAuditItemReadOnly(auditNo, appSettings.UserId);
Auditor[] auditors = auditDMO.GetAuditorList().ToArray();
// IEnumerable<AuditReportAttachment> GetAuditReportAttachments(int auditNo);
AuditReportAttachment[] auditReportAttachments = auditDMO.GetAuditReportAttachments(auditNo).ToArray();
// C_8DAuditedStandard[] c_8DAuditedStandards = auditDMO.GetAuditStandardList().ToArray();
AuditType[] auditTypes = auditDMO.GetAuditTypeList().ToArray();
// CAFindings GetCAFindingsItem(int caFindingsID);
// IEnumerable<AuditReportAttachment> GetCAFindingsItemAttachments(int caFindingsID);
// IEnumerable<CAFindings> GetCAFindingsList(int auditNo);
CAFindings[] caFindings = auditDMO.GetCAFindingsList(auditNo).ToArray();
CANoList[] cANoLists = auditDMO.GetCorrectiveActionNoList().ToArray();
// int GetOpenCACountByAuditNo(int auditNo);
int openCACountByAuditNo = auditDMO.GetOpenCACountByAuditNo(auditNo);
CAUserList[] cAUserLists = auditDMO.GetUserList().ToArray();
// Audit InsertAudit(Audit audit);
// void InsertAuditReportAttachment(AuditReportAttachment attach);
// void InsertCAFindings(CAFindings model);
// int IsCAAssignedToAudit(int CANo, int auditNo);
// void ReleaseLockOnDocument(appSettings.UserId, int issueID);
// void UpdateAudit(Audit audit, appSettings.UserId);
// void UpdateCAFindings(CAFindings model);
if (auditDMO is null) { }
#pragma warning restore IDE0059
@ -89,13 +89,14 @@ public class AuditDMOTests {
[Ignore]
#endif
[TestMethod]
public void AuditDMOIsAttachedOnly() {
[DataRow(250, true)]
public void AuditDMOIsAttachedOnly(int auditNo, bool isAdmin) {
_Logger?.LogInformation("Starting Web Application");
IServiceProvider? serviceProvider = _WebApplicationFactory?.Services.CreateScope().ServiceProvider;
AppSettings? appSettings = serviceProvider?.GetRequiredService<AppSettings>();
Assert.IsTrue(appSettings is not null);
if (System.Diagnostics.Debugger.IsAttached)
AuditDMO(_Logger, appSettings);
AuditDMO(_Logger, appSettings, auditNo, isAdmin);
_Logger?.LogInformation("{TestName} completed", _TestContext?.TestName);
NonThrowTryCatch();
}