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,176 @@
using DbAPI.Connections;
using DbAPI.Errors;
using DTS.Common.Interface.Database;
using System;
using System.Data;
using System.Data.SqlClient;
using DTS.Common.Interface.Groups.GroupList;
using System.Collections.Generic;
using DTS.Common.Interface.Groups;
using DTS.Common.Classes.Groups;
using DbAPI.Logging;
using System.Diagnostics;
namespace DbAPI.GroupHardware
{
/// <summary>
/// Handles GroupHardware functions
/// </summary>
internal class GroupHardware : IGroupHardware
{
public ulong GroupHardwareInsert(IUserDbRecord user,
IConnectionDetails connection,
GroupHardwareDbRecord groupHardwareDbRecord,
out int newId,
out string errorMessageString)
{
newId = -1;
errorMessageString = string.Empty;
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_GroupHardwareInsert");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@GroupId", SqlDbType.Int) { Value = groupHardwareDbRecord.GroupId });
cmd.Parameters.Add(new SqlParameter("@DASId", SqlDbType.Int) { Value = groupHardwareDbRecord.DASId });
var newGroupHardwareIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(newGroupHardwareIdParam);
var errorNumber = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumber);
var errorMessage = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 255) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessage);
cmd.ExecuteNonQuery();
if (null != errorNumber.Value)
{
if (Convert.ToInt32(errorNumber.Value) != 0)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.TestSetups, $"GroupHardwareInsert failed: {errorNumber.Value} {errorMessage.Value}");
errorMessageString = errorMessage.Value.ToString();
return Convert.ToUInt32(errorNumber.Value);
}
}
newId = Convert.ToInt32(newGroupHardwareIdParam.Value);
return ErrorCodes.ERROR_SUCCESS;
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.TestSetups, $"GroupHardwareInsert failed: {ex.Message}");
return ErrorCodes.ERROR_UNKNOWN;
}
finally
{
cmd.Connection.Dispose();
cmd.Dispose();
}
}
public ulong GroupHardwareGet(IUserDbRecord user,
IConnectionDetails connection,
int? groupId,
string serialNumber,
bool? embedded,
out GroupHardwareDbRecord[] groupHardwareRecords)
{
groupHardwareRecords = null;
var list = new List<GroupHardwareDbRecord>();
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_GroupHardwareGet");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@GroupId", SqlDbType.Int) { Value = groupId });
cmd.Parameters.Add(new SqlParameter("@SerialNumber", SqlDbType.NVarChar) { Value = serialNumber });
cmd.Parameters.Add(new SqlParameter("@Embedded", SqlDbType.Bit) { Value = embedded });
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
list.Add(new GroupHardwareDbRecord(reader));
}
groupHardwareRecords = list.ToArray();
}
return ErrorCodes.ERROR_SUCCESS;
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.TestSetups, $"GroupsGet failed - {ex.Message}");
return ErrorCodes.ERROR_UNKNOWN;
}
finally
{
cmd.Connection.Dispose();
}
}
public ulong GroupHardwareDelete(IUserDbRecord user,
IConnectionDetails connection,
int? groupId,
int? dasId,
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_GroupHardwareDelete");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@GroupId", SqlDbType.Int) { Value = groupId });
cmd.Parameters.Add(new SqlParameter("@DASId", SqlDbType.Int) { Value = dasId });
var errorNumber = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumber);
var errorMessage = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 255) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessage);
cmd.ExecuteNonQuery();
if (null != errorNumber.Value)
{
if (Convert.ToInt32(errorNumber.Value) != 0)
{
errorNumberULong = Convert.ToUInt64(errorNumber.Value);
throw new Exception((string)errorMessage.Value);
}
}
}
catch (Exception ex)
{
//Concatenate any error string returned from the stored procedure call
errorString = $"{ex.Message}; {errorString}";
return ErrorCodes.ERROR_UNKNOWN;
}
finally
{
cmd.Connection.Dispose();
}
return errorNumberULong;
}
}
}

View File

@@ -0,0 +1,235 @@
using DbAPI.Connections;
using DbAPI.Errors;
using DTS.Common.Interface.Database;
using System;
using System.Data;
using System.Data.SqlClient;
using DTS.Common.Interface.Groups.GroupList;
using System.Collections.Generic;
using DTS.Common.Interface.Groups;
using DTS.Common.Classes.Groups;
using DbAPI.Logging;
using System.Diagnostics;
namespace DbAPI.Groups
{
/// <summary>
/// Handles channel functions
/// </summary>
internal class Groups : IGroups
{
public ulong GroupsInsert(IUserDbRecord user,
IConnectionDetails connection,
ref IGroupDbRecord group)
{
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_GroupsInsert");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@SerialNumber", SqlDbType.NVarChar, 255) { Value = group.SerialNumber });
cmd.Parameters.Add(new SqlParameter("@DisplayName", SqlDbType.NVarChar, 255) { Value = group.DisplayName });
cmd.Parameters.Add(new SqlParameter("@Description", SqlDbType.NVarChar, 255) { Value = group.Description });
cmd.Parameters.Add(new SqlParameter("@Embedded", SqlDbType.Bit) { Value = group.Embedded });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = group.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 255) { Value = group.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@StaticGroupId", SqlDbType.Int) { Value = group.StaticGroupId });
cmd.Parameters.Add(new SqlParameter("@ExtraProperties", SqlDbType.NVarChar, -1) { Value = group.ExtraProperties ?? "" });
var errorNumber = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumber);
var errorMessage = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 255) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessage);
var newId = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(newId);
cmd.ExecuteNonQuery();
if (null != errorNumber.Value)
{
if (Convert.ToInt32(errorNumber.Value) != 0)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.TestSetups, $"GroupsInsert failed: {errorNumber.Value} {errorMessage.Value}");
return ErrorCodes.ERROR_UNKNOWN;
}
}
group.Id = Convert.ToInt32(newId.Value);
return ErrorCodes.ERROR_SUCCESS;
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.TestSetups, $"GroupsInsert failed: {ex.Message}");
return ErrorCodes.ERROR_UNKNOWN;
}
finally
{
cmd.Connection.Dispose();
cmd.Dispose();
}
}
public ulong GroupsUpdate(IUserDbRecord user,
IConnectionDetails connection,
IGroupDbRecord group)
{
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_GroupsUpdate");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int) { Value = group.Id });
cmd.Parameters.Add(new SqlParameter("@SerialNumber", SqlDbType.NVarChar, 255) { Value = group.SerialNumber });
cmd.Parameters.Add(new SqlParameter("@DisplayName", SqlDbType.NVarChar, 255) { Value = group.DisplayName });
cmd.Parameters.Add(new SqlParameter("@Description", SqlDbType.NVarChar, 255) { Value = group.Description });
cmd.Parameters.Add(new SqlParameter("@Embedded", SqlDbType.Bit) { Value = group.Embedded });
cmd.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = group.LastModified });
cmd.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 255) { Value = group.LastModifiedBy });
cmd.Parameters.Add(new SqlParameter("@StaticGroupId", SqlDbType.Int) { Value = group.StaticGroupId });
cmd.Parameters.Add(new SqlParameter("@ExtraProperties", SqlDbType.NVarChar, -1) { Value = group.ExtraProperties });
var errorNumber = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumber);
var errorMessage = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 255) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessage);
cmd.ExecuteNonQuery();
if (!DBNull.Value.Equals(errorNumber.Value) && 0 != Convert.ToInt32(errorNumber.Value))
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.TestSetups, $"GroupsUpdate failed - {errorNumber.Value} {errorMessage.Value}");
return ErrorCodes.ERROR_UNKNOWN;
}
return ErrorCodes.ERROR_SUCCESS;
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.TestSetups, $"GroupsUpdate failed - {ex.Message}");
return ErrorCodes.ERROR_UNKNOWN;
}
finally
{
cmd.Connection.Dispose();
}
}
public ulong GroupsGet(IUserDbRecord user,
IConnectionDetails connection,
int? id,
string serialNumber,
string displayName,
bool? embedded,
int? staticGroupId,
out IGroupDbRecord[] groups)
{
groups = null;
var list = new List<IGroupDbRecord>();
if (!DbAPI.Connections.IsUserLoggedIn(user, connection))
{
return ErrorCodes.ERROR_ACCESS_DENIED;
}
var ret = ConnectionManager.GetSqlCommand(connection, out var cmd, "sp_GroupsGet");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int) { Value = id });
cmd.Parameters.Add(new SqlParameter("@SerialNumber", SqlDbType.NVarChar) { Value = serialNumber });
cmd.Parameters.Add(new SqlParameter("@DisplayName", SqlDbType.NVarChar) { Value = displayName });
cmd.Parameters.Add(new SqlParameter("@Embedded", SqlDbType.Bit) { Value = embedded });
cmd.Parameters.Add(new SqlParameter("@StaticGroupId", SqlDbType.Int) { Value = staticGroupId });
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
list.Add(new GroupDbRecord(reader));
}
groups = list.ToArray();
}
return ErrorCodes.ERROR_SUCCESS;
}
catch (Exception ex)
{
LogManager.Log(TraceEventType.Error, LogManager.LogEvents.TestSetups, $"GroupsGet failed - {ex.Message}");
return ErrorCodes.ERROR_UNKNOWN;
}
finally
{
cmd.Connection.Dispose();
}
}
public ulong GroupsDelete(IUserDbRecord user,
IConnectionDetails connection,
long id,
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_GroupsDelete");
if (ret != ErrorCodes.ERROR_SUCCESS)
{
return ret;
}
var errorNumberULong = ErrorCodes.ERROR_SUCCESS;
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int) { Value = id });
var errorNumber = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumber);
var errorMessage = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 255) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorMessage);
cmd.ExecuteNonQuery();
if (null != errorNumber.Value && !DBNull.Value.Equals(errorNumber.Value))
{
if (0 != Convert.ToInt32(errorNumber.Value))
{
errorNumberULong = Convert.ToUInt64(errorNumber.Value);
errorString = (string)errorMessage.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;
}
}
}

View File

@@ -0,0 +1,62 @@
using DbAPI.Connections;
using DTS.Common.Interface.Database;
using DTS.Common.Interface.Groups.GroupList;
using System.Collections.Generic;
using DTS.Common.Interface.Groups;
using DTS.Common.Classes.Groups;
namespace DbAPI.GroupHardware
{
/// <summary>
/// GroupHardware related functions
/// </summary>
public interface IGroupHardware
{
/// <summary>
/// Inserts a new record in the GroupHardware table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="groupHardware"></param>
/// <param name="newId"></param>
/// <param name="errorMessage"></param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong GroupHardwareInsert(IUserDbRecord user,
IConnectionDetails connection,
GroupHardwareDbRecord groupHardware,
out int newId,
out string errorMessage);
/// <summary>
/// Gets one or more records from the GroupHardware table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="groupId"></param>
/// <param name="serialNumber"></param>
/// <param name="embedded"></param>
/// <param name="groupHardwareRecords"></param>
/// <returns></returns>
ulong GroupHardwareGet(IUserDbRecord user,
IConnectionDetails connection,
int? groupId,
string serialNumber,
bool? embedded,
out GroupHardwareDbRecord[] groupHardwareRecords);
/// <summary>
/// Deletes an entry in the GroupHardware table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="groupId">Id in the GroupHardware table</param>
/// <param name="dasId">Id in the GroupHardware table</param>
/// <param name="errorString">Error string returned, possibly from sp_GroupsDelete</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong GroupHardwareDelete(IUserDbRecord user,
IConnectionDetails connection,
int? groupId,
int? dasId,
out string errorString);
}
}

View File

@@ -0,0 +1,70 @@
using DbAPI.Connections;
using DTS.Common.Interface.Database;
using DTS.Common.Interface.Groups.GroupList;
using System.Collections.Generic;
using DTS.Common.Interface.Groups;
namespace DbAPI.Groups
{
/// <summary>
/// Group related functions (GetChannels, )
/// </summary>
public interface IGroups
{
/// <summary>
/// Inserts a new record in the Groups table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="group"></param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong GroupsInsert(IUserDbRecord user,
IConnectionDetails connection,
ref IGroupDbRecord group);
/// <summary>
/// Updates a record in the Groups table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="group"></param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong GroupsUpdate(IUserDbRecord user,
IConnectionDetails connection,
IGroupDbRecord group);
/// <summary>
///
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="id"></param>
/// <param name="serialNumber"></param>
/// <param name="displayName"></param>
/// <param name="embedded"></param>
/// <param name="staticGroupId"></param>
/// <param name="groups"></param>
/// <returns></returns>
ulong GroupsGet(IUserDbRecord user,
IConnectionDetails connection,
int? id,
string serialNumber,
string displayName,
bool? embedded,
int? staticGroupId,
out IGroupDbRecord[] groups);
/// <summary>
/// Deletes an entry in the Groups table
/// </summary>
/// <param name="user"></param>
/// <param name="connection"></param>
/// <param name="id">Id in the Groups table</param>
/// <param name="errorString">Error string returned, possibly from sp_GroupsDelete</param>
/// <returns>0 (ERROR_SUCCESS) on success, all other values are error codes</returns>
ulong GroupsDelete(IUserDbRecord user,
IConnectionDetails connection,
long id,
out string errorString);
}
}