init
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user