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,200 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Data.SqlClient;
using DTS.Common.Interface.Sensors;
using DTS.Common.Storage;
namespace DTS.SensorDB
{
public class SoftwareFilter : Common.Base.BasePropertyChanged, ISoftwareFilter
{
public int Id { get; set; } = -1;
private char _isoCode;
public char ISOCode { get => _isoCode; set => SetProperty(ref _isoCode, value, "ISOCode"); }
private string _description = "";
public string Description { get => _description; set => SetProperty(ref _description, value, "Description"); }
private double _frequency = 0D;
public double Frequency { get => _frequency; set => SetProperty(ref _frequency, value, "Frequency"); }
//FB 13120 property to define wich filter is default
private bool _isDefault = false;
public bool IsDefault { get => _isDefault; set => SetProperty(ref _isDefault, value, "IsDefault"); }
private DateTime _lastModified = DateTime.Today;
public DateTime LastModified { get => _lastModified; set => SetProperty(ref _lastModified, value, "LastModified"); }
private string _lastModifiedBy = "";
public string LastModifiedBy { get => _lastModifiedBy; set => SetProperty(ref _lastModifiedBy, value, "LastModifiedBy"); }
public void Commit(bool updateDateTime = true, string user = "")
{
if (updateDateTime)
{
LastModifiedBy = user;
LastModified = DateTime.Now;
}
if (Id <= 0)
{
var filters = GetSoftwareFilters();
if (filters.Where(p => p.Frequency == Frequency).Any())
return;
Insert();
}
else
{
Update();
}
}
private void Insert()
{
using (var sql = DbOperations.GetSQLCommand(true))
{
try
{
sql.CommandType = CommandType.StoredProcedure;
sql.CommandText = "sp_SoftwareFiltersInsert";
sql.Parameters.Add(new SqlParameter("@ISOCode", SqlDbType.Char) { Value = ISOCode });
sql.Parameters.Add(new SqlParameter("@Description", SqlDbType.NVarChar, 255) { Value = Description });
sql.Parameters.Add(new SqlParameter("@Frequency", SqlDbType.Float) { Value = Frequency });
sql.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = LastModified });
sql.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 255) { Value = LastModifiedBy });
sql.Parameters.Add(new SqlParameter("@IsDefault", SqlDbType.Bit) { Value = IsDefault });
var errorNumber = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
sql.Parameters.Add(errorNumber);
var errorMessage = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 255) { Direction = ParameterDirection.Output };
sql.Parameters.Add(errorMessage);
var newId = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
sql.Parameters.Add(newId);
sql.ExecuteNonQuery();
if (null != errorNumber.Value && !DBNull.Value.Equals(errorNumber.Value))
{
if (0 != Convert.ToInt32(errorNumber.Value))
{
throw new Exception((string)errorMessage.Value);
}
}
Id = Convert.ToInt32(newId.Value);
}
finally
{
sql.Connection.Dispose();
}
}
}
private void Update()
{
using (var sql = DbOperations.GetSQLCommand(true))
{
try
{
sql.CommandType = CommandType.StoredProcedure;
sql.CommandText = "sp_SoftwareFiltersUpdate";
sql.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int) { Value = Id });
sql.Parameters.Add(new SqlParameter("@ISOCode", SqlDbType.Char) { Value = ISOCode });
sql.Parameters.Add(new SqlParameter("@Description", SqlDbType.NVarChar, 255) { Value = Description });
sql.Parameters.Add(new SqlParameter("@Frequency", SqlDbType.Float) { Value = Frequency });
sql.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = LastModified });
sql.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar, 255) { Value = LastModifiedBy });
sql.Parameters.Add(new SqlParameter("@IsDefault", SqlDbType.Bit) { Value = IsDefault });
var errorNumber = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
sql.Parameters.Add(errorNumber);
var errorMessage = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 255) { Direction = ParameterDirection.Output };
sql.Parameters.Add(errorMessage);
sql.ExecuteNonQuery();
if (null != errorNumber.Value && !DBNull.Value.Equals(errorNumber.Value))
{
if (0 != Convert.ToInt32(errorNumber.Value))
{
throw new Exception((string)errorMessage.Value);
}
}
}
finally
{
sql.Connection.Dispose();
}
}
}
public void Delete()
{
if (Id <= 0) { return; }
using (var sql = DbOperations.GetSQLCommand(true))
{
sql.CommandType = CommandType.StoredProcedure;
sql.CommandText = "sp_SoftwareFiltersDelete";
sql.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int) { Value = Id });
var errorNumber = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
sql.Parameters.Add(errorNumber);
var errorMessage = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 255) { Direction = ParameterDirection.Output };
sql.Parameters.Add(errorMessage);
sql.ExecuteNonQuery();
if (null != errorNumber.Value && !DBNull.Value.Equals(errorNumber.Value))
{
if (0 != Convert.ToInt32(errorNumber.Value))
{
throw new Exception((string)errorMessage.Value);
}
}
}
}
public SoftwareFilter() { }
public SoftwareFilter(int id, string description, char isoCode, DateTime lastModified, string lastModifiedBy, double frequency, bool isDefault)
{
Id = id;
Description = description;
ISOCode = isoCode;
LastModified = lastModified;
LastModifiedBy = lastModifiedBy;
Frequency = frequency;
IsDefault = isDefault;
}
public bool IsBlank()
{
if (Id > 0) { return false; }
if (!string.IsNullOrWhiteSpace(Description)) { return false; }
if (Frequency != 0D) { return false; }
return true;
}
public static ISoftwareFilter[] GetSoftwareFilters()
{
var filters = new List<ISoftwareFilter>();
using (var sql = DbOperations.GetSQLCommand(true))
{
try
{
sql.CommandType = CommandType.StoredProcedure;
sql.CommandText = "sp_SoftwareFiltersGet";
sql.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int) { Value = null });
sql.Parameters.Add(new SqlParameter("@Description", SqlDbType.NVarChar, 255) { Value = null });
sql.Parameters.Add(new SqlParameter("@ISOCode", SqlDbType.Char, 1) { Value = null });
var reader = sql.ExecuteReader();
while (reader.Read())
{
var id = Convert.ToInt32(reader["Id"]);
var description = Convert.ToString(reader["Description"]);
var isoCode = Convert.ToChar(reader["ISOCode"]);
var frequency = Convert.ToDouble(reader["Frequency"]);
var lastModified = Convert.ToDateTime(reader["LastModified"]);
var lastModifiedBy = Convert.ToString(reader["LastModifiedBy"]);
var isDefault = Convert.ToBoolean(reader["IsDefault"]);
filters.Add(new SoftwareFilter(id, description, isoCode, lastModified, lastModifiedBy, frequency, isDefault));
}
}
finally
{
sql.Connection.Dispose();
}
}
return filters.ToArray();
}
}
}