Files
DP44/DataPRO/DASFactoryDb/Config/Config.cs
2026-04-17 14:55:32 -04:00

135 lines
5.9 KiB
C#

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Text;
namespace DASFactoryDb.Config
{
public static class Config
{
public static int DASInfoInsert(int iDASRecordId, string macAddress, int owningDASId,
uint maxNumberOfModules, ulong? maxEventStorageSpaceInBytes, ulong? numberOfBytesPerSampleClock,
string batteryId, DateTime? calibrationDate)
{
using (var cmd = DbWrapper.GetDASFactoryCommand())
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_DASInfoInsert";
cmd.Parameters.Add(new SqlParameter("@IDASCommunicationRecordId", SqlDbType.Int)
{ Value = iDASRecordId });
cmd.Parameters.Add(new SqlParameter("@MACAddress", SqlDbType.NVarChar, 50) { Value = macAddress ?? string.Empty });
cmd.Parameters.Add(new SqlParameter("@OwningDAS", SqlDbType.Int) { Value = owningDASId });
cmd.Parameters.Add(new SqlParameter("@MaxNumberOfModules", SqlDbType.Int)
{ Value = maxNumberOfModules });
cmd.Parameters.Add(new SqlParameter("@MaxEventStorageSpaceInBytes", SqlDbType.Int) { Value = maxEventStorageSpaceInBytes ?? 0 });
cmd.Parameters.Add(new SqlParameter("@NumberOfBytesPerSampleClock", SqlDbType.Int)
{ Value = numberOfBytesPerSampleClock ?? 0 });
cmd.Parameters.Add(new SqlParameter("@BatteryID", SqlDbType.NVarChar) { Value = batteryId });
var date = calibrationDate ?? DateTime.MinValue;
if (date < ((DateTime)SqlDateTime.MinValue))
{
date = (DateTime)SqlDateTime.MinValue;
}
cmd.Parameters.Add(new SqlParameter("@CalibrationDate", SqlDbType.DateTime)
{ Value = date });
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();
DbWrapper.ProcessReturn(errorNumber, errorMessage);
return Convert.ToInt32(newId.Value);
}
finally
{
cmd.Connection.Dispose();
}
}
}
public static void DASInfoClear(int iDASRecordId)
{
if (!DbWrapper.Connected) { return; }
using (var cmd = DbWrapper.GetDASFactoryCommand())
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_DASInfoClear";
cmd.Parameters.Add(new SqlParameter("@IDASCommunicationRecordId", SqlDbType.Int)
{ Value = iDASRecordId });
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();
DbWrapper.ProcessReturn(errorNumber, errorMessage);
}
finally
{
cmd.Connection.Dispose();
}
}
}
public static void SetConfiguration(int iDASRecordId,
string xml,
int fileStore
)
{
if (!DbWrapper.Connected) { return; }
using (var cmd = DbWrapper.GetDASFactoryCommand())
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_ConfigDataSet";
cmd.Parameters.Add(new SqlParameter("@IDASRecordId", SqlDbType.Int)
{ Value = iDASRecordId });
cmd.Parameters.Add(new SqlParameter("@ConfigurationData", SqlDbType.VarBinary)
{ Value = Encoding.UTF8.GetBytes(xml) });
cmd.Parameters.Add(new SqlParameter("@ConfigStore", SqlDbType.Int)
{ Value = fileStore });
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();
DbWrapper.ProcessReturn(errorNumber, errorMessage);
}
finally
{
cmd.Connection.Dispose();
}
}
}
}
}