Files
tbf/TBF/Rig/Output/DB/SensusOracle/VtPruefstandWztypSd.cs
T

159 lines
9.8 KiB
C#

///
/// Copyright (c) 2021 Sensus Slovensko a.s.
///
using System;
using System.Collections.Generic;
using System.Linq;
using log4net;
#if MANAGED
using Oracle.ManagedDataAccess.Client;
#else
using Oracle.DataAccess.Client;
#endif
using Common;
namespace TBF.Rig.Output.DB.SensusOracle
{
public class VtPruefstandWztypSd
{
private static readonly ILog log = LogManager.GetLogger(typeof(VtWztypSd));
public int IdPruefstand; /// Nummer des Prüfstandes
public int IdWztyp; /// Eindeutige ID des Wasserzählers
public int RevPruefstandWztyp; /// Revisionsnummer
public int Fuellzeit; /// Zeit zum füllen
public int Evakuierzeitvorne; /// Zeit zum Evakuieren vorne
public int Evakuierzeithinten; /// Zeit zum Evakuieren hinten
public int Spuelzeit; /// Zeit zum Spülen
public double Spueldurchfluss; /// Durchfluss beim Spülen
public int Abpresszeit; /// Zeit zum Abpressen
public float Abpressdruck; /// Mindestdruck beim Abpressen
public int Entwaesserzeit; /// Zeit zum Entwässern
public int Belueftenzeit; /// Zeit zum Belüften
public int Entwaessernmitbelueften; /// Wird belüftet?
public int Wirdjustiert; /// Wird justiert?
public int Mittelwerttiefe; /// Anzahl der Werte für Mittelwert des Durchflusses beim Justieren
public int Endkriterium; /// Erforderliche Gutmessung beim Justieren
public string Bemerkung; /// Bemerkung zum Datensatz
public int IdBenutzer; /// ID des Benutzers (Personalnummer)
public DateTime Aenderungsdatum; /// Datum der Änderung des Datensatzes
public bool Verwendet; /// Dieser Datensatz ist bereits für eine Prüfung verwendet worden
public bool Aktiv; /// Datensatz aktiviert?
/// <summary>
/// Default constructor
/// </summary>
public VtPruefstandWztypSd()
{
}
public int Write(OracleConnection conn, bool aktiv = true)
{
var cmd = new OracleCommand("INSERT INTO vt_pruefstand_wztyp_sd(anbid, id_pruefstand, id_wztyp, rev_pruefstand_wztyp," +
" fuellzeit, evakuierzeitvorne, evakuierzeithinten, spuelzeit, spueldurchfluss," +
" abpresszeit, abpressdruck, entwaesserzeit, belueftenzeit, entwaessernmitbelueften," +
" wirdjustiert, mittelwerttiefe, endkriterium, bemerkung, id_benutzer," +
" aenderungsdatum, verwendet, aktiv) " +
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22)", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Database.ProducerAnbid }); /// :1
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = IdPruefstand }); /// :2
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = IdWztyp }); /// :3
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = RevPruefstandWztyp }); /// :4
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Fuellzeit }); /// :5
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Evakuierzeitvorne }); /// :6
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Evakuierzeithinten }); /// :7
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Spuelzeit }); /// :8
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Spueldurchfluss }); /// :9
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Abpresszeit }); /// :10
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Abpressdruck }); /// :11
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Entwaesserzeit }); /// :12
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Belueftenzeit }); /// :13
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Entwaessernmitbelueften }); /// :14
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Wirdjustiert }); /// :15
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Mittelwerttiefe }); /// :16
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Endkriterium }); /// :17
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Bemerkung }); /// :18
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = IdBenutzer }); /// :19
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = Aenderungsdatum }); /// :20
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Verwendet ? 1 : 0 }); /// :21
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = aktiv ? 1 : 0 }); /// :22
///
int rowsUpdated = cmd.ExecuteNonQuery(); /// returns updated rows count
if (rowsUpdated == 1)
log.DebugFormat("Successfully writen to DB: {0}", ToString());
else
log.DebugFormat("Not writen to DB (updated rows {0}): {1}", rowsUpdated, ToString());
return rowsUpdated;
}
public static IList<VtPruefstandWztypSd> Read(OracleConnection conn, int idPruefstand, int idWztyp)
{
var cmd = new OracleCommand("SELECT rev_pruefstand_wztyp, fuellzeit, evakuierzeitvorne, evakuierzeithinten, spuelzeit," +
" spueldurchfluss, abpresszeit, abpressdruck, entwaesserzeit, belueftenzeit, entwaessernmitbelueften," +
" wirdjustiert, mittelwerttiefe, endkriterium, bemerkung, id_benutzer, aenderungsdatum, verwendet, aktiv " +
"FROM vt_pruefstand_wztyp_sd " +
"WHERE anbid=:1 AND id_pruefstand=:2 AND id_wztyp=:3", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Database.ProducerAnbid }); /// :1
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idPruefstand }); /// :2
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idWztyp }); /// :3
///
var dr = cmd.ExecuteReader();
var list = new List<VtPruefstandWztypSd>();
while (dr.Read())
{
var record = new VtPruefstandWztypSd();
int i = 0;
try { record.RevPruefstandWztyp = dr.GetInt32(i++); } catch { record.RevPruefstandWztyp = 0; }
try { record.Fuellzeit = dr.GetInt32(i++); } catch { record.Fuellzeit = 0; }
try { record.Evakuierzeitvorne = dr.GetInt32(i++); } catch { record.Evakuierzeitvorne = 0; }
try { record.Evakuierzeithinten = dr.GetInt32(i++); } catch { record.Evakuierzeithinten = 0; }
try { record.Spuelzeit = dr.GetInt32(i++); } catch { record.Spuelzeit = 0; }
try { record.Spueldurchfluss = dr.GetDouble(i++); } catch { record.Spueldurchfluss = 0; }
try { record.Abpresszeit = dr.GetInt32(i++); } catch { record.Abpresszeit = 0; }
try { record.Abpressdruck = dr.GetFloat(i++); } catch { record.Abpressdruck = 0; }
try { record.Entwaesserzeit = dr.GetInt32(i++); } catch { record.Entwaesserzeit = 0; }
try { record.Belueftenzeit = dr.GetInt32(i++); } catch { record.Belueftenzeit = 0; }
try { record.Entwaessernmitbelueften = dr.GetInt32(i++); } catch { record.Entwaessernmitbelueften = 0; }
try { record.Wirdjustiert = dr.GetInt32(i++); } catch { record.Wirdjustiert = 0; }
try { record.Mittelwerttiefe = dr.GetInt32(i++); } catch { record.Mittelwerttiefe = 0; }
try { record.Endkriterium = dr.GetInt32(i++); } catch { record.Endkriterium = 0; }
try { record.Bemerkung = dr.GetString(i++); } catch { record.Bemerkung = string.Empty; }
try { record.IdBenutzer = dr.GetInt32(i++); } catch { record.IdBenutzer = 0; }
try { record.Aenderungsdatum = dr.GetDateTime(i++); } catch { record.Aenderungsdatum = DateTime.Now; }
try { record.Verwendet = dr.GetBoolean(i++); } catch { record.Verwendet = false; }
try { record.Aktiv = dr.GetBoolean(i++); } catch { record.Aktiv = false; }
list.Add(record);
}
dr.Close();
return list;
}
}
}