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,150 @@
using System;
using System.Data;
using System.Data.SqlClient;
namespace DASFactoryDb
{
public partial class DbWrapper
{
/// <summary>
/// For now DASFactory is always local db, but this lets us change it in the future
/// </summary>
public static bool _usingCentralizedDB = false;
/// <summary>
/// for now since DASFactor is always local db, this is true, but this lets us change it in the future
/// </summary>
public static bool _usingNTLMAuthentication = true;
/// <summary>
/// used to passively indicate connection status, does not perform any connection checking
/// </summary>
public static bool Connected
{
get => false;
set {; }
}
/// <summary>
/// returns a DbCommand interface to the DASFactory db
/// </summary>
/// <returns></returns>
internal static IDbCommand GetDASFactoryCommand()
{
var cmd = new SqlCommand();
cmd.Connection = new SqlConnection(Connection.GetLocalDASFactoryConnectionString());
cmd.Connection.Open();
return cmd;
}
//public static IDbCommand GetDASFactoryCommand()
//{
// return GetDASFactoryCommand
// (new SqlCommand(), new SqlConnection(Connection.GetLocalDASFactoryConnectionString()));
//}
//public static IDbCommand GetDASFactoryCommand(IDbCommand dbCmd, IDbConnection dbConnection)
//{
// dbCmd.Connection = dbConnection;
// dbCmd.Connection.Open();
// return dbCmd;
//}
public static DbWrapper Connection
{
get
{
lock (dbLock)
{
if (null == _dbOperations) { _dbOperations = new DbWrapper(); }
}
return _dbOperations;
}
}
private string _localDASFactoryConnection = null;
public void ResetLocalDASFactoryConnection()
{
_localDASFactoryConnection = null;
_usingNTLMAuthentication = true;
}
public string GetLocalDASFactoryConnectionString()
{
lock (dbLock)
{
if (null != _localDASFactoryConnection) return _localDASFactoryConnection;
if (string.IsNullOrWhiteSpace(Server))
{
throw new Exception("Empty Server");
}
_localDASFactoryConnection = _usingNTLMAuthentication
? $"Server={Server};Database=DASFactory;Trusted_Connection=TRUE;"
: $"Server={Server};Database=DASFactory;User Id={Username};Password={Password};";
}
return _localDASFactoryConnection;
}
public string Server { get; set; } = null;
public string DBName { get; set; } = null;
public string Username { get; set; } = "";
public string Password { get; set; }
private static DbWrapper _dbOperations = null;
private static readonly object dbLock = new object();
protected DbWrapper()
{
}
/// <summary>
/// returns device id if in db
/// </summary>
/// <param name="serialNumber"></param>
/// <returns></returns>
public static int GetDeviceId(string serialNumber)
{
if (!Connected)
{
throw new Exception("Not connected");
}
using (var cmd = GetDASFactoryCommand())
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_IDASCommunicationTableGetRecordId";
cmd.Parameters.Add(new SqlParameter("@SerialNumber", SqlDbType.NVarChar, 50)
{
Value = serialNumber
});
var reader = cmd.ExecuteReader();
if (reader.Read())
{
var id = Convert.ToInt32(reader["RecordId"]);
return id;
}
return -1;
}
finally
{
cmd.Connection.Dispose();
}
}
}
internal static void ProcessReturn(SqlParameter errorNumber, SqlParameter errorMessage)
{
if (null != errorNumber)
{
if (0 != Convert.ToInt32(errorNumber.Value))
{
throw new Exception($"{errorNumber.Value}{(string)errorMessage.Value}");
}
}
}
}
}