This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,244 @@
using DbAPI.Connections;
using DbAPI.Errors;
using DbAPI.Logging;
using DbAPI.CustomerDetails;
using DTS.Common.Classes.Channels;
using DTS.Common.Interface.Database;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using DTS.Common.Interface.TestMetaData;
using DTS.Common.Classes.CustomerDetails;
namespace DbAPI.CustomerDetails
{
/// <summary>
/// Handles Customer Details functions
/// </summary>
internal class CustomerDetails : ICustomerDetails
{
public ulong CustomerDetailsInsert(IUserDbRecord user,
IConnectionDetails connection,
CustomerDetailsDbRecord customerDetailsDbRecord,
out int newId,
out string errorString)
{
errorString = string.Empty;
newId = -1;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_CustomerDetailsInsert");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
#region params
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.Name });
cmd.Parameters.Add(new SqlParameter("@CustomerName", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.CustomerName });
cmd.Parameters.Add(new SqlParameter("@CustomerTestRefNumber", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.CustomerTestRefNumber });
cmd.Parameters.Add(new SqlParameter("@ProjectRefNumber", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.ProjectRefNumber });
cmd.Parameters.Add(new SqlParameter("@CustomerOrderNumber", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.CustomerOrderNumber });
cmd.Parameters.Add(new SqlParameter("@CustomerCostUnit", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.CustomerCostUnit });
cmd.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = customerDetailsDbRecord.LocalOnly });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = customerDetailsDbRecord.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 50) { Value = customerDetailsDbRecord.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 });
var newIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(newIdParam);
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
#endregion params
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
}
else
{
newId = (int)newIdParam.Value;
}
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
public ulong CustomerDetailsUpdate(IUserDbRecord user,
IConnectionDetails connection,
CustomerDetailsDbRecord customerDetailsDbRecord,
out string errorString)
{
errorString = string.Empty;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_CustomerDetailsUpdate");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.Name });
cmd.Parameters.Add(new SqlParameter("@CustomerName", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.CustomerName });
cmd.Parameters.Add(new SqlParameter("@CustomerTestRefNumber", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.CustomerTestRefNumber });
cmd.Parameters.Add(new SqlParameter("@ProjectRefNumber", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.ProjectRefNumber });
cmd.Parameters.Add(new SqlParameter("@CustomerOrderNumber", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.CustomerOrderNumber });
cmd.Parameters.Add(new SqlParameter("@CustomerCostUnit", SqlDbType.NVarChar, 255) { Value = customerDetailsDbRecord.CustomerCostUnit });
cmd.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = customerDetailsDbRecord.LocalOnly });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = customerDetailsDbRecord.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 50) { Value = customerDetailsDbRecord.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 });
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
}
}
catch (Exception ex)
{
//Concatenate any error string returned from the stored procedure call
errorString = $"{ex.Message}; {errorString}";
return errorNumberULong;
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
public ulong CustomerDetailsGet(IUserDbRecord user,
IConnectionDetails connection,
string name,
out ICustomerDetailsDbRecord[] customerDetailsDbRecords)
{
customerDetailsDbRecords = null;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_CustomerDetailsGet");
if (ret != ErrorCodes.ERROR_SUCCESS) { return ret; }
var list = new List<ICustomerDetailsDbRecord>();
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar) { Value = name });
var reader = cmd.ExecuteReader();
while (reader.Read())
{
try
{
var cd = new CustomerDetailsDbRecord(reader);
if (!cd.IsInvalidBlank())
{
list.Add(cd);
}
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.DataRecorders, ex.Message);
return ErrorCodes.ERROR_UNKNOWN;
}
}
return ErrorCodes.ERROR_SUCCESS;
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.DataRecorders, ex.Message);
return ErrorCodes.ERROR_UNKNOWN;
}
finally
{
cmd.Connection.Dispose();
customerDetailsDbRecords = list.ToArray();
}
}
public ulong CustomerDetailsDelete(IUserDbRecord user,
IConnectionDetails connection,
string name,
out string errorString)
{
errorString = string.Empty;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_CustomerDetailsDelete");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
#region params
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = string.IsNullOrEmpty(name) ? null : name });
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
#endregion params
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
errorString = (string)errorMessageParam.Value;
}
}
finally
{
cmd.Connection.Dispose();
}
}
catch (Exception ex)
{
//Concatenate any error string returned from the stored procedure call
errorString = $"{ex.Message}; {errorString}";
return errorNumberULong;
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
}
}

View File

@@ -0,0 +1,68 @@
using DbAPI.Connections;
using DTS.Common.Interface.Database;
using System;
using DTS.Common.Classes.CustomerDetails;
using DTS.Common.Interface.TestMetaData;
namespace DbAPI.CustomerDetails
{
/// <summary>
/// CustomerDetails related functions (GetCustomerDetails, )
/// </summary>
public interface ICustomerDetails
{
/// <summary>
/// Inserts a new record in the CustomerDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="customerDetailsDbRecord"></param>
/// <param name="newId">The Id of the new record in the CustomerDetails table</param>
/// <param name="errorString">Error string returned, possibly from sp_CustomerDetailsUpdate</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong CustomerDetailsInsert(IUserDbRecord user,
IConnectionDetails connection,
CustomerDetailsDbRecord customerDetailsDbRecord,
out int newId,
out string errorString);
/// <summary>
/// Updates an existing record in the CustomerDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name = "customerDetailsDbRecord"></param>
/// <param name="errorString">Error string returned, possibly from sp_CustomerDetailsUpdate</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong CustomerDetailsUpdate(IUserDbRecord user,
IConnectionDetails connection,
CustomerDetailsDbRecord customerDetailsDbRecord,
out string errorString);
/// <summary>
/// retrieves all customer details matching search criteria
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="name">Name in the CustomerDetails table</param>
/// <param name="customerDetailsDbRecords">null, or records found</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong CustomerDetailsGet(IUserDbRecord user,
IConnectionDetails connection,
string name,
out ICustomerDetailsDbRecord[] customerDetailsDbRecords);
/// <summary>
/// Deletes an entry in the CustomerDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="name">Name in the CustomerDetails table</param>
/// <param name="errorString">Error string returned, possibly from sp_CustomerDetailsDelete</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong CustomerDetailsDelete(IUserDbRecord user,
IConnectionDetails connection,
string name,
out string errorString);
}
}

View File

@@ -0,0 +1,81 @@
using DbAPI.Connections;
using DTS.Common.Interface.Database;
using System;
using DTS.Common.Classes.LabratoryDetails;
using DTS.Common.Interface.TestMetaData;
namespace DbAPI.LabratoryDetails
{
/// <summary>
/// LabratoryDetails related functions (GetLabratoryDetails, )
/// </summary>
public interface ILabratoryDetails
{
/// <summary>
/// Inserts a new record in the LabratoryDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="labratoryDetailsDbRecord"></param>
/// <param name="newId">The Id of the new record in the LabratoryDetails table</param>
/// <param name="errorString">Error string returned, possibly from sp_LabratoryDetailsUpdate</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong LabratoryDetailsInsert(IUserDbRecord user,
IConnectionDetails connection,
LabratoryDetailsDbRecord labratoryDetailsDbRecord,
out int newId,
out string errorString);
/// <summary>
/// Updates an existing record in the LabratoryDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name = "labratoryDetailsDbRecord"></param>
/// <param name="errorString">Error string returned, possibly from sp_LabratoryDetailsUpdate</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong LabratoryDetailsUpdate(IUserDbRecord user,
IConnectionDetails connection,
LabratoryDetailsDbRecord labratoryDetailsDbRecord,
out string errorString);
/// <summary>
/// Updates an existing record or Inserts a new record in the LabratoryDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name = "labratoryDetailsDbRecord"></param>
/// <param name="errorString">Error string returned, possibly from sp_LabratoryDetailsUpdate</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong LabratoryDetailsUpdateInsert(IUserDbRecord user,
IConnectionDetails connection,
LabratoryDetailsDbRecord labratoryDetailsDbRecord,
out string errorString);
/// <summary>
/// retrieves all laboratory details matching search criteria
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="name">Name in the LabratoryDetails table</param>
/// <param name="labratoryDetailsDbRecords">null, or records found</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong LabratoryDetailsGet(IUserDbRecord user,
IConnectionDetails connection,
string name,
out ILabratoryDetailsDbRecord[] labratoryDetailsDbRecords);
/// <summary>
/// Deletes an entry in the LabratoryDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="name">Name in the LabratoryDetails table</param>
/// <param name="errorString">Error string returned, possibly from sp_LabratoryDetailsDelete</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong LabratoryDetailsDelete(IUserDbRecord user,
IConnectionDetails connection,
string name,
out string errorString);
}
}

View File

@@ -0,0 +1,81 @@
using DbAPI.Connections;
using DTS.Common.Interface.Database;
using System;
using DTS.Common.Classes.TestEngineerDetails;
using DTS.Common.Interface.TestMetaData;
namespace DbAPI.TestEngineerDetails
{
/// <summary>
/// TestEngineerDetails related functions (GetTestEngineerDetails, )
/// </summary>
public interface ITestEngineerDetails
{
/// <summary>
/// Inserts a new record in the TestEngineerDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="testEngineerDetailsDbRecord"></param>
/// <param name="newId">The Id of the new record in the TestEngineerDetails table</param>
/// <param name="errorString">Error string returned, possibly from sp_TestEngineerDetailsUpdate</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong TestEngineerDetailsInsert(IUserDbRecord user,
IConnectionDetails connection,
TestEngineerDetailsDbRecord testEngineerDetailsDbRecord,
out int newId,
out string errorString);
/// <summary>
/// Updates an existing record in the TestEngineerDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name = "testEngineerDetailsDbRecord"></param>
/// <param name="errorString">Error string returned, possibly from sp_TestEngineerDetailsUpdate</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong TestEngineerDetailsUpdate(IUserDbRecord user,
IConnectionDetails connection,
TestEngineerDetailsDbRecord testEngineerDetailsDbRecord,
out string errorString);
/// <summary>
/// Updates an existing record or Inserts a new record in the TestEngineerDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name = "testEngineerDetailsDbRecord"></param>
/// <param name="errorString">Error string returned, possibly from sp_TestEngineerDetailsUpdate</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong TestEngineerDetailsUpdateInsert(IUserDbRecord user,
IConnectionDetails connection,
TestEngineerDetailsDbRecord testEngineerDetailsDbRecord,
out string errorString);
/// <summary>
/// retrieves all test engineers matching search criteria
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="name">Name in the TestEngineerDetails table</param>
/// <param name="testEngineerDetailsDbRecords">null, or records found</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong TestEngineerDetailsGet(IUserDbRecord user,
IConnectionDetails connection,
string name,
out ITestEngineerDetailsDbRecord[] testEngineerDetailsDbRecords);
/// <summary>
/// Deletes an entry in the TestEngineerDetails table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="name">Name in the TestEngineerDetails table</param>
/// <param name="errorString">Error string returned, possibly from sp_TestEngineerDetailsDelete</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong TestEngineerDetailsDelete(IUserDbRecord user,
IConnectionDetails connection,
string name,
out string errorString);
}
}

View File

@@ -0,0 +1,316 @@
using DbAPI.Connections;
using DbAPI.Errors;
using DbAPI.Logging;
using DbAPI.LabratoryDetails;
using DTS.Common.Interface.Database;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using DTS.Common.Interface.TestMetaData;
using DTS.Common.Classes.LabratoryDetails;
namespace DbAPI.LabratoryDetails
{
/// <summary>
/// Handles Labratory Details functions
/// </summary>
internal class LabratoryDetails : ILabratoryDetails
{
public ulong LabratoryDetailsInsert(IUserDbRecord user,
IConnectionDetails connection,
LabratoryDetailsDbRecord labratoryDetailsDbRecord,
out int newId,
out string errorString)
{
errorString = string.Empty;
newId = -1;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_LabratoryDetailsInsert");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
#region params
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.Name });
cmd.Parameters.Add(new SqlParameter("@LabratoryName", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryName });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactName", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactName });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactPhone", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactPhone });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactFax", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactFax });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactEmail", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactEmail });
cmd.Parameters.Add(new SqlParameter("@LabratoryTestRefNumber", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryTestRefNumber });
cmd.Parameters.Add(new SqlParameter("@LabratoryProjectRefNumber", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryProjectRefNumber });
cmd.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = labratoryDetailsDbRecord.LocalOnly });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = labratoryDetailsDbRecord.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 50) { Value = labratoryDetailsDbRecord.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 });
var newIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(newIdParam);
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
#endregion params
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
}
else
{
newId = (int)newIdParam.Value;
}
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
public ulong LabratoryDetailsUpdate(IUserDbRecord user,
IConnectionDetails connection,
LabratoryDetailsDbRecord labratoryDetailsDbRecord,
out string errorString)
{
errorString = string.Empty;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_LabratoryDetailsUpdate");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.Name });
cmd.Parameters.Add(new SqlParameter("@LabratoryName", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryName });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactName", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactName });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactPhone", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactPhone });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactFax", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactFax });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactEmail", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactEmail });
cmd.Parameters.Add(new SqlParameter("@LabratoryTestRefNumber", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryTestRefNumber });
cmd.Parameters.Add(new SqlParameter("@LabratoryProjectRefNumber", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryProjectRefNumber });
cmd.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = labratoryDetailsDbRecord.LocalOnly });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = labratoryDetailsDbRecord.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 50) { Value = labratoryDetailsDbRecord.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 });
var newIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(newIdParam);
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
}
}
catch (Exception ex)
{
//Concatenate any error string returned from the stored procedure call
errorString = $"{ex.Message}; {errorString}";
return errorNumberULong;
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
public ulong LabratoryDetailsUpdateInsert(IUserDbRecord user,
IConnectionDetails connection,
LabratoryDetailsDbRecord labratoryDetailsDbRecord,
out string errorString)
{
errorString = string.Empty;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_LabratoryDetailsUpdateInsert");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.Name });
cmd.Parameters.Add(new SqlParameter("@LabratoryName", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryName });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactName", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactName });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactPhone", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactPhone });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactFax", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactFax });
cmd.Parameters.Add(new SqlParameter("@LabratoryContactEmail", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryContactEmail });
cmd.Parameters.Add(new SqlParameter("@LabratoryTestRefNumber", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryTestRefNumber });
cmd.Parameters.Add(new SqlParameter("@LabratoryProjectRefNumber", SqlDbType.NVarChar, 255) { Value = labratoryDetailsDbRecord.LabratoryProjectRefNumber });
cmd.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = labratoryDetailsDbRecord.LocalOnly });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = labratoryDetailsDbRecord.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 50) { Value = labratoryDetailsDbRecord.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 });
var newIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(newIdParam);
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
}
}
catch (Exception ex)
{
//Concatenate any error string returned from the stored procedure call
errorString = $"{ex.Message}; {errorString}";
return errorNumberULong;
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
public ulong LabratoryDetailsGet(IUserDbRecord user,
IConnectionDetails connection,
string name,
out ILabratoryDetailsDbRecord[] labratoryDetailsDbRecords)
{
labratoryDetailsDbRecords = null;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_LabratoryDetailsGet");
if (ret != ErrorCodes.ERROR_SUCCESS) { return ret; }
var list = new List<ILabratoryDetailsDbRecord>();
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar) { Value = name });
var reader = cmd.ExecuteReader();
while (reader.Read())
{
try
{
var cd = new LabratoryDetailsDbRecord(reader);
if (!cd.IsInvalidBlank())
{
list.Add(cd);
}
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.DataRecorders, ex.Message);
return ErrorCodes.ERROR_UNKNOWN;
}
}
return ErrorCodes.ERROR_SUCCESS;
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.DataRecorders, ex.Message);
return ErrorCodes.ERROR_UNKNOWN;
}
finally
{
cmd.Connection.Dispose();
labratoryDetailsDbRecords = list.ToArray();
}
}
public ulong LabratoryDetailsDelete(IUserDbRecord user,
IConnectionDetails connection,
string name,
out string errorString)
{
errorString = string.Empty;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_LabratoryDetailsDelete");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
#region params
if (string.IsNullOrEmpty(name))
{
cmd.Parameters.Add(new SqlParameter("@LabratoryName", SqlDbType.NVarChar, 255) { Value = DBNull.Value });
}
else
{
cmd.Parameters.Add(new SqlParameter("@LabratoryName", SqlDbType.NVarChar, 255) { Value = name });
}
//cmd.Parameters.Add(new SqlParameter("@LabratoryName", SqlDbType.NVarChar, 255) { Value = string.IsNullOrEmpty(name) ? DBNull.Value : name });
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
#endregion params
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
errorString = (string)errorMessageParam.Value;
}
}
finally
{
cmd.Connection.Dispose();
}
}
catch (Exception ex)
{
//Concatenate any error string returned from the stored procedure call
errorString = $"{ex.Message}; {errorString}";
return errorNumberULong;
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
}
}

View File

@@ -0,0 +1,305 @@
using DbAPI.Connections;
using DbAPI.Errors;
using DbAPI.Logging;
using DbAPI.LabratoryDetails;
using DTS.Common.Interface.Database;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using DTS.Common.Interface.TestMetaData;
using DTS.Common.Classes.TestEngineerDetails;
namespace DbAPI.TestEngineerDetails
{
/// <summary>
/// Handles Test Engineer functions
/// </summary>
internal class TestEngineerDetails : ITestEngineerDetails
{
public ulong TestEngineerDetailsInsert(IUserDbRecord user,
IConnectionDetails connection,
TestEngineerDetailsDbRecord testEngineerDetailsDbRecord,
out int newId,
out string errorString)
{
errorString = string.Empty;
newId = -1;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_TestEngineerDetailsInsert");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
#region params
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.Name });
cmd.Parameters.Add(new SqlParameter("@TestEngineerName", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerName });
cmd.Parameters.Add(new SqlParameter("@TestEngineerPhone", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerPhone });
cmd.Parameters.Add(new SqlParameter("@TestEngineerFax", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerFax });
cmd.Parameters.Add(new SqlParameter("@TestEngineerEmail", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerEmail });
cmd.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = testEngineerDetailsDbRecord.LocalOnly });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = testEngineerDetailsDbRecord.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 50) { Value = testEngineerDetailsDbRecord.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 });
var newIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(newIdParam);
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
#endregion params
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
}
else
{
newId = (int)newIdParam.Value;
}
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
public ulong TestEngineerDetailsUpdate(IUserDbRecord user,
IConnectionDetails connection,
TestEngineerDetailsDbRecord testEngineerDetailsDbRecord,
out string errorString)
{
errorString = string.Empty;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_TestEngineerDetailsUpdate");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.Name });
cmd.Parameters.Add(new SqlParameter("@TestEngineerName", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerName });
cmd.Parameters.Add(new SqlParameter("@TestEngineerPhone", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerPhone });
cmd.Parameters.Add(new SqlParameter("@TestEngineerFax", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerFax });
cmd.Parameters.Add(new SqlParameter("@TestEngineerEmail", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerEmail });
//cmd.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = testEngineerDetailsDbRecord.LocalOnly });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = testEngineerDetailsDbRecord.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 50) { Value = testEngineerDetailsDbRecord.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 });
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
}
}
catch (Exception ex)
{
//Concatenate any error string returned from the stored procedure call
errorString = $"{ex.Message}; {errorString}";
return errorNumberULong;
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
public ulong TestEngineerDetailsUpdateInsert(IUserDbRecord user,
IConnectionDetails connection,
TestEngineerDetailsDbRecord testEngineerDetailsDbRecord,
out string errorString)
{
errorString = string.Empty;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_TestEngineerDetailsUpdateInsert");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.Name });
cmd.Parameters.Add(new SqlParameter("@TestEngineerName", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerName });
cmd.Parameters.Add(new SqlParameter("@TestEngineerPhone", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerPhone });
cmd.Parameters.Add(new SqlParameter("@TestEngineerFax", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerFax });
cmd.Parameters.Add(new SqlParameter("@TestEngineerEmail", SqlDbType.NVarChar, 255) { Value = testEngineerDetailsDbRecord.TestEngineerEmail });
cmd.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = testEngineerDetailsDbRecord.LocalOnly });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = testEngineerDetailsDbRecord.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 50) { Value = testEngineerDetailsDbRecord.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 });
var newIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(newIdParam);
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
}
}
catch (Exception ex)
{
//Concatenate any error string returned from the stored procedure call
errorString = $"{ex.Message}; {errorString}";
return errorNumberULong;
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
public ulong TestEngineerDetailsGet(IUserDbRecord user,
IConnectionDetails connection,
string name,
out ITestEngineerDetailsDbRecord[] testEngineerDetailsDbRecords)
{
testEngineerDetailsDbRecords = null;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_TestEngineerDetailsGet");
if (ret != ErrorCodes.ERROR_SUCCESS) { return ret; }
var list = new List<ITestEngineerDetailsDbRecord>();
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar) { Value = name });
var reader = cmd.ExecuteReader();
while (reader.Read())
{
try
{
var cd = new TestEngineerDetailsDbRecord(reader);
if (!cd.IsInvalidBlank())
{
list.Add(cd);
}
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.DataRecorders, ex.Message);
return ErrorCodes.ERROR_UNKNOWN;
}
}
return ErrorCodes.ERROR_SUCCESS;
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.DataRecorders, ex.Message);
return ErrorCodes.ERROR_UNKNOWN;
}
finally
{
cmd.Connection.Dispose();
testEngineerDetailsDbRecords = list.ToArray();
}
}
public ulong TestEngineerDetailsDelete(IUserDbRecord user,
IConnectionDetails connection,
string name,
out string errorString)
{
errorString = string.Empty;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_TestEngineerDetailsDelete");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
#region params
if (string.IsNullOrEmpty(name))
{
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = DBNull.Value });
}
else
{
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = name });
}
//cmd.Parameters.Add(new SqlParameter("@TestEngineerName", SqlDbType.NVarChar, 255) { Value = string.IsNullOrEmpty(name) ? null : name });
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessageParam);
#endregion params
cmd.ExecuteNonQuery();
if ((int)errorNumberParam.Value != 0)
{
errorNumberULong = (ulong)errorNumberParam.Value;
errorString = (string)errorMessageParam.Value;
}
}
finally
{
cmd.Connection.Dispose();
}
}
catch (Exception ex)
{
//Concatenate any error string returned from the stored procedure call
errorString = $"{ex.Message}; {errorString}";
return errorNumberULong;
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
}
}