306 lines
15 KiB
C#
306 lines
15 KiB
C#
|
|
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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|