init
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
using DTS.Common.Utilities.Logging;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using static DTS.Common.Utilities.Logging.APILogger;
|
||||
|
||||
namespace DbAPI.Logging
|
||||
{
|
||||
internal class LogManager
|
||||
{
|
||||
public static Sink DBAPILogWriter;
|
||||
private static TextLogger _LogWriter;
|
||||
private static object MyLock = new object();
|
||||
private static int _MinLog = (int)(TraceEventType.Error | TraceEventType.Warning);
|
||||
public enum LogEvents
|
||||
{
|
||||
Message,
|
||||
Connections,
|
||||
Login,
|
||||
Information,
|
||||
DataRecorders,
|
||||
Graphs,
|
||||
CalculatedChannels,
|
||||
Sensors,
|
||||
TestSetups,
|
||||
RegionsOfInterest,
|
||||
Tags
|
||||
}
|
||||
public static void Initialize(int logSize, string path, int minLog)
|
||||
{
|
||||
lock (MyLock)
|
||||
{
|
||||
if (null != _LogWriter) { return; }
|
||||
_MinLog = minLog;
|
||||
_LogWriter = new TextLogger(Path.Combine(path, "DB.log"), OnWriteException, logSize);
|
||||
_LogWriter.ReRollLog = true;
|
||||
_LogWriter.LogStartMessage = GetLogStartMessage();
|
||||
DBAPILogWriter = LogMsg;
|
||||
}
|
||||
}
|
||||
public static void Log(TraceEventType eventType, LogEvents logEvent, string msg)
|
||||
{
|
||||
if ((_MinLog & (int)eventType) != (int)eventType) { return; } //don't log
|
||||
var dt = DateTime.Now;
|
||||
LogMsg($"{dt.Year}-{dt.Month:00}-{dt.Day:00} {dt.Hour:00}:{dt.Minute:00}:{dt.Second:00}.{dt.Millisecond:000} {eventType} - {logEvent} - {msg}");
|
||||
}
|
||||
public static void OnWriteException(Exception ex)
|
||||
{
|
||||
Console.Error.WriteLine(ex.Message);
|
||||
}
|
||||
private static void LogMsg(string msg)
|
||||
{
|
||||
try
|
||||
{
|
||||
_LogWriter.LogMessage(msg);
|
||||
}
|
||||
catch (Exception) { }
|
||||
}
|
||||
private static string GetLogStartMessage()
|
||||
{
|
||||
return string.Format("DB API\r\n" +
|
||||
$"OS: {Environment.OSVersion}\r\n" +
|
||||
$"MachineName: {Environment.MachineName}\r\n" +
|
||||
$"Environment: {Environment.Version} \r\n\n" +
|
||||
"=====================================\r\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user