From a218732e814f16a6ea995c2b5f61735a5f8e31e5 Mon Sep 17 00:00:00 2001 From: Luc Vandenbroucke Date: Thu, 7 May 2020 16:49:56 +0200 Subject: [PATCH] In Progress with LocalRemote --- eDosStation/App.Debug.config | 4 + eDosStation/App.Release.config | 4 + eDosStation/App.config | 2 + eDosStation/DataSet1.cs | 9 + eDosStation/EntryBadge.xaml.cs | 32 +-- eDosStation/EpdExit.xaml.cs | 51 +---- eDosStation/LocalRemote.cs | 225 ++++++++++++++++++++ eDosStation/Properties/Settings.Designer.cs | 11 + eDosStation/Properties/Settings.settings | 7 + eDosStation/eDosStation.csproj | 23 ++ eDosStation/packages.config | 4 + 11 files changed, 301 insertions(+), 71 deletions(-) create mode 100644 eDosStation/App.Debug.config create mode 100644 eDosStation/App.Release.config create mode 100644 eDosStation/DataSet1.cs create mode 100644 eDosStation/LocalRemote.cs create mode 100644 eDosStation/packages.config diff --git a/eDosStation/App.Debug.config b/eDosStation/App.Debug.config new file mode 100644 index 0000000..e36bc80 --- /dev/null +++ b/eDosStation/App.Debug.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/eDosStation/App.Release.config b/eDosStation/App.Release.config new file mode 100644 index 0000000..e36bc80 --- /dev/null +++ b/eDosStation/App.Release.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/eDosStation/App.config b/eDosStation/App.config index 6d05af3..09f2e23 100644 --- a/eDosStation/App.config +++ b/eDosStation/App.config @@ -12,6 +12,8 @@ + diff --git a/eDosStation/DataSet1.cs b/eDosStation/DataSet1.cs new file mode 100644 index 0000000..14ca4cc --- /dev/null +++ b/eDosStation/DataSet1.cs @@ -0,0 +1,9 @@ +namespace eDosStation +{ + + + partial class DataSet1 + { + + } +} diff --git a/eDosStation/EntryBadge.xaml.cs b/eDosStation/EntryBadge.xaml.cs index a630399..0144c6c 100644 --- a/eDosStation/EntryBadge.xaml.cs +++ b/eDosStation/EntryBadge.xaml.cs @@ -131,24 +131,16 @@ namespace eDosStation { bool isBG = (ep.epdType != 3); //3 = zwarte 0=grijs int? StationVisitID = null; - using (var co = new System.Data.SqlClient.SqlConnection(Properties.Settings.Default.eDosConnectionString)) - { - using (var cmd1 = new SqlCommand("VisitInit", co)) - { - cmd1.CommandType = CommandType.StoredProcedure; - var pa = new SqlParameter("ID_Station", SqlDbType.Int, 4); pa.Value = thisStation.ID_Station; cmd1.Parameters.Add(pa); - pa = new SqlParameter("PersID", SqlDbType.Int, 4); pa.Value = _User.PersID; cmd1.Parameters.Add(pa); - pa = new SqlParameter("ID_Task", SqlDbType.Int, 4); pa.Value = CurTaskRow.ID_Task; cmd1.Parameters.Add(pa); - pa = new SqlParameter("Inst_CODE", SqlDbType.Int, 4); pa.Value = CurTaskRow.Inst_CODE; cmd1.Parameters.Add(pa); - pa = new SqlParameter("EPD_InternalID", SqlDbType.Int, 4); pa.Value = (int)ep.EpdID; cmd1.Parameters.Add(pa); - pa = new SqlParameter("isBG", SqlDbType.Bit, 4); pa.Value = isBG; cmd1.Parameters.Add(pa); - pa = new SqlParameter("EPDVisitID", SqlDbType.Int, 4); pa.Direction = ParameterDirection.Output; cmd1.Parameters.Add(pa); - co.Open(); - cmd1.ExecuteNonQuery(); - StationVisitID = (int?)cmd1.Parameters["EPDVisitID"].Value; - co.Close(); - } - } + var co = LocalRemote.getCon(); + LocalRemote.VisitInitCommand.Parameters["ID_Station"].Value = thisStation.ID_Station; + LocalRemote.VisitInitCommand.Parameters["PersID"].Value = _User.PersID; + LocalRemote.VisitInitCommand.Parameters["ID_Task"].Value = CurTaskRow.ID_Task; + LocalRemote.VisitInitCommand.Parameters["Inst_CODE"].Value = CurTaskRow.Inst_CODE; + LocalRemote.VisitInitCommand.Parameters["EPD_InternalID"].Value = (int)ep.EpdID; + LocalRemote.VisitInitCommand.Parameters["isBG"].Value = isBG; + LocalRemote.VisitInitCommand.ExecuteNonQuery(); + StationVisitID = (int?)LocalRemote.VisitInitCommand.Parameters["EPDVisitID"].Value; + co.Close(); int rv = ep.PrepareForIssue(); if (rv != 1) @@ -598,9 +590,7 @@ namespace eDosStation cbInst2.IsChecked = Inst2; } - dtCOE = new DataSet1.CommentOnEventDataTable(); - using (var dt = new DataSet1TableAdapters.CommentOnEventTableAdapter()) - dt.Fill(dtCOE); + LocalRemote.FillComment(dtCOE); string TestCSN = thisStation.TestCSN; initialising = false; diff --git a/eDosStation/EpdExit.xaml.cs b/eDosStation/EpdExit.xaml.cs index cf236b5..1264009 100644 --- a/eDosStation/EpdExit.xaml.cs +++ b/eDosStation/EpdExit.xaml.cs @@ -116,59 +116,10 @@ namespace eDosStation MessageBox.Show($"DeIssueerror {rv}"); } - var l = new SqlLog(); try { - using (var co = new System.Data.SqlClient.SqlConnection(Properties.Settings.Default.eDosConnectionString)) - { - using (var cmd1 = new SqlCommand("VisitExit", co)) - { - cmd1.CommandType = CommandType.StoredProcedure; - var pa = new SqlParameter("EPDVisitID", SqlDbType.Int, 4); pa.Value = EpdVisitID; cmd1.Parameters.Add(pa); - pa = new SqlParameter("HP07", SqlDbType.Float); pa.Value = ep.Hp07; cmd1.Parameters.Add(pa); - pa = new SqlParameter("HP10", SqlDbType.Float); pa.Value = ep.Hp10; cmd1.Parameters.Add(pa); - - pa = new SqlParameter("Hp07Total", SqlDbType.Float); pa.Value = ep.Hp07Total; cmd1.Parameters.Add(pa); - pa = new SqlParameter("Hp10Total", SqlDbType.Float); pa.Value = ep.Hp10Total; cmd1.Parameters.Add(pa); - //pa = new SqlParameter("Hp07Rate", SqlDbType.Float); pa.Value = ep.Hp07Rate; cmd1.Parameters.Add(pa); - //pa = new SqlParameter("Hp10Rate", SqlDbType.Float); pa.Value = ep.Hp10Rate; cmd1.Parameters.Add(pa); - - pa = new SqlParameter("Hp07Peak", SqlDbType.Float); pa.Value = ep.Hp07Peak; cmd1.Parameters.Add(pa); - pa = new SqlParameter("Hp10Peak", SqlDbType.Float); pa.Value = ep.Hp10Peak; cmd1.Parameters.Add(pa); - pa = new SqlParameter("HP07PeakTime", SqlDbType.DateTime); cmd1.Parameters.Add(pa); - if (ep.Hp07PeakTime != null) pa.Value = ep.Hp07PeakTime; else pa.Value = DBNull.Value; - pa = new SqlParameter("HP10PeakTime", SqlDbType.DateTime); cmd1.Parameters.Add(pa); - if (ep.Hp10PeakTime != null) pa.Value = ep.Hp10PeakTime; else pa.Value = DBNull.Value; - pa = new SqlParameter("K1", SqlDbType.Int); pa.Value = ep.K1; cmd1.Parameters.Add(pa); - pa = new SqlParameter("K2", SqlDbType.Int); pa.Value = ep.K2; cmd1.Parameters.Add(pa); - pa = new SqlParameter("K3", SqlDbType.Int); pa.Value = ep.K3; cmd1.Parameters.Add(pa); - pa = new SqlParameter("K4", SqlDbType.Int); pa.Value = ep.K4; cmd1.Parameters.Add(pa); - pa = new SqlParameter("K5", SqlDbType.Int); pa.Value = ep.K5; cmd1.Parameters.Add(pa); - pa = new SqlParameter("K6", SqlDbType.Int); pa.Value = ep.K6; cmd1.Parameters.Add(pa); - pa = new SqlParameter("SG", SqlDbType.Int); pa.Value = ep.SG; cmd1.Parameters.Add(pa); - pa = new SqlParameter("BC", SqlDbType.Int); pa.Value = ep.BC; cmd1.Parameters.Add(pa); - pa = new SqlParameter("FB", SqlDbType.Int); pa.Value = ep.FB; cmd1.Parameters.Add(pa); - pa = new SqlParameter("HG", SqlDbType.Int); pa.Value = ep.HG; cmd1.Parameters.Add(pa); - - pa = new SqlParameter("QualityData", SqlDbType.Int); pa.Value = ep.QualityData; cmd1.Parameters.Add(pa); - - pa = new SqlParameter("D1", SqlDbType.Int); pa.Value = ep.D1; cmd1.Parameters.Add(pa); - pa = new SqlParameter("D2", SqlDbType.Int); pa.Value = ep.D2; cmd1.Parameters.Add(pa); - pa = new SqlParameter("D3", SqlDbType.Int); pa.Value = ep.D3; cmd1.Parameters.Add(pa); - pa = new SqlParameter("D4", SqlDbType.Int); pa.Value = ep.D4; cmd1.Parameters.Add(pa); - - pa = new SqlParameter("alarmStatus", SqlDbType.Int); pa.Value = ep.alarmStatus; cmd1.Parameters.Add(pa); - pa = new SqlParameter("otherAlarms", SqlDbType.Int); pa.Value = ep.otherAlarms; cmd1.Parameters.Add(pa); - pa = new SqlParameter("errorStatus", SqlDbType.Int); pa.Value = ep.errorStatus; cmd1.Parameters.Add(pa); - pa = new SqlParameter("operatingStatus", SqlDbType.Int); pa.Value = ep.operatingStatus; cmd1.Parameters.Add(pa); - - l.LogCommand(cmd1); - co.Open(); - cmd1.ExecuteNonQuery(); - co.Close(); - } - } + LocalRemote.VisitExit(EpdVisitID, ep); } catch (System.Exception ex) { diff --git a/eDosStation/LocalRemote.cs b/eDosStation/LocalRemote.cs new file mode 100644 index 0000000..3ef350e --- /dev/null +++ b/eDosStation/LocalRemote.cs @@ -0,0 +1,225 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace eDosStation +{ + public static class LocalRemote + { + static public bool isLocal = false; + static public string serverConstr; + static public string serverTestConstr; + static public string localConstr; + static public string conStr; + static public System.Data.SqlClient.SqlConnection Connection; + static public System.Data.SqlClient.SqlCommand VisitInitCommand; + public static SqlCommand VisitExitCommand; + + static bool checkCon(bool leaveOpen=false) + { + if (Connection != null && Connection.State == System.Data.ConnectionState.Open) return true; + bool rv = false; + var co = new System.Data.SqlClient.SqlConnection(serverTestConstr); + try + { + co.Open(); + } + catch { } + if (co.State != System.Data.ConnectionState.Open) + { + switchLocal(); + co.ConnectionString = localConstr; + } + else + { + isLocal = false; + conStr = serverConstr; + rv = true; + } + if (!rv) + try + { + co.Open(); + isLocal = true; + conStr = localConstr; + rv = true; + } + catch + { + co = null; co.Dispose(); + } + if (rv && !leaveOpen) co?.Close(); + return rv; + } + static void init() + { + serverConstr = System.Configuration.ConfigurationManager.ConnectionStrings["eDosStation.Properties.Settings.eDosConnectionString"].ConnectionString; + var cb = new System.Data.SqlClient.SqlConnectionStringBuilder(serverConstr); + cb.ConnectTimeout = 5; + serverTestConstr = cb.ConnectionString; + localConstr = System.Configuration.ConfigurationManager.ConnectionStrings["eDosStation.Properties.Settings.eDosConnectionString"].ConnectionString; + checkCon(false); + MakeCommands(); + } + static void switchLocal() + { + if (!isLocal) + { + isLocal = true; + conStr = System.Configuration.ConfigurationManager.ConnectionStrings["eDosStation.Properties.Settings.localConnectionString"].ConnectionString; + } + } + static void switchServer() + { + if (isLocal) + { + isLocal = false; + conStr = System.Configuration.ConfigurationManager.ConnectionStrings["eDosStation.Properties.Settings.eDosConnectionString"].ConnectionString; + } + } + + static DataSet1TableAdapters.GetTaskInfoTableAdapter TaskInfoTa() + { + var ta = new DataSet1TableAdapters.GetTaskInfoTableAdapter(); + ta.Connection.ConnectionString = conStr; + return ta; + } + + static DataSet1TableAdapters.GetTaskListTableAdapter TaskListTA() + { + var ta = new DataSet1TableAdapters.GetTaskListTableAdapter(); + ta.Connection.ConnectionString = conStr; + return ta; + } + + static DataSet1TableAdapters.CommentOnEventTableAdapter CommentTA() + { + var ta = new DataSet1TableAdapters.CommentOnEventTableAdapter(); + ta.Connection.ConnectionString = conStr; + return ta; + } + + static public System.Data.SqlClient.SqlConnection getCon() + { + checkCon(true); + return Connection; + } + + + static void MakeCommands () + { + VisitInitCommand = new System.Data.SqlClient.SqlCommand("VisitInit", Connection); + VisitInitCommand.CommandType = System.Data.CommandType.StoredProcedure; + var VisitExitCommand.Parameters["ID_Station", SqlDbType.Int, 4); VisitInitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["PersID", SqlDbType.Int, 4); VisitInitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["ID_Task", SqlDbType.Int, 4); VisitInitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["Inst_CODE", SqlDbType.Int, 4); VisitInitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["EPD_InternalID", SqlDbType.Int, 4); VisitInitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["isBG", SqlDbType.Bit, 4); VisitInitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["EPDVisitID", SqlDbType.Int, 4); pa.Direction = ParameterDirection.Output; VisitInitCommand.Parameters.Add(pa); + + + VisitExitCommand = new SqlCommand("VisitExit", Connection); + VisitExitCommand.CommandType = CommandType.StoredProcedure; + VisitExitCommand.Parameters["EPDVisitID", SqlDbType.Int, 4); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["HP07", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["HP10", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa); + + VisitExitCommand.Parameters["Hp07Total", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["Hp10Total", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa); + + VisitExitCommand.Parameters["Hp07Peak", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["Hp10Peak", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["HP07PeakTime", SqlDbType.DateTime); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["HP10PeakTime", SqlDbType.DateTime); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["K1", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["K2", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["K3", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["K4", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["K5", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["K6", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["SG", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["BC", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["FB", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["HG", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + + VisitExitCommand.Parameters["QualityData", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + + VisitExitCommand.Parameters["D1", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["D2", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["D3", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["D4", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + + VisitExitCommand.Parameters["alarmStatus", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["otherAlarms", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["errorStatus", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + VisitExitCommand.Parameters["operatingStatus", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa); + + } + + static public void VisitExit(int EpdVisitID, EpdBaseClr.Epd2 ep) + { + VisitExitCommand.Parameters["EPDVisitID"].Value = EpdVisitID; + VisitExitCommand.Parameters["HP07"].Value = ep.Hp07; + VisitExitCommand.Parameters["HP10"].Value = ep.Hp10; + + VisitExitCommand.Parameters["Hp07Total"].Value = ep.Hp07Total; + VisitExitCommand.Parameters["Hp10Total"].Value = ep.Hp10Total; + + VisitExitCommand.Parameters["Hp07Peak"].Value = ep.Hp07Peak; + VisitExitCommand.Parameters["Hp10Peak"].Value = ep.Hp10Peak; + if (ep.Hp07PeakTime != null) + VisitExitCommand.Parameters["HP07PeakTime"].Value = ep.Hp07PeakTime; + else + VisitExitCommand.Parameters["HP07PeakTime"].Value = DBNull.Value; + if (ep.Hp10PeakTime != null) + VisitExitCommand.Parameters["Hp10PeakTime"].Value = ep.Hp07PeakTime; + else + VisitExitCommand.Parameters["Hp10PeakTime"].Value = DBNull.Value; + + VisitExitCommand.Parameters["K1"].Value = ep.K1; + VisitExitCommand.Parameters["K2"].Value = ep.K2; + VisitExitCommand.Parameters["K3"].Value = ep.K3; + VisitExitCommand.Parameters["K4"].Value = ep.K4; + VisitExitCommand.Parameters["K5"].Value = ep.K5; + VisitExitCommand.Parameters["K6"].Value = ep.K6; + VisitExitCommand.Parameters["SG"].Value = ep.SG; + VisitExitCommand.Parameters["BC"].Value = ep.BC; + VisitExitCommand.Parameters["FB"].Value = ep.FB; + VisitExitCommand.Parameters["HG"].Value = ep.HG; + + VisitExitCommand.Parameters["QualityData"].Value = ep.QualityData; + + VisitExitCommand.Parameters["D1"].Value = ep.D1; + VisitExitCommand.Parameters["D2"].Value = ep.D2; + VisitExitCommand.Parameters["D3"].Value = ep.D3; + VisitExitCommand.Parameters["D4"].Value = ep.D4; + + VisitExitCommand.Parameters["alarmStatus"].Value = ep.alarmStatus; + VisitExitCommand.Parameters["otherAlarms"].Value = ep.otherAlarms; + VisitExitCommand.Parameters["errorStatus"].Value = ep.errorStatus; + VisitExitCommand.Parameters["operatingStatus"].Value = ep.operatingStatus; + + checkCon(true); + VisitExitCommand.ExecuteNonQuery(); + Connection.Close(); + } + + static public void FillComment(DataSet1.CommentOnEventDataTable dtCOE) + { + if (dtCOE == null) dtCOE = new DataSet1.CommentOnEventDataTable(); + using (var dt = new DataSet1TableAdapters.CommentOnEventTableAdapter()) + { + dt.Connection.ConnectionString = conStr; + dt.Fill(dtCOE); + } + + } + + + } +} diff --git a/eDosStation/Properties/Settings.Designer.cs b/eDosStation/Properties/Settings.Designer.cs index 1a5febe..cd3f20c 100644 --- a/eDosStation/Properties/Settings.Designer.cs +++ b/eDosStation/Properties/Settings.Designer.cs @@ -126,5 +126,16 @@ namespace eDosStation.Properties { return ((string)(this["eDosConnectionString"])); } } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=HPHDB;Initial Catalog=eDosLocal;User ID=eDosStation;Password=Infopla+" + + "8")] + public string localConnectionString { + get { + return ((string)(this["localConnectionString"])); + } + } } } diff --git a/eDosStation/Properties/Settings.settings b/eDosStation/Properties/Settings.settings index 2ae1973..de081b0 100644 --- a/eDosStation/Properties/Settings.settings +++ b/eDosStation/Properties/Settings.settings @@ -39,5 +39,12 @@ </SerializableConnectionString> Data Source=HPHDB;Initial Catalog=eDos;User ID=eDosStation;Password=Infopla+8 + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=HPHDB;Initial Catalog=eDosLocal;User ID=eDosStation;Password=Infopla+8</ConnectionString> +</SerializableConnectionString> + Data Source=HPHDB;Initial Catalog=eDosLocal;User ID=eDosStation;Password=Infopla+8 + \ No newline at end of file diff --git a/eDosStation/eDosStation.csproj b/eDosStation/eDosStation.csproj index 446f398..8628576 100644 --- a/eDosStation/eDosStation.csproj +++ b/eDosStation/eDosStation.csproj @@ -30,6 +30,8 @@ 1.0.0.5 false false + + x86 @@ -132,6 +134,9 @@ + + DataSet1.xsd + True True @@ -147,6 +152,7 @@ InstMessage.xaml + Settings.xaml @@ -218,6 +224,14 @@ ResXFileCodeGenerator Resources.Designer.cs + + App.config + true + + + App.config + true + DataSet1.xsd @@ -234,6 +248,7 @@ Always + SettingsSingleFileGenerator Settings.Designer.cs @@ -242,6 +257,7 @@ Designer + true @@ -280,4 +296,11 @@ + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + \ No newline at end of file diff --git a/eDosStation/packages.config b/eDosStation/packages.config new file mode 100644 index 0000000..4855467 --- /dev/null +++ b/eDosStation/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file