From eafb8ce7b3d936e79cb899883debfe1699cffef4 Mon Sep 17 00:00:00 2001 From: Luc Vandenbroucke Date: Tue, 19 Apr 2022 14:58:36 +0200 Subject: [PATCH] comments --- eDosLocal/UpdateLocal.sql | 7 +- eDosLocal/Updates.sql | 419 +++--- eDosStation.sln | 694 +++++----- eDosStation/DataInterface.cs | 118 +- eDosStation/EntryBadge.xaml.cs | 1692 ++++++++++++------------ eDosStation/Properties/AssemblyInfo.cs | 4 +- eDosStation/Settings.xaml.cs | 4 - eDosStation/Station.cs | 1 - eDosStation/User.cs | 98 +- eDosStation/extensions.cs | 46 + syncEdosLocal/Program.cs | 82 +- 11 files changed, 1640 insertions(+), 1525 deletions(-) diff --git a/eDosLocal/UpdateLocal.sql b/eDosLocal/UpdateLocal.sql index 96ce3b9..1bcdeb1 100644 --- a/eDosLocal/UpdateLocal.sql +++ b/eDosLocal/UpdateLocal.sql @@ -71,7 +71,12 @@ AS BEGIN SET @ID_Station = @EPDVisitID % 100; SET @ID_Visit = @EPDVisitID / 100; - DECLARE @isAlarm BIT = CASE WHEN ISNULL(@alarmStatus, 0) <> 0 OR ISNULL(@otherAlarms,0)<>0 + DECLARE @isAlarm BIT = CASE WHEN ISNULL(@alarmStatus, 0) <> 0 + OR ISNULL(@otherAlarms, 0) <> 0 + OR ISNULL(@eDosDose07Warning, 0) <> 0 + OR ISNULL(@eDosRate07Warning, 0) <> 0 + OR ISNULL(@eDosDose10Warning, 0) <> 0 + OR ISNULL(@eDosRate10Warning, 0) <> 0 OR ISNULL(@eDosDose07Alarm, 0) <> 0 OR ISNULL(@eDosRate07Alarm, 0) <> 0 OR ISNULL(@eDosDose10Alarm, 0) <> 0 diff --git a/eDosLocal/Updates.sql b/eDosLocal/Updates.sql index 5158696..8063b89 100644 --- a/eDosLocal/Updates.sql +++ b/eDosLocal/Updates.sql @@ -7,70 +7,86 @@ GO SET QUOTED_IDENTIFIER ON; GO + +USE [eDosLocal]; +GO + +/****** Object: StoredProcedure [dbo].[GetPersonInfo] Script Date: 19/04/2022 13:08:50 ******/ +SET ANSI_NULLS ON; +GO + +SET QUOTED_IDENTIFIER ON; +GO + ALTER PROCEDURE [dbo].[GetPersonInfo] @CSN CHAR(14) = NULL, - @PersID INT = NULL -AS ---DECLARE @PersID INT = null, @CSN CHAR(14) = 'TP10'; -DECLARE - @lid_station INT, - @lid_visit INT; + @PersID INT = NULL, + @AllowMultipleEPD BIT = 0 +AS BEGIN + --DECLARE @PersID INT = null, @CSN CHAR(14) = 'TP10'; + DECLARE + @lid_station INT, + @lid_visit INT; + + IF @PersID IS NULL + SELECT + @PersID = [PersID] + FROM [dbo].[PersonInfoSnapshot] + WHERE [CSN] = @CSN COLLATE SQL_Latin1_General_CP850_BIN; + + SELECT TOP(1) + @lid_station = [ID_Station], + @lid_visit = [ID_Visit] + FROM [dbo].[Visit] + WHERE [PersID] = @PersID + AND [ReturnTime] IS NULL + AND [EntryTime] > DATEADD(YEAR, -1, GETDATE()); -IF @PersID IS NULL SELECT - @PersID = [PersID] - FROM [dbo].[PersonInfoSnapshot] - WHERE [CSN] = @CSN COLLATE SQL_Latin1_General_CP850_BIN; + [a].[PersID], + [a].[Type], + [a].[CSN], + [a].[FirstName], + [a].[LastName], + [a].[NickName], + [AccessAllow] = CASE WHEN @AllowMultipleEPD = 1 + AND [a].[hasEPD] = 1 THEN 0 ELSE [a].[AccessAllow] END, + [a].[Language], + [a].[MarginHP10_M], + [a].[MarginHP10_Y], + [a].[Margin], + [a].[VisitIDLocked], + [a].[ID_CommentToPerson], + [a].[Comment], + [a].[Deleted], + [ReasonNoAccess] = CASE WHEN @AllowMultipleEPD = 1 + AND [a].[hasEPD] = 1 THEN 'EPD not returned' ELSE [a].[ReasonNoAccess] END, + [a].[Dose_52W_microSv], + [a].[hasEPD], + [activeStation] = @lid_station, + [activeVisit] = @lid_visit + FROM(SELECT + [p].[PersID], + [p].[Type], + [p].[CSN], + [p].[FirstName], + [p].[LastName], + [p].[NickName], + [p].[AccessAllow], + [p].[Language], + [p].[MarginHP10_M], + [p].[MarginHP10_Y], + [p].[Margin], + [p].[VisitIDLocked], + [p].[ID_CommentToPerson], + [p].[Comment], + [p].[Deleted], + [p].[ReasonNoAccess], + [p].[Dose_52W_microSv], + [hasEPD] = CONVERT(BIT, CASE WHEN @lid_visit IS NOT NULL THEN 1 ELSE 0 END) + FROM [dbo].[PersonInfoSnapshot] [p] + WHERE [p].[PersID] = @PersID) [a]; +END; -SELECT TOP(1) - @lid_station = [ID_Station], - @lid_visit = [ID_Visit] -FROM [dbo].[Visit] -WHERE [PersID] = @PersID - AND [ReturnTime] IS NULL - AND [EntryTime] > DATEADD(YEAR, -1, GETDATE()); - -SELECT - [a].[PersID], - [a].[Type], - [a].[CSN], - [a].[FirstName], - [a].[LastName], - [a].[NickName], - [AccessAllow] = CASE WHEN [a].[hasEPD] = 1 THEN 0 ELSE [a].[AccessAllow] END, - [a].[Language], - [a].[MarginHP10_M], - [a].[MarginHP10_Y], - [a].[Margin], - [a].[VisitIDLocked], - [a].[ID_CommentToPerson], - [a].[Comment], - [a].[Deleted], - [ReasonNoAccess] = CASE WHEN [a].[hasEPD] = 1 THEN 'EPD not returned' ELSE [a].[ReasonNoAccess] END, - [a].[Dose_52W_microSv], - [a].[hasEPD], - [activeStation] = @lid_station, - [activeVisit] = @lid_visit -FROM(SELECT - [p].[PersID], - [p].[Type], - [p].[CSN], - [p].[FirstName], - [p].[LastName], - [p].[NickName], - [p].[AccessAllow], - [p].[Language], - [p].[MarginHP10_M], - [p].[MarginHP10_Y], - [p].[Margin], - [p].[VisitIDLocked], - [p].[ID_CommentToPerson], - [p].[Comment], - [p].[Deleted], - [p].[ReasonNoAccess], - [p].[Dose_52W_microSv], - [hasEPD] = CONVERT(BIT, CASE WHEN @lid_visit IS NOT NULL THEN 1 ELSE 0 END) - FROM [dbo].[PersonInfoSnapshot] [p] - WHERE [p].[PersID] = @PersID) [a]; go ---- Luc 2022-03-25 @@ -178,151 +194,158 @@ IF NOT EXISTS (SELECT END; GO -ALTER PROCEDURE [syncLoc].[UpdateRemoteReturns] @ID_LocalStation INT = NULL -AS --- Luc 2022-03-25 ---DECLARE @ID_LocalStation INT = 9; -DECLARE @pcnr VARCHAR(20); +ALTER PROCEDURE [syncLoc].[UpdateRemoteReturns] @ID_LocalStation INT = NULL, + @pcnr VARCHAR(20) = NULL +AS BEGIN + -- Luc 2022-03-25 + --DECLARE @ID_LocalStation INT = 9; + --DECLARE @pcnr VARCHAR(20); + IF @pcnr = 'EDOS-SCH' SET @pcnr = 'EDOS-WSCH'; + ELSE IF @pcnr = 'DESKTOP-CCDL4A3' SET @pcnr = 'EDOS-LNK'; + ELSE IF @pcnr = 'EDOS-ZZZ' SET @pcnr = 'EDOS-LSCH'; -SELECT @pcnr = @@serverName; + IF @ID_LocalStation IS NULL BEGIN + IF @pcnr IS NULL SET @pcnr = @@serverName; -IF @pcnr = 'EDOS-SCH' SET @pcnr = 'EDOS-WSCH'; -ELSE IF @pcnr = 'DESKTOP-CCDL4A3' SET @pcnr = 'EDOS-LNK'; -ELSE IF @pcnr = 'EDOS-ZZZ' SET @pcnr = 'EDOS-LSCH'; + IF @pcnr = 'EDOS-SCH' SET @pcnr = 'EDOS-WSCH'; + ELSE IF @pcnr = 'DESKTOP-CCDL4A3' SET @pcnr = 'EDOS-LNK'; + ELSE IF @pcnr = 'EDOS-ZZZ' SET @pcnr = 'EDOS-LSCH'; + + SELECT + @ID_LocalStation = [ID_Station] + FROM [dbo].[StationSettings] + WHERE [PCNr] = @pcnr; + END; -IF @ID_LocalStation IS NULL SELECT - @ID_LocalStation = [id_station] - FROM [dbo].[stationsettings] - WHERE [pcnr] = @pcnr; + @ID_LocalStation, + [PCNr] + FROM [dbo].[StationSettings] + WHERE [ID_Station] = @ID_LocalStation; -SELECT - @ID_LocalStation, - [pcnr] -FROM [dbo].[stationsettings] -WHERE [id_station] = @ID_LocalStation; + TRUNCATE TABLE [syncLoc].[compareVisit]; -TRUNCATE TABLE [syncLoc].[compareVisit]; + INSERT [syncLoc].[compareVisit]([ID_Station], [ID_Visit], [Inst_CODE], [PersID], [ID_Task], [EntryTime], [ReturnTime], [Hp10Dose], [Hp07Dose], [Hp10Total], [Hp07Total], [Hp10Peak], [Hp07Peak], [Hp10Time], [Hp07Time], [ID_EPD], [QualityData], [K1], [K2], [K3], [K4], [K5], [K6], [SG], [BC], [FB], [HG], [alarmStatus], [otherAlarms], [errorStatus], [operatingStatus], [isBG], [isComplete], [isDeleted], [isAlarm], [isAlarmCleared], [isManualExit], [ID_Station_Return], [ENTRY_EPD_CLOCK], [EXIT_EPD_CLOCK], [TIME_LOST], [epdID], [eDosBatteryWarning], [eDosDose07Warning], [eDosDose07Alarm], [eDosRate07Warning], [eDosRate07Alarm], [eDosDose10Warning], [eDosDose10Alarm], [eDosRate10Warning], [eDosRate10Alarm]) + SELECT + [v].[ID_Station], + [v].[ID_Visit], + [v].[Inst_CODE], + [v].[PersID], + [v].[ID_Task], + [v].[EntryTime], + [v].[ReturnTime], + [v].[Hp10Dose], + [v].[Hp07Dose], + [v].[Hp10Total], + [v].[Hp07Total], + [v].[Hp10Peak], + [v].[Hp07Peak], + [v].[Hp10Time], + [v].[Hp07Time], + [v].[ID_EPD], + [v].[QualityData], + [v].[K1], + [v].[K2], + [v].[K3], + [v].[K4], + [v].[K5], + [v].[K6], + [v].[SG], + [v].[BC], + [v].[FB], + [v].[HG], + [v].[alarmStatus], + [v].[otherAlarms], + [v].[errorStatus], + [v].[operatingStatus], + [v].[isBG], + [v].[isComplete], + [v].[isDeleted], + [v].[isAlarm], + [v].[isAlarmCleared], + [v].[isManualExit], + [v].[ID_Station_Return], + [v].[ENTRY_EPD_CLOCK], + [v].[EXIT_EPD_CLOCK], + [v].[TIME_LOST], + [v].[epdID], + [v].[eDosBatteryWarning], + [v].[eDosDose07Warning], + [v].[eDosDose07Alarm], + [v].[eDosRate07Warning], + [v].[eDosRate07Alarm], + [v].[eDosDose10Warning], + [v].[eDosDose10Alarm], + [v].[eDosRate10Warning], + [v].[eDosRate10Alarm] + FROM [EDOS].[edos].[dbo].[Visit] [v] + INNER JOIN(SELECT + [ID_Visit] + FROM [dbo].[Visit] + WHERE [ID_Station] = @ID_LocalStation + AND [ReturnTime] IS NULL) [i] ON [i].[ID_Visit] = [v].[ID_Visit] + WHERE [v].[ID_Station] = @ID_LocalStation + AND [v].[ReturnTime] IS NOT NULL; -INSERT [syncLoc].[compareVisit]([ID_Station], [ID_Visit], [Inst_CODE], [PersID], [ID_Task], [EntryTime], [ReturnTime], [Hp10Dose], [Hp07Dose], [Hp10Total], [Hp07Total], [Hp10Peak], [Hp07Peak], [Hp10Time], [Hp07Time], [ID_EPD], [QualityData], [K1], [K2], [K3], [K4], [K5], [K6], [SG], [BC], [FB], [HG], [alarmStatus], [otherAlarms], [errorStatus], [operatingStatus], [isBG], [isComplete], [isDeleted], [isAlarm], [isAlarmCleared], [isManualExit], [ID_Station_Return], [ENTRY_EPD_CLOCK], [EXIT_EPD_CLOCK], [TIME_LOST], [epdID], [eDosBatteryWarning], [eDosDose07Warning], [eDosDose07Alarm], [eDosRate07Warning], [eDosRate07Alarm], [eDosDose10Warning], [eDosDose10Alarm], [eDosRate10Warning], [eDosRate10Alarm]) -SELECT - [v].[ID_Station], - [v].[ID_Visit], - [v].[Inst_CODE], - [v].[PersID], - [v].[ID_Task], - [v].[EntryTime], - [v].[ReturnTime], - [v].[Hp10Dose], - [v].[Hp07Dose], - [v].[Hp10Total], - [v].[Hp07Total], - [v].[Hp10Peak], - [v].[Hp07Peak], - [v].[Hp10Time], - [v].[Hp07Time], - [v].[ID_EPD], - [v].[QualityData], - [v].[K1], - [v].[K2], - [v].[K3], - [v].[K4], - [v].[K5], - [v].[K6], - [v].[SG], - [v].[BC], - [v].[FB], - [v].[HG], - [v].[alarmStatus], - [v].[otherAlarms], - [v].[errorStatus], - [v].[operatingStatus], - [v].[isBG], - [v].[isComplete], - [v].[isDeleted], - [v].[isAlarm], - [v].[isAlarmCleared], - [v].[isManualExit], - [v].[ID_Station_Return], - [v].[ENTRY_EPD_CLOCK], - [v].[EXIT_EPD_CLOCK], - [v].[TIME_LOST], - [v].[epdID], - [v].[eDosBatteryWarning], - [v].[eDosDose07Warning], - [v].[eDosDose07Alarm], - [v].[eDosRate07Warning], - [v].[eDosRate07Alarm], - [v].[eDosDose10Warning], - [v].[eDosDose10Alarm], - [v].[eDosRate10Warning], - [v].[eDosRate10Alarm] -FROM [EDOS].[edos].[dbo].[visit] [v] - INNER JOIN(SELECT - [ID_Visit] - FROM [dbo].[Visit] - WHERE [ID_Station] = @ID_LocalStation - AND [ReturnTime] IS NULL) [i] ON [i].[ID_Visit] = [v].[ID_Visit] -WHERE [v].[id_station] = @ID_LocalStation - AND [v].[returntime] IS NOT NULL; - -UPDATE - [dbo].[Visit] -SET - [ReturnTime] = [c].[ReturnTime], - [Hp10Dose] = [c].[Hp10Dose], - [Hp07Dose] = [c].[Hp07Dose], - [Hp10Total] = [c].[Hp10Total], - [Hp07Total] = [c].[Hp07Total], - [Hp10Peak] = [c].[Hp10Peak], - [Hp07Peak] = [c].[Hp07Peak], - [Hp10Time] = [c].[Hp10Time], - [Hp07Time] = [c].[Hp07Time], - [QualityData] = [c].[QualityData], - [K1] = [c].[K1], - [K2] = [c].[K2], - [K3] = [c].[K3], - [K4] = [c].[K4], - [K5] = [c].[K5], - [K6] = [c].[K6], - [SG] = [c].[SG], - [BC] = [c].[BC], - [FB] = [c].[FB], - [HG] = [c].[HG], - [alarmStatus] = [c].[alarmStatus], - [otherAlarms] = [c].[otherAlarms], - [errorStatus] = [c].[errorStatus], - [operatingStatus] = [c].[operatingStatus], - [isComplete] = [c].[isComplete], - [isDeleted] = [c].[isDeleted], - [isAlarm] = [c].[isAlarm], - [isAlarmCleared] = [c].[isAlarmCleared], - [isManualExit] = ISNULL([c].[isManualExit], [v].[isManualExit]), - [ID_Station_Return] = ISNULL([c].[ID_Station_Return], [v].[ID_Station_Return]), - [EXIT_EPD_CLOCK] = [c].[EXIT_EPD_CLOCK], - [eDosBatteryWarning] = CASE WHEN [v].[eDosBatteryWarning] IS NULL - OR [c].[eDosBatteryWarning] = 1 THEN [c].[eDosBatteryWarning] ELSE [v].[eDosBatteryWarning] END, - [eDosDose07Warning] = CASE WHEN [v].[eDosDose07Warning] IS NULL - OR [c].[eDosDose07Warning] = 1 THEN [c].[eDosDose07Warning] ELSE [v].[eDosDose07Warning] END, - [eDosDose07Alarm] = CASE WHEN [v].[eDosDose07Alarm] IS NULL - OR [c].[eDosDose07Alarm] = 1 THEN [c].[eDosDose07Alarm] ELSE [v].[eDosDose07Alarm] END, - [eDosRate07Warning] = CASE WHEN [v].[eDosRate07Warning] IS NULL - OR [c].[eDosRate07Warning] = 1 THEN [c].[eDosRate07Warning] ELSE [v].[eDosRate07Warning] END, - [eDosRate07Alarm] = CASE WHEN [v].[eDosRate07Alarm] IS NULL - OR [c].[eDosRate07Alarm] = 1 THEN [c].[eDosRate07Alarm] ELSE [v].[eDosRate07Alarm] END, - [eDosDose10Warning] = CASE WHEN [v].[eDosDose10Warning] IS NULL - OR [c].[eDosDose10Warning] = 1 THEN [c].[eDosDose10Warning] ELSE [v].[eDosDose10Warning] END, - [eDosDose10Alarm] = CASE WHEN [v].[eDosDose10Alarm] IS NULL - OR [c].[eDosDose10Alarm] = 1 THEN [c].[eDosDose10Alarm] ELSE [v].[eDosDose10Alarm] END, - [eDosRate10Warning] = CASE WHEN [v].[eDosRate10Warning] IS NULL - OR [c].[eDosRate10Warning] = 1 THEN [c].[eDosRate10Warning] ELSE [v].[eDosRate10Warning] END, - [eDosRate10Alarm] = CASE WHEN [v].[eDosRate10Alarm] IS NULL - OR [c].[eDosRate10Alarm] = 1 THEN [c].[eDosRate10Alarm] ELSE [v].[eDosRate10Alarm] END -FROM [dbo].[Visit] [v] - INNER JOIN [syncLoc].[compareVisit] [c] ON [c].[ID_Station] = [v].[ID_Station] - AND [c].[ID_Visit] = [v].[ID_Visit] -WHERE [v].[ReturnTime] IS NULL - AND [v].[isComplete] = 0; + UPDATE + [dbo].[Visit] + SET + [ReturnTime] = [c].[ReturnTime], + [Hp10Dose] = [c].[Hp10Dose], + [Hp07Dose] = [c].[Hp07Dose], + [Hp10Total] = [c].[Hp10Total], + [Hp07Total] = [c].[Hp07Total], + [Hp10Peak] = [c].[Hp10Peak], + [Hp07Peak] = [c].[Hp07Peak], + [Hp10Time] = [c].[Hp10Time], + [Hp07Time] = [c].[Hp07Time], + [QualityData] = [c].[QualityData], + [K1] = [c].[K1], + [K2] = [c].[K2], + [K3] = [c].[K3], + [K4] = [c].[K4], + [K5] = [c].[K5], + [K6] = [c].[K6], + [SG] = [c].[SG], + [BC] = [c].[BC], + [FB] = [c].[FB], + [HG] = [c].[HG], + [alarmStatus] = [c].[alarmStatus], + [otherAlarms] = [c].[otherAlarms], + [errorStatus] = [c].[errorStatus], + [operatingStatus] = [c].[operatingStatus], + [isComplete] = [c].[isComplete], + [isDeleted] = [c].[isDeleted], + [isAlarm] = [c].[isAlarm], + [isAlarmCleared] = [c].[isAlarmCleared], + [isManualExit] = CASE WHEN [v].[isManualExit] IS NULL + OR [c].[isManualExit] = 1 THEN [c].[isManualExit] ELSE [v].[isManualExit] END, + [ID_Station_Return] = ISNULL([c].[ID_Station_Return], [v].[ID_Station_Return]), + [EXIT_EPD_CLOCK] = [c].[EXIT_EPD_CLOCK], + [eDosBatteryWarning] = CASE WHEN [v].[eDosBatteryWarning] IS NULL + OR [c].[eDosBatteryWarning] = 1 THEN [c].[eDosBatteryWarning] ELSE [v].[eDosBatteryWarning] END, + [eDosDose07Warning] = CASE WHEN [v].[eDosDose07Warning] IS NULL + OR [c].[eDosDose07Warning] = 1 THEN [c].[eDosDose07Warning] ELSE [v].[eDosDose07Warning] END, + [eDosDose07Alarm] = CASE WHEN [v].[eDosDose07Alarm] IS NULL + OR [c].[eDosDose07Alarm] = 1 THEN [c].[eDosDose07Alarm] ELSE [v].[eDosDose07Alarm] END, + [eDosRate07Warning] = CASE WHEN [v].[eDosRate07Warning] IS NULL + OR [c].[eDosRate07Warning] = 1 THEN [c].[eDosRate07Warning] ELSE [v].[eDosRate07Warning] END, + [eDosRate07Alarm] = CASE WHEN [v].[eDosRate07Alarm] IS NULL + OR [c].[eDosRate07Alarm] = 1 THEN [c].[eDosRate07Alarm] ELSE [v].[eDosRate07Alarm] END, + [eDosDose10Warning] = CASE WHEN [v].[eDosDose10Warning] IS NULL + OR [c].[eDosDose10Warning] = 1 THEN [c].[eDosDose10Warning] ELSE [v].[eDosDose10Warning] END, + [eDosDose10Alarm] = CASE WHEN [v].[eDosDose10Alarm] IS NULL + OR [c].[eDosDose10Alarm] = 1 THEN [c].[eDosDose10Alarm] ELSE [v].[eDosDose10Alarm] END, + [eDosRate10Warning] = CASE WHEN [v].[eDosRate10Warning] IS NULL + OR [c].[eDosRate10Warning] = 1 THEN [c].[eDosRate10Warning] ELSE [v].[eDosRate10Warning] END, + [eDosRate10Alarm] = CASE WHEN [v].[eDosRate10Alarm] IS NULL + OR [c].[eDosRate10Alarm] = 1 THEN [c].[eDosRate10Alarm] ELSE [v].[eDosRate10Alarm] END + FROM [dbo].[Visit] [v] + INNER JOIN [syncLoc].[compareVisit] [c] ON [c].[ID_Station] = [v].[ID_Station] + AND [c].[ID_Visit] = [v].[ID_Visit] + WHERE [v].[ReturnTime] IS NULL + AND [v].[isComplete] = 0; +END; GO GRANT EXECUTE ON [syncLoc].[UpdateRemoteReturns] TO [eDosStation]; GO diff --git a/eDosStation.sln b/eDosStation.sln index 48ab0ca..3e24ebd 100644 --- a/eDosStation.sln +++ b/eDosStation.sln @@ -1,347 +1,347 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31205.134 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EpdBase", "EpdBase\EpdBase.vcxproj", "{3114A047-7562-42FE-94DE-2418EF19AD9A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestEdosBase", "TestEdosBase\TestEdosBase.vcxproj", "{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestDirect", "TestDirect\TestDirect.vcxproj", "{3655B312-F7C2-4825-BD5F-E087F6AF2D90}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eDosStation", "eDosStation\eDosStation.csproj", "{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EpdBaseClr", "EpdBaseClr\EpdBaseClr.vcxproj", "{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OkReadBadge", "OkReadBadge\OkReadBadge.vcxproj", "{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegisterBAdge", "RegisterBAdge\RegisterBAdge.csproj", "{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "syncEdosLocal", "syncEdosLocal\syncEdosLocal.csproj", "{B2264FF1-0F36-401B-91FE-DB3087CE05F5}" -EndProject -Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "eDosSetup", "SetupProject1\eDosSetup.wixproj", "{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestMK3", "TestMK3\TestMK3.vcxproj", "{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MK3", "MK3\MK3.vcxproj", "{CFD0F68D-7EF9-4541-B55A-2A557D84295B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestEPD3Dll", "TestEPD3Dll\TestEPD3Dll.csproj", "{37EE9D5D-1204-4B3F-879D-AAF5A9181085}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Epd3Base", "EpdBase3\EpdBase3.vcxproj", "{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eDosPrep", "eDosPrep\eDosPrep.vcxproj", "{294068AF-EA7B-4851-97B2-2AB5F64167D9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheckRemoteeDosLocal", "CheckRemoteeDosLocal\CheckRemoteeDosLocal.csproj", "{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}" -EndProject -Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "eDosLocal", "eDosLocal\eDosLocal.sqlproj", "{3A150025-D770-4521-BA21-16843B2D5359}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testing", "Testing\Testing.csproj", "{814E327A-4148-44D8-9EB0-A4190A454540}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|ARM = Debug|ARM - Debug|ARM64 = Debug|ARM64 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|ARM = Release|ARM - Release|ARM64 = Release|ARM64 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|Any CPU.Build.0 = Debug|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|ARM.ActiveCfg = Debug|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|ARM64.ActiveCfg = Debug|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x64.ActiveCfg = Debug|x64 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x64.Build.0 = Debug|x64 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x86.ActiveCfg = Debug|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x86.Build.0 = Debug|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|Any CPU.ActiveCfg = Release|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|Any CPU.Build.0 = Release|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|ARM.ActiveCfg = Release|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|ARM64.ActiveCfg = Release|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x64.ActiveCfg = Release|x64 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x64.Build.0 = Release|x64 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x86.ActiveCfg = Release|Win32 - {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x86.Build.0 = Release|Win32 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|ARM.ActiveCfg = Debug|Win32 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|ARM64.ActiveCfg = Debug|Win32 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|x64.ActiveCfg = Debug|x64 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|x64.Build.0 = Debug|x64 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|x86.ActiveCfg = Debug|Win32 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|Any CPU.ActiveCfg = Release|Win32 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|ARM.ActiveCfg = Release|Win32 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|ARM64.ActiveCfg = Release|Win32 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x64.ActiveCfg = Release|x64 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x64.Build.0 = Release|x64 - {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x86.ActiveCfg = Release|Win32 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|ARM.ActiveCfg = Debug|Win32 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|ARM64.ActiveCfg = Debug|Win32 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|x64.ActiveCfg = Debug|x64 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|x64.Build.0 = Debug|x64 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|x86.ActiveCfg = Debug|Win32 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|Any CPU.ActiveCfg = Release|Win32 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|ARM.ActiveCfg = Release|Win32 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|ARM64.ActiveCfg = Release|Win32 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x64.ActiveCfg = Release|x64 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x64.Build.0 = Release|x64 - {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x86.ActiveCfg = Release|Win32 - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM.ActiveCfg = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM.Build.0 = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM64.Build.0 = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x64.ActiveCfg = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x64.Build.0 = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x86.ActiveCfg = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x86.Build.0 = Debug|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|Any CPU.Build.0 = Release|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM.ActiveCfg = Release|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM.Build.0 = Release|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM64.ActiveCfg = Release|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM64.Build.0 = Release|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x64.ActiveCfg = Release|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x64.Build.0 = Release|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x86.ActiveCfg = Release|Any CPU - {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x86.Build.0 = Release|Any CPU - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|Any CPU.Build.0 = Debug|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|ARM.ActiveCfg = Debug|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|ARM64.ActiveCfg = Debug|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x64.ActiveCfg = Debug|x64 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x64.Build.0 = Debug|x64 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x86.ActiveCfg = Debug|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x86.Build.0 = Debug|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|Any CPU.ActiveCfg = Release|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|Any CPU.Build.0 = Release|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|ARM.ActiveCfg = Release|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|ARM64.ActiveCfg = Release|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x64.ActiveCfg = Release|x64 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x64.Build.0 = Release|x64 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x86.ActiveCfg = Release|Win32 - {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x86.Build.0 = Release|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|Any CPU.Build.0 = Debug|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|ARM.ActiveCfg = Debug|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|ARM64.ActiveCfg = Debug|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x64.ActiveCfg = Debug|x64 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x64.Build.0 = Debug|x64 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x86.ActiveCfg = Debug|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|Any CPU.ActiveCfg = Release|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|Any CPU.Build.0 = Release|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|ARM.ActiveCfg = Release|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|ARM64.ActiveCfg = Release|Win32 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|x64.ActiveCfg = Release|x64 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|x64.Build.0 = Release|x64 - {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|x86.ActiveCfg = Release|Win32 - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM.ActiveCfg = Debug|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM.Build.0 = Debug|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM64.Build.0 = Debug|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|x64.ActiveCfg = Debug|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|x64.Build.0 = Debug|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|x86.ActiveCfg = Debug|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|Any CPU.Build.0 = Release|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM.ActiveCfg = Release|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM.Build.0 = Release|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM64.ActiveCfg = Release|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM64.Build.0 = Release|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|x64.ActiveCfg = Release|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|x64.Build.0 = Release|Any CPU - {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|x86.ActiveCfg = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM.ActiveCfg = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM.Build.0 = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM64.Build.0 = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x64.ActiveCfg = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x64.Build.0 = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x86.ActiveCfg = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x86.Build.0 = Debug|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|Any CPU.Build.0 = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM.ActiveCfg = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM.Build.0 = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM64.ActiveCfg = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM64.Build.0 = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x64.ActiveCfg = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x64.Build.0 = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x86.ActiveCfg = Release|Any CPU - {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x86.Build.0 = Release|Any CPU - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|Any CPU.ActiveCfg = Debug|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|ARM.ActiveCfg = Debug|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|ARM64.ActiveCfg = Debug|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|x64.ActiveCfg = Debug|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|x86.ActiveCfg = Debug|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|x86.Build.0 = Debug|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|Any CPU.ActiveCfg = Release|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|ARM.ActiveCfg = Release|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|ARM64.ActiveCfg = Release|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|x64.ActiveCfg = Release|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|x86.ActiveCfg = Release|x86 - {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|x86.Build.0 = Release|x86 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|ARM.ActiveCfg = Debug|Win32 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|ARM64.ActiveCfg = Debug|Win32 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x64.ActiveCfg = Debug|x64 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x64.Build.0 = Debug|x64 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x86.ActiveCfg = Debug|Win32 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x86.Build.0 = Debug|Win32 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|Any CPU.ActiveCfg = Release|Win32 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|ARM.ActiveCfg = Release|Win32 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|ARM64.ActiveCfg = Release|Win32 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x64.ActiveCfg = Release|x64 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x64.Build.0 = Release|x64 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x86.ActiveCfg = Release|Win32 - {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x86.Build.0 = Release|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|ARM.ActiveCfg = Debug|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|ARM64.ActiveCfg = Debug|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x64.ActiveCfg = Debug|x64 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x64.Build.0 = Debug|x64 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x86.ActiveCfg = Debug|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x86.Build.0 = Debug|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|Any CPU.ActiveCfg = Release|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|ARM.ActiveCfg = Release|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|ARM64.ActiveCfg = Release|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x64.ActiveCfg = Release|x64 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x64.Build.0 = Release|x64 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x86.ActiveCfg = Release|Win32 - {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x86.Build.0 = Release|Win32 - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|Any CPU.Build.0 = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM.ActiveCfg = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM.Build.0 = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM64.Build.0 = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x64.ActiveCfg = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x64.Build.0 = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x86.ActiveCfg = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x86.Build.0 = Debug|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|Any CPU.ActiveCfg = Release|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|Any CPU.Build.0 = Release|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM.ActiveCfg = Release|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM.Build.0 = Release|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM64.ActiveCfg = Release|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM64.Build.0 = Release|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x64.ActiveCfg = Release|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x64.Build.0 = Release|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x86.ActiveCfg = Release|Any CPU - {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x86.Build.0 = Release|Any CPU - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|ARM.ActiveCfg = Debug|Win32 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|ARM64.ActiveCfg = Debug|Win32 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x64.ActiveCfg = Debug|x64 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x64.Build.0 = Debug|x64 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x86.ActiveCfg = Debug|Win32 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x86.Build.0 = Debug|Win32 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|Any CPU.ActiveCfg = Release|Win32 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|ARM.ActiveCfg = Release|Win32 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|ARM64.ActiveCfg = Release|Win32 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x64.ActiveCfg = Release|x64 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x64.Build.0 = Release|x64 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x86.ActiveCfg = Release|Win32 - {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x86.Build.0 = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|ARM.ActiveCfg = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|ARM64.ActiveCfg = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x64.ActiveCfg = Debug|x64 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x64.Build.0 = Debug|x64 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x86.ActiveCfg = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x86.Build.0 = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|Any CPU.ActiveCfg = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|ARM.ActiveCfg = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|ARM64.ActiveCfg = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x64.ActiveCfg = Release|x64 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x64.Build.0 = Release|x64 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x86.ActiveCfg = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x86.Build.0 = Release|Win32 - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|Any CPU.Build.0 = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM.ActiveCfg = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM.Build.0 = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM64.Build.0 = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x64.ActiveCfg = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x64.Build.0 = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x86.ActiveCfg = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x86.Build.0 = Debug|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|Any CPU.ActiveCfg = Release|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|Any CPU.Build.0 = Release|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM.ActiveCfg = Release|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM.Build.0 = Release|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM64.ActiveCfg = Release|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM64.Build.0 = Release|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x64.ActiveCfg = Release|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x64.Build.0 = Release|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x86.ActiveCfg = Release|Any CPU - {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x86.Build.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM.ActiveCfg = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM.Build.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM.Deploy.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM64.Build.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM64.Deploy.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x64.ActiveCfg = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x64.Build.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x64.Deploy.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x86.ActiveCfg = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x86.Build.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x86.Deploy.0 = Debug|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|Any CPU.Build.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|Any CPU.Deploy.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM.ActiveCfg = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM.Build.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM.Deploy.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM64.ActiveCfg = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM64.Build.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM64.Deploy.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|x64.ActiveCfg = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|x64.Build.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|x64.Deploy.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|x86.ActiveCfg = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|x86.Build.0 = Release|Any CPU - {3A150025-D770-4521-BA21-16843B2D5359}.Release|x86.Deploy.0 = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|Any CPU.Build.0 = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM.ActiveCfg = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM.Build.0 = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM64.Build.0 = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x64.ActiveCfg = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x64.Build.0 = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x86.ActiveCfg = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x86.Build.0 = Debug|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|Any CPU.ActiveCfg = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|Any CPU.Build.0 = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM.ActiveCfg = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM.Build.0 = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM64.ActiveCfg = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM64.Build.0 = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|x64.ActiveCfg = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|x64.Build.0 = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|x86.ActiveCfg = Release|Any CPU - {814E327A-4148-44D8-9EB0-A4190A454540}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {72198428-64BB-49B2-BC67-B588947AA1E1} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31205.134 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EpdBase", "EpdBase\EpdBase.vcxproj", "{3114A047-7562-42FE-94DE-2418EF19AD9A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestEdosBase", "TestEdosBase\TestEdosBase.vcxproj", "{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestDirect", "TestDirect\TestDirect.vcxproj", "{3655B312-F7C2-4825-BD5F-E087F6AF2D90}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eDosStation", "eDosStation\eDosStation.csproj", "{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EpdBaseClr", "EpdBaseClr\EpdBaseClr.vcxproj", "{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OkReadBadge", "OkReadBadge\OkReadBadge.vcxproj", "{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegisterBAdge", "RegisterBAdge\RegisterBAdge.csproj", "{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "syncEdosLocal", "syncEdosLocal\syncEdosLocal.csproj", "{B2264FF1-0F36-401B-91FE-DB3087CE05F5}" +EndProject +Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "eDosSetup", "SetupProject1\eDosSetup.wixproj", "{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestMK3", "TestMK3\TestMK3.vcxproj", "{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MK3", "MK3\MK3.vcxproj", "{CFD0F68D-7EF9-4541-B55A-2A557D84295B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestEPD3Dll", "TestEPD3Dll\TestEPD3Dll.csproj", "{37EE9D5D-1204-4B3F-879D-AAF5A9181085}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Epd3Base", "EpdBase3\EpdBase3.vcxproj", "{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eDosPrep", "eDosPrep\eDosPrep.vcxproj", "{294068AF-EA7B-4851-97B2-2AB5F64167D9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheckRemoteeDosLocal", "CheckRemoteeDosLocal\CheckRemoteeDosLocal.csproj", "{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}" +EndProject +Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "eDosLocal", "eDosLocal\eDosLocal.sqlproj", "{3A150025-D770-4521-BA21-16843B2D5359}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testing", "Testing\Testing.csproj", "{814E327A-4148-44D8-9EB0-A4190A454540}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|Any CPU.Build.0 = Debug|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|ARM.ActiveCfg = Debug|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|ARM64.ActiveCfg = Debug|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x64.ActiveCfg = Debug|x64 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x64.Build.0 = Debug|x64 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x86.ActiveCfg = Debug|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x86.Build.0 = Debug|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|Any CPU.ActiveCfg = Release|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|Any CPU.Build.0 = Release|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|ARM.ActiveCfg = Release|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|ARM64.ActiveCfg = Release|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x64.ActiveCfg = Release|x64 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x64.Build.0 = Release|x64 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x86.ActiveCfg = Release|Win32 + {3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x86.Build.0 = Release|Win32 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|ARM.ActiveCfg = Debug|Win32 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|ARM64.ActiveCfg = Debug|Win32 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|x64.ActiveCfg = Debug|x64 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|x64.Build.0 = Debug|x64 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|x86.ActiveCfg = Debug|Win32 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|Any CPU.ActiveCfg = Release|Win32 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|ARM.ActiveCfg = Release|Win32 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|ARM64.ActiveCfg = Release|Win32 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x64.ActiveCfg = Release|x64 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x64.Build.0 = Release|x64 + {7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x86.ActiveCfg = Release|Win32 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|ARM.ActiveCfg = Debug|Win32 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|ARM64.ActiveCfg = Debug|Win32 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|x64.ActiveCfg = Debug|x64 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|x64.Build.0 = Debug|x64 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|x86.ActiveCfg = Debug|Win32 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|Any CPU.ActiveCfg = Release|Win32 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|ARM.ActiveCfg = Release|Win32 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|ARM64.ActiveCfg = Release|Win32 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x64.ActiveCfg = Release|x64 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x64.Build.0 = Release|x64 + {3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x86.ActiveCfg = Release|Win32 + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM.ActiveCfg = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM.Build.0 = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM64.Build.0 = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x64.ActiveCfg = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x64.Build.0 = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x86.ActiveCfg = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x86.Build.0 = Debug|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|Any CPU.Build.0 = Release|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM.ActiveCfg = Release|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM.Build.0 = Release|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM64.ActiveCfg = Release|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM64.Build.0 = Release|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x64.ActiveCfg = Release|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x64.Build.0 = Release|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x86.ActiveCfg = Release|Any CPU + {9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x86.Build.0 = Release|Any CPU + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|Any CPU.Build.0 = Debug|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|ARM.ActiveCfg = Debug|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|ARM64.ActiveCfg = Debug|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x64.ActiveCfg = Debug|x64 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x64.Build.0 = Debug|x64 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x86.ActiveCfg = Debug|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x86.Build.0 = Debug|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|Any CPU.ActiveCfg = Release|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|Any CPU.Build.0 = Release|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|ARM.ActiveCfg = Release|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|ARM64.ActiveCfg = Release|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x64.ActiveCfg = Release|x64 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x64.Build.0 = Release|x64 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x86.ActiveCfg = Release|Win32 + {F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x86.Build.0 = Release|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|Any CPU.Build.0 = Debug|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|ARM.ActiveCfg = Debug|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|ARM64.ActiveCfg = Debug|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x64.ActiveCfg = Debug|x64 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x64.Build.0 = Debug|x64 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x86.ActiveCfg = Debug|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|Any CPU.ActiveCfg = Release|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|Any CPU.Build.0 = Release|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|ARM.ActiveCfg = Release|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|ARM64.ActiveCfg = Release|Win32 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|x64.ActiveCfg = Release|x64 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|x64.Build.0 = Release|x64 + {F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|x86.ActiveCfg = Release|Win32 + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM.Build.0 = Debug|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM64.Build.0 = Debug|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|x64.ActiveCfg = Debug|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|x64.Build.0 = Debug|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|x86.ActiveCfg = Debug|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|Any CPU.Build.0 = Release|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM.ActiveCfg = Release|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM.Build.0 = Release|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM64.ActiveCfg = Release|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM64.Build.0 = Release|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|x64.ActiveCfg = Release|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|x64.Build.0 = Release|Any CPU + {6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|x86.ActiveCfg = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM.Build.0 = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM64.Build.0 = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x64.ActiveCfg = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x64.Build.0 = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x86.ActiveCfg = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x86.Build.0 = Debug|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|Any CPU.Build.0 = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM.ActiveCfg = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM.Build.0 = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM64.ActiveCfg = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM64.Build.0 = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x64.ActiveCfg = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x64.Build.0 = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x86.ActiveCfg = Release|Any CPU + {B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x86.Build.0 = Release|Any CPU + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|Any CPU.ActiveCfg = Debug|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|ARM.ActiveCfg = Debug|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|ARM64.ActiveCfg = Debug|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|x64.ActiveCfg = Debug|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|x86.ActiveCfg = Debug|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|x86.Build.0 = Debug|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|Any CPU.ActiveCfg = Release|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|ARM.ActiveCfg = Release|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|ARM64.ActiveCfg = Release|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|x64.ActiveCfg = Release|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|x86.ActiveCfg = Release|x86 + {D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|x86.Build.0 = Release|x86 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|ARM.ActiveCfg = Debug|Win32 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|ARM64.ActiveCfg = Debug|Win32 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x64.ActiveCfg = Debug|x64 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x64.Build.0 = Debug|x64 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x86.ActiveCfg = Debug|Win32 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x86.Build.0 = Debug|Win32 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|Any CPU.ActiveCfg = Release|Win32 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|ARM.ActiveCfg = Release|Win32 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|ARM64.ActiveCfg = Release|Win32 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x64.ActiveCfg = Release|x64 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x64.Build.0 = Release|x64 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x86.ActiveCfg = Release|Win32 + {5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x86.Build.0 = Release|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|ARM.ActiveCfg = Debug|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|ARM64.ActiveCfg = Debug|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x64.ActiveCfg = Debug|x64 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x64.Build.0 = Debug|x64 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x86.ActiveCfg = Debug|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x86.Build.0 = Debug|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|Any CPU.ActiveCfg = Release|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|ARM.ActiveCfg = Release|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|ARM64.ActiveCfg = Release|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x64.ActiveCfg = Release|x64 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x64.Build.0 = Release|x64 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x86.ActiveCfg = Release|Win32 + {CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x86.Build.0 = Release|Win32 + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM.ActiveCfg = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM.Build.0 = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM64.Build.0 = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x64.ActiveCfg = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x64.Build.0 = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x86.ActiveCfg = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x86.Build.0 = Debug|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|Any CPU.Build.0 = Release|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM.ActiveCfg = Release|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM.Build.0 = Release|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM64.ActiveCfg = Release|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM64.Build.0 = Release|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x64.ActiveCfg = Release|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x64.Build.0 = Release|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x86.ActiveCfg = Release|Any CPU + {37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x86.Build.0 = Release|Any CPU + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|ARM.ActiveCfg = Debug|Win32 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|ARM64.ActiveCfg = Debug|Win32 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x64.ActiveCfg = Debug|x64 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x64.Build.0 = Debug|x64 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x86.ActiveCfg = Debug|Win32 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x86.Build.0 = Debug|Win32 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|Any CPU.ActiveCfg = Release|Win32 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|ARM.ActiveCfg = Release|Win32 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|ARM64.ActiveCfg = Release|Win32 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x64.ActiveCfg = Release|x64 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x64.Build.0 = Release|x64 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x86.ActiveCfg = Release|Win32 + {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x86.Build.0 = Release|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|ARM.ActiveCfg = Debug|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|ARM64.ActiveCfg = Debug|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x64.ActiveCfg = Debug|x64 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x64.Build.0 = Debug|x64 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x86.ActiveCfg = Debug|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x86.Build.0 = Debug|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|Any CPU.ActiveCfg = Release|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|ARM.ActiveCfg = Release|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|ARM64.ActiveCfg = Release|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x64.ActiveCfg = Release|x64 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x64.Build.0 = Release|x64 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x86.ActiveCfg = Release|Win32 + {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x86.Build.0 = Release|Win32 + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM.ActiveCfg = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM.Build.0 = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM64.Build.0 = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x64.ActiveCfg = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x64.Build.0 = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x86.ActiveCfg = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x86.Build.0 = Debug|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|Any CPU.Build.0 = Release|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM.ActiveCfg = Release|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM.Build.0 = Release|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM64.ActiveCfg = Release|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM64.Build.0 = Release|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x64.ActiveCfg = Release|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x64.Build.0 = Release|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x86.ActiveCfg = Release|Any CPU + {41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x86.Build.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM.ActiveCfg = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM.Build.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM.Deploy.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM64.Build.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM64.Deploy.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x64.ActiveCfg = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x64.Build.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x64.Deploy.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x86.ActiveCfg = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x86.Build.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Debug|x86.Deploy.0 = Debug|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|Any CPU.Build.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|Any CPU.Deploy.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM.ActiveCfg = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM.Build.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM.Deploy.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM64.ActiveCfg = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM64.Build.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM64.Deploy.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|x64.ActiveCfg = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|x64.Build.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|x64.Deploy.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|x86.ActiveCfg = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|x86.Build.0 = Release|Any CPU + {3A150025-D770-4521-BA21-16843B2D5359}.Release|x86.Deploy.0 = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|Any CPU.Build.0 = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM.ActiveCfg = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM.Build.0 = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM64.Build.0 = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x64.ActiveCfg = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x64.Build.0 = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x86.ActiveCfg = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x86.Build.0 = Debug|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|Any CPU.ActiveCfg = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|Any CPU.Build.0 = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM.ActiveCfg = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM.Build.0 = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM64.ActiveCfg = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM64.Build.0 = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|x64.ActiveCfg = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|x64.Build.0 = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|x86.ActiveCfg = Release|Any CPU + {814E327A-4148-44D8-9EB0-A4190A454540}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {72198428-64BB-49B2-BC67-B588947AA1E1} + EndGlobalSection +EndGlobal diff --git a/eDosStation/DataInterface.cs b/eDosStation/DataInterface.cs index c54c85f..9ac3847 100644 --- a/eDosStation/DataInterface.cs +++ b/eDosStation/DataInterface.cs @@ -20,6 +20,7 @@ namespace eDosStation public static SqlCommand NextIDCommand; public static SqlCommand LastIDCommand; public static SqlCommand CheckStatus; + public static SqlCommand GetPersonInfo; public DataSet1.CommentOnEventDataTable dtCOE; private bool CheckUser, AllowMultipleEPD; private SqlCommand ReverseSyncCommand; @@ -135,8 +136,11 @@ namespace eDosStation localConnection = new SqlConnection(currentConStr); NextIDCommand = new SqlCommand("SELECT NEXT VALUE FOR VisitSequence as VisitID", localConnection); isLocal = true; + bool rv = checkCon(true); MakeCommands(); - bool rv = checkCon(false); + if (localConnection.State == ConnectionState.Open)localConnection.Close(); + + } catch (Exception ex) { @@ -192,6 +196,9 @@ namespace eDosStation } void MakeCommands() { + var oldState = localConnection.State; + if (oldState == ConnectionState.Closed) localConnection.Open(); + LastIDCommand = new SqlCommand("VisitIDLast", localConnection); LastIDCommand.CommandType = CommandType.StoredProcedure; var pa = new System.Data.SqlClient.SqlParameter("ID_Station", SqlDbType.Int, 4); LastIDCommand.Parameters.Add(pa); @@ -255,7 +262,14 @@ namespace eDosStation }); ReverseSyncCommand = new System.Data.SqlClient.SqlCommand("syncLoc.UpdateRemoteReturns", localConnection) { CommandType = System.Data.CommandType.StoredProcedure }; + SqlCommandBuilder.DeriveParameters(ReverseSyncCommand); + ReverseSyncCommand.Parameters["@ID_LocalStation"].Value = DBNull.Value; + ReverseSyncCommand.SetStringParam("@pcnr", Environment.MachineName); + GetPersonInfo = new System.Data.SqlClient.SqlCommand("[dbo].[GetPersonInfo]", localConnection) { CommandType = System.Data.CommandType.StoredProcedure }; + SqlCommandBuilder.DeriveParameters(GetPersonInfo); + + if (oldState == ConnectionState.Closed) localConnection.Close(); } public void VisitExit(int EpdVisitID, EpdBaseClr.Epd2 ep) { @@ -350,16 +364,12 @@ namespace eDosStation { using (var dataSet1GetTaskInfoTableAdapter = new DataSet1TableAdapters.GetTaskInfoTableAdapter()) // new eDosStation.DataSet1TableAdapters.GetTaskInfoTableAdapter()) { - //dataSet1GetTaskInfoTableAdapter.Connection.ConnectionString = currentConStr; - stationLog?.WriteLine($"dataSet1GetTaskInfoTableAdapter Fillin {System.DateTime.Now}"); dataSet1GetTaskInfoTableAdapter.Fill(dataSet1.GetTaskInfo, null, _User.Margin); - stationLog?.WriteLine($"dataSet1GetTaskInfoTableAdapter Filled {System.DateTime.Now}"); } } catch (System.Exception ex) { splunkLog?.WriteException(moduleName, taskName, ex); - if (stationLog != null) stationLog.WriteLine($"{taskName} error {ex.Message} {System.DateTime.Now}"); } } public User GetUser(string CSN, string Code, bool isEntry) @@ -369,61 +379,58 @@ namespace eDosStation //object[] Values = null; try { - using (var cmd = new SqlCommand("GetPersonInfo", localConnection) { CommandType = System.Data.CommandType.StoredProcedure }) + GetPersonInfo.SetIntParam("@PersID", Code); + GetPersonInfo.SetStringParam("@CSN", CSN); + GetPersonInfo.SetBoolParam("@AllowMultipleEPD", AllowMultipleEPD); + checkCon(true); + var rs = GetPersonInfo.ExecuteReader(System.Data.CommandBehavior.SingleRow); + using (var tb = new DataTable()) { - if (int.TryParse(Code, out int PersID)) cmd.Parameters.AddWithValue("PersID", PersID); - if (!string.IsNullOrEmpty(CSN)) cmd.Parameters.AddWithValue("csn", CSN); - else cmd.Parameters.AddWithValue("csn", DBNull.Value); - checkCon(true); - var rs = cmd.ExecuteReader(System.Data.CommandBehavior.SingleRow); - using (var tb = new DataTable()) + tb.Load(rs); + if (tb.Rows.Count > 0) { - tb.Load(rs); - if (tb.Rows.Count > 0) - { - DataRow dr = tb.Rows[0]; - //Values = new object[rs.FieldCount]; - //int rv = rs.GetValues(Values); - u.PersID = (int)dr["PersID"]; - u.LastName = dr["LastName"].ToString(); - u.FirstName = dr["FirstName"].ToString(); - //u.conCode = Values[rs.GetOrdinal("conCode")].ToString(); - u.Language = dr["Language"].ToString(); - u.AccessAllow = dr["AccessAllow"] as bool?; - decimal? m = dr["Margin"] as decimal?; - if (m.HasValue) u.Margin = (double)m.Value; else u.Margin = null; - //u.Margin = (double ?)Values[rs.GetOrdinal("Margin")] ; - u.VisitIDLocked = dr["VisitIDLocked"] as int?; - u.ReasonNoAccess = dr["ReasonNoAccess"].ToString().Replace("\\n", "\n"); - u.UserComment = dr["Comment"].ToString(); + DataRow dr = tb.Rows[0]; + //Values = new object[rs.FieldCount]; + //int rv = rs.GetValues(Values); + u.PersID = (int)dr["PersID"]; + u.LastName = dr["LastName"].ToString(); + u.FirstName = dr["FirstName"].ToString(); + //u.conCode = Values[rs.GetOrdinal("conCode")].ToString(); + u.Language = dr["Language"].ToString(); + u.AccessAllow = dr["AccessAllow"] as bool?; + decimal? m = dr["Margin"] as decimal?; + if (m.HasValue) u.Margin = (double)m.Value; else u.Margin = null; + //u.Margin = (double ?)Values[rs.GetOrdinal("Margin")] ; + u.VisitIDLocked = dr["VisitIDLocked"] as int?; + u.ReasonNoAccess = dr["ReasonNoAccess"].ToString().Replace("\\n", "\n"); + u.UserComment = dr["Comment"].ToString(); - if (isEntry && tb.Columns.Contains("hasEPD")) - { - u.hasEPD = (bool)dr["hasEPD"]; - if (u.hasEPD) u.ReasonNoAccess = "You have an EPD in use"; //!!! not for return !!!! - } - else u.hasEPD = false; - u.activeVisit = dr["activeVisit"] as int?; - u.AllOk = (!CheckUser || (u.AccessAllow == true && u.VisitIDLocked == 0)); - } - else + if (isEntry && !AllowMultipleEPD && tb.Columns.Contains("hasEPD")) { - // Not found - u.PersID = 0; - u.LastName = "Not Found"; - u.FirstName = "Not Found"; - //u.conCode = "A1"; - u.Language = "N"; - u.AccessAllow = false; - u.Margin = 0; - u.VisitIDLocked = 0; - u.ReasonNoAccess = "Not found"; - u.UserComment = string.Empty; - u.hasEPD = false; - u.AllOk = !CheckUser || (u.AccessAllow == true && u.VisitIDLocked == 0); + u.hasEPD = (bool)dr["hasEPD"]; + if (u.hasEPD) u.ReasonNoAccess = "You have an EPD in use"; //!!! not for return !!!! } - rs.Close(); + else u.hasEPD = false; + u.activeVisit = dr["activeVisit"] as int?; + u.AllOk = (!CheckUser || (u.AccessAllow == true && u.VisitIDLocked == 0)); } + else + { + // Not found + u.PersID = 0; + u.LastName = "Not Found"; + u.FirstName = "Not Found"; + //u.conCode = "A1"; + u.Language = "N"; + u.AccessAllow = false; + u.Margin = 0; + u.VisitIDLocked = 0; + u.ReasonNoAccess = "Not found"; + u.UserComment = string.Empty; + u.hasEPD = false; + u.AllOk = !CheckUser || (u.AccessAllow == true && u.VisitIDLocked == 0); + } + rs.Close(); } } catch (System.Exception ex) @@ -441,7 +448,10 @@ namespace eDosStation VisitExitCommand.Connection = localConnection; try { + splunkLog.KvClear(); + splunkLog.KvAddCommand(CLog.skeys.sqlQuery, ReverseSyncCommand); ReverseSyncCommand.ExecuteNonQuery(); + splunkLog.WriteSplunkLog(taskName , CLog.iseverity.info ); rv = true; } catch (System.Exception ex) diff --git a/eDosStation/EntryBadge.xaml.cs b/eDosStation/EntryBadge.xaml.cs index a567913..984e80c 100644 --- a/eDosStation/EntryBadge.xaml.cs +++ b/eDosStation/EntryBadge.xaml.cs @@ -1,846 +1,846 @@ -using System; -using System.Data; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Documents; -using System.Windows.Threading; - -namespace eDosStation -{ - /// - /// Interaction logic for EntryBadge.xaml - /// - public partial class EntryBadge : Window - { - bool taskLoading = false; - const int PageTimeout = 10000; - bool initialising = true; - Station thisStation; - EpdBaseClr.Epd2 ep; - DispatcherTimer dispatcherTimer; - int UserSeconds; - Boolean Inst1 = false, Inst2 = false; - private System.Threading.Tasks.Task ReaderTask = null; - private DataInterface dataInterface; - public LSWDesfirePublic.CCard dfReader = null; - static User _User; - DataSet1.GetTaskInfoRow CurTaskRow; - eDosStation.DataSet1 dataSet1; - - private DateTime ResultTime; - enum eCOE { quiz = 1 }; - #if SimulateEPD - public SimulateData simulData = new SimulateData(); - #endif - public EntryBadge(Station curStation) - { - InitializeComponent(); - dataInterface = curStation.dataInterface; - thisStation = curStation; - _User = null; - taskLoading = false; - } - private void Ep_EpdTO(EpdBaseClr.Epd2 Sender, EpdBaseClr.EpdTOEventArgs e) - { - Dispatcher.InvokeAsync(() => { - endPage(); - }); - } - private void Ep_EpdError(EpdBaseClr.Epd2 Sender, EpdBaseClr.EpdErrorEventArgs e) - { - Dispatcher.InvokeAsync(() => { - MessageBox.Show($"EPD Error {e.returnValue}"); - endPage(); - }); - } - private void Ep_EpdRead(EpdBaseClr.Epd2 Sender, EpdBaseClr.EpdEventArgs e) - { - Dispatcher.InvokeAsync(() => GetEPD()); - } - private bool LoadDoses() - { - bool rv = true; - -#if SimulateEPD - ep.CountsClock = 12345; - ep.alarmStatus = 0; - ep.otherAlarms = 0; -#endif - //if (rva != 0) - //{ - // MessageBox.Show($"Entry GetStatus error {rva} {ep.GetStatusError}"); - //} - System.Diagnostics.Debug.WriteLine($"LoadDoses: EPD {ep.EpdID} Type:{ep.epdType}"); - statusEPD.Text = $"EPD: {ep.EpdID}"; - if (ep.EPDIssued) - { - TextBlock il = new TextBlock(); - il.Inlines.Add(new Run("This EPD is currently issued") { - FontSize = 36 - }); ; - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new Run("Please take an other.")); - il.HorizontalAlignment = HorizontalAlignment.Center; - il.TextAlignment = System.Windows.TextAlignment.Center; - (new InstMessage(il)).ShowDialog(); - - - //MessageBox.Show("EPD is currently issued\nPlease take an other", "EDP", MessageBoxButton.OK, MessageBoxImage.Hand, MessageBoxResult.OK, MessageBoxOptions.ServiceNotification); - endPage(); - return false; - } - if (ep.hasAlarm && ep.OtherAlarmBatLow > 0) - { - TextBlock il = new TextBlock(); - il.Inlines.Add(new Run("EPD is in alarm status\n\n") - { - FontSize = 36 - }); ; - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new LineBreak()); - if (ep.alarmStatus > 0) il.Inlines.Add(new Run("* Dose alarm *")); - if (ep.OtherAlarmBatLow > 0) il.Inlines.Add(new Run("* Battery Low *")); - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new Run("Please take an other.")); - il.HorizontalAlignment = HorizontalAlignment.Center; - il.TextAlignment = System.Windows.TextAlignment.Center; - (new InstMessage(il)).ShowDialog(); - endPage(); - return false; - } - if (ep.isBG != CurTaskRow.EPDRad.Equals("BG")) - { - string curtype = null, needdtype = string.Empty; - if (ep.isBG) curtype = "BG Beta-Gamma"; else curtype = "NG (Neutron)"; - if (CurTaskRow.EPDRad.Equals("BG")) needdtype = "BG (Beta-Gamma)"; else needdtype = "NG (Neutron)"; - - TextBlock il = new TextBlock(); - il.Inlines.Add(new Run("This EPD is not the right type") - { - FontSize = 36 - }); ; - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(InstMessage.GetFullWidthLine()); - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new Run($"This task needs a {needdtype} EPD,\n this is a {curtype}") - { - Background = System.Windows.Media.Brushes.Yellow - }); ; - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(InstMessage.GetFullWidthLine()); - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new LineBreak()); - il.Inlines.Add(new Run("Please take an other.")); - il.HorizontalAlignment = HorizontalAlignment.Center; - il.TextAlignment = System.Windows.TextAlignment.Center; - (new InstMessage(il)).ShowDialog(); - endPage(); - return false; - } - //rva = ep.ReadTresholds(); - //if (rva != 0) - //{ - // MessageBox.Show($"ReadTresholds error {ep.ReadTresholdsError}"); - //} - return rv; - } - //private void DispatcherTimer_Tick(object sender, EventArgs e) - //{ - // //Was timeout - // //voorlopig niet meer gebruikt - // EpdFound = false; - // dispatcherTimer.Stop(); - // ep.Close(); - // System.Threading.Thread.Sleep(200); - - // int rv = ep.Connect(false,thisStation.EPDTimeOut); - // System.Diagnostics.Debug.WriteLine($"Connect {rv} error {ep.ConnectError}"); - // if (ep.DeviceCount > 0 && ep.EpdID > 0) - // { - // System.Diagnostics.Debug.WriteLine($"Devices:{ep.DeviceCount} id:{ep.EpdID} {ep.ConnectError} "); - // EpdFound = true; - // DoEPD(); - // } - // if (!EpdFound) - // { - // Search--; - // if (Search > 0) - // { - // statusEPD.Text = $"Searching EPD ... {Search} ({ep.ConnectError})"; - // dispatcherTimer.Start(); - // } - // else - // { - // statusEPD.Text = $"No EPD found"; - // } - // } - //} - private void DoEPD() - { - int? StationVisitID = null; - int? ID_Visit = null; - - if (LoadDoses()) - { - try - { - ID_Visit = DataInterface.NextID(); - } - catch (System.Exception ex) - { - MessageBox.Show($"Error {ex.Message}"); - } - if (ID_Visit.HasValue) - { - bool isBG = ep.isBG; // (ep.epdType != 3); //3 = zwarte 0=grijs - var co = dataInterface.getCon(true); - dataInterface.VisitInitCommand.Connection = co; - dataInterface.VisitInitCommand.Parameters["ID_Station"].Value = thisStation.ID_Station; - dataInterface.VisitInitCommand.Parameters["ID_Visit"].Value = ID_Visit; - dataInterface.VisitInitCommand.Parameters["PersID"].Value = _User.PersID; - dataInterface.VisitInitCommand.Parameters["ID_Task"].Value = CurTaskRow.ID_Task; - dataInterface.VisitInitCommand.Parameters["Inst_CODE"].Value = CurTaskRow.Inst_CODE; - dataInterface.VisitInitCommand.Parameters["EPD_InternalID"].Value = (int)ep.EpdID; - dataInterface.VisitInitCommand.Parameters["isBG"].Value = isBG; - dataInterface.VisitInitCommand.Parameters["ENTRY_EPD_CLOCK"].Value = ep.CountsClock; - dataInterface.VisitInitCommand.Parameters["epdType"].Value = (byte)ep.epdType; - dataInterface.VisitInitCommand.Parameters["EPDVisitID"].Value = 0; - using (var l = new SqlLog()) - try - { - dataInterface.VisitInitCommand.ExecuteNonQuery(); - l.LogCommand(dataInterface.VisitInitCommand); - } - catch (System.Exception ex) - { - l.LogCommand(ex.Message); - MessageBox.Show(ex.Message); - } - StationVisitID = (int?)dataInterface.VisitInitCommand.Parameters["EPDVisitID"].Value; - co.Close(); - ep.WearerID = StationVisitID.ToString(); - ep.WearerName = _User.PersID.ToString(); - -#if SimulateEPD - simulData.EdpType = ep.epdType; - simulData.WearerID = ep.WearerID; - simulData.WearerName = ep.WearerName; -#endif - - ep.Hp07RateOn = CurTaskRow.HP07RateON; - ep.Hp07RateOff = CurTaskRow.HP07RateOFF; - - ep.Hp10Rate1On = CurTaskRow.HP10Rate1ON; - ep.Hp10Rate1Off = CurTaskRow.HP10Rate1OFF; - - ep.Hp10Rate2On = CurTaskRow.HP10Rate2ON; - ep.Hp10Rate2Off = CurTaskRow.HP10Rate2OFF; - - ep.Hp10THDose1 = CurTaskRow.Hp10Dose1; - ep.Hp10THDose2 = CurTaskRow.Hp10Dose2; - ep.Hp07THDose = CurTaskRow.Hp07Dose; - - ////voor Neutron K3, K4 - //int? kx = null; - //if (!CurTaskRow.IsFNGain_ANGainValueNull()) kx = (int)CurTaskRow.FNGain_ANGainValue; - //if (kx != null && (ep.K3 != kx || ep.K4 != kx)) - // { - // ep.K3 = ep.K4 = kx.Value; - // if (!ep.isBG) - // { - // if (ep.K6 != 1310) - // { - // MessageBox.Show("Alarm"); - // } - // else - // { - // ep.WriteCalibration(); - // } - // } - // } -#if DummyData - ep.Hp07THDose = 70; - ep.Hp10THDose1 = 11; - ep.Hp10THDose2 = 12; - - ep.Hp07RateOn = 80; - ep.Hp07RateOff = 9; - ep.Hp10Rate1On = 13; - ep.Hp10Rate1Off = 14; - ep.Hp10Rate2On = 15; - ep.Hp10Rate2Off = 16; - - ep.K3 = 3; ep.K4 = 4; - if (!ep.isBG) - ep.WriteCalibration(); - -#endif - - float gain = 100.0F; - if (!CurTaskRow.IsFNGain_ANGainValueNull()) gain= (int)CurTaskRow.FNGain_ANGainValue; - int rv = ep.IssueAndCheck(gain); - if (rv != 0) - { - MessageBox.Show($"SetIssued error {rv}"); - } - dispatcherTimer.Start(); //restart timer - panelDone.Visibility = Visibility.Visible; - lbHP07.Text = ep.Hp07Name; - lbHP10.Text = ep.Hp10Name; - panelWait.Visibility = Visibility.Collapsed; - } - } - } - private void GetEPD() - { - if (ep.DeviceCount == 1 && ep.EpdID> 0) - { - statusEPD.Text = string.Empty; - DoEPD(); - } - } - private void SetFilter(bool isAlara) - { - string TaskName = "SetFilter"; - dataInterface.stationLog?.WriteLine($"{TaskName} Start {DateTime.Now.ToString("HH:mm:ss.fff")}"); - taskLoading = true; TaskOK.IsEnabled = false; - Inst1 = (cbInst1.IsChecked == true) && thisStation.Inst_CODE1 > 0; - Inst2 = (cbInst2.IsChecked == true) && thisStation.Inst_CODE2 > 0; - StringBuilder fi = new StringBuilder(); - if (!Inst1 && !Inst2) - { - fi.Append(" (1=2) "); - } - else - { - fi.Append(" ( Inst_CODE in ("); - if (Inst1 == true) fi.Append(thisStation.Inst_CODE1.ToString()); - if (Inst1 && Inst2) fi.Append(","); - if (Inst2 ) fi.Append(thisStation.Inst_CODE2.ToString()); - fi.Append($") AND TaskType_CODE {(isAlara ? ">=" : "<")} '1000' ) "); - } - - string filter = fi.ToString(); - thisStation.splunkLog?.KvSet(LSWLib.CLog.skeys.sqlWhere, filter); - - System.Windows.Data.CollectionViewSource getTaskListViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("getTaskListViewSource"))); - try - { - var dv = getTaskListViewSource.View.SourceCollection as DataView; - dataInterface.stationLog?.WriteLine($"filter = {filter}"); - dv.RowFilter = filter; - dv.Sort = "TaskType_CODE"; - getTaskListViewSource.View.MoveCurrentTo(null); - } catch (System.Exception ex) - { - MessageBox.Show(ex.Message); - thisStation.splunkLog?.WriteException(TaskName, "rowFilter", ex); - dataInterface.stationLog?.WriteLine($"{TaskName} Error {ex.Message}"); - } - taskLoading = false; - thisStation.splunkLog?.WriteSplunkLog(TaskName, LSWLib.CLog.iseverity.info); - } - public string getCommentUnknown() - { - StringBuilder res = new StringBuilder(); - var r = dataInterface.GetCommentOnEventRow(3); - res.AppendLine(r.Comment_NL).Replace("\\n", "\n"); - res.AppendLine("---"); - res.AppendLine(r.Comment_FR).Replace("\\n", "\n"); - res.AppendLine("---"); - res.AppendLine(r.Comment_EN).Replace("\\n", "\n"); - res.AppendLine("---"); - return res.ToString(); - } - public string getCommentOnEvent(string prefix, int id) - { - string res = string.Empty; - if (!string.IsNullOrWhiteSpace(prefix)) res = prefix + "\n"; - var r = dataInterface.GetCommentOnEventRow(id); - string l = _User?.Language ?? "E"; - if (r != null) - switch (l) - { - case "N": res += r.Comment_NL; break; - case "F": res += r.Comment_FR; break; - default: res += r.Comment_EN; break; - } - return res.Replace("\\n", "\n"); - } - /// - /// Get User data - /// - /// doCancel - void ShowUserInfo() - { - const string taskName = "ShowUserInfo"; - dataInterface.stationLog?.WriteLine($"ShowUserInfo Start {DateTime.Now.ToString("HH:mm:ss.fff")}"); - - UserSeconds = 10; - //UserScreen - string ReasonNoAccess = string.Empty; - dispatcherTimer?.Stop(); - dispatcherTimer = null; - if (_User.PersID == 0) - { - thisStation.splunkLog?.WriteSplunkLog(taskName, LSWLib.CLog.iseverity.info,"PersID 0 no access"); - tReasonNoAccess.Text = getCommentUnknown(); - if (_User.Error > 0) tReasonNoAccess.Text = _User.ErrorMessage; - tbNotAllowed.IsSelected = true; - Dispatcher.InvokeAsync(() => { endPage(); }); - } - else - { - tbUser.IsSelected = true; - if (_User == null || _User.VisitIDLocked > 0 || _User.AccessAllow == false || _User.hasEPD) - { - if (_User.VisitIDLocked > 0 || _User.AccessAllow == false) - ReasonNoAccess = _User.ReasonNoAccess; - else if (_User.hasEPD) - ReasonNoAccess = "EPD in use"; - else ReasonNoAccess = getCommentOnEvent(string.Empty, 3); - } - - if (!string.IsNullOrEmpty(_User.UserComment)) - { - UserComment.Text = _User.UserComment; - boxComment.Visibility = Visibility.Visible; - } - else - boxComment.Visibility = Visibility.Hidden; - - if (!string.IsNullOrWhiteSpace(ReasonNoAccess)) - UserAccess.Text = ReasonNoAccess; - - Username.Text = _User.FullUserName(); - string msg = string.Empty; - if (!_User.HasMessage() && string.IsNullOrEmpty(ReasonNoAccess)) - { - msg = $"ShowUserInfo to AskTask {DateTime.Now.ToString("HH:mm:ss.fff")}"; - dataInterface.stationLog?.WriteLine(msg); - thisStation.splunkLog?.WriteSplunkLog(taskName, LSWLib.CLog.iseverity.info, msg); - pUserSeconds.Visibility = Visibility.Collapsed; - pUserSeconds.Maximum = pUserSeconds.Value = 1; - Dispatcher.InvokeAsync(AskTask, DispatcherPriority.Normal); - } - else - { - msg = $"ShowUserInfo add timer {DateTime.Now.ToString("HH:mm:ss.fff")}"; - dataInterface.stationLog?.WriteLine(msg); - thisStation.splunkLog?.WriteSplunkLog(taskName, LSWLib.CLog.iseverity.info, msg); - tReasonNoAccess.Text = ReasonNoAccess; - pUserSeconds.Visibility = Visibility.Visible; - pUserSeconds.Maximum = pUserSeconds.Value = UserSeconds; - dispatcherTimer = new DispatcherTimer(DispatcherPriority.Background); - dispatcherTimer.Interval = TimeSpan.FromSeconds(1); - dispatcherTimer.Tick += SwitchToTask; - dispatcherTimer.Start(); - thisStation.splunkLog?.WriteSplunkLog(taskName, LSWLib.CLog.iseverity.info, "Timer"); - } - } - - return ; - } - private void SwitchToTask(object sender, EventArgs e) - { - if (--UserSeconds > 0 && (_User.AccessAllow != true || !string.IsNullOrEmpty(_User.UserComment) || !string.IsNullOrEmpty(_User.ReasonNoAccess))) - { - tUserSeconds.Text = UserSeconds.ToString(); - pUserSeconds.Value = UserSeconds; - } - else - { - dispatcherTimer?.Stop(); - dispatcherTimer = null; - if (_User.AllOk == true && !_User.hasEPD) Dispatcher.InvokeAsync(AskTask, DispatcherPriority.Normal); - else Dispatcher.InvokeAsync(() => {endPage(); }); - } - } - void AskTask() - { - thisStation.splunkLog?.WriteSplunkLog("AskTask", LSWLib.CLog.iseverity.info); - tbTask.IsSelected = true; - Naam.Text = _User.FirstName + " " + _User.LastName; - dataSet1 = ((eDosStation.DataSet1)(this.FindResource("dataSet1"))); - dataInterface.FillTaskInfo(_User, dataSet1); - bool isAlara = (cbAlara.IsChecked == true); - SetFilter(isAlara); - } - void CheckBadge() - { - _User = dataInterface.GetUser(CSN.Text, Code.Text,true); -#if DEBUG - //_User.UserComment = "Hallo"; -#endif - thisStation.splunkLog?.KvAdd(LSWLib.CLog.skeys.persID, _User.PersID); - thisStation.splunkLog?.WriteSplunkLog("CheckBadge", LSWLib.CLog.iseverity.info, _User.PersID.ToString(),null); - Dispatcher.InvokeAsync(() => { ShowUserInfo(); }); - } - public void showBadge(int persID, string csn) - { - CSN.Text = csn; - Site.Text = string.Empty; - Code.Text = persID.ToString(); - Dispatcher.InvokeAsync(CheckBadge,DispatcherPriority.Normal); - } - public void endPage() - { - dispatcherTimer?.Stop(); - dispatcherTimer = null; - this.Close(); - } - private void bClose_Click(object sender, RoutedEventArgs e) - { - endPage(); - } - private void BClear_Click(object sender, RoutedEventArgs e) - { - CSN.Text = string.Empty; - Site.Text = string.Empty; - Code.Text = string.Empty; - } - private void TaskOK_Click(object sender, RoutedEventArgs e) - { - bool isOk = false; - switch (TaskOK.Tag) - { - case "A": //No access - break; - case "M": //Margin - break; - case "B": // Badge - break; - case "L": //Locked - break; - case "O": // OK - isOk = true; - break; - } - - if (isOk) - { - System.Windows.Data.CollectionViewSource getTaskListViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("getTaskListViewSource"))); - var rv = getTaskListViewSource.View.CurrentItem as DataRowView; - CurTaskRow = rv.Row as DataSet1.GetTaskInfoRow; - - if (_User == null || CurTaskRow == null) return; - if (CurTaskRow.MinWorkerDosisMargin > _User.Margin) - { - MessageBox.Show("Margin exceeded"); - endPage(); - } - else - { - tb.SelectedItem = tbEPD; - panelDone.Visibility = Visibility.Collapsed;//1 - panelWait.Visibility = Visibility.Visible; - statusEPD.Text = $"Waiting for EPD (max {thisStation.EPDTimeOut/1000} seconds)"; - dispatcherTimer = new DispatcherTimer(DispatcherPriority.Background); - dispatcherTimer.Interval = TimeSpan.FromMilliseconds(thisStation.EPDTimeOut / 10); - dispatcherTimer.Tick += CountDown; - ResultTime = DateTime.Now.AddMilliseconds(thisStation.EPDTimeOut); - dispatcherTimer.Start(); - pWaitEpd.Value = pWaitEpd.Maximum = thisStation.EPDTimeOut/1000; - Dispatcher.InvokeAsync(new Action(() => { ep.Wait(thisStation.EPDTimeOut, 1,thisStation.OnlyMK2); }),DispatcherPriority.Background); - } - } - } - private void CountDown(object sender, EventArgs e) - { - double v = (ResultTime - DateTime.Now).TotalSeconds; - if (v > pWaitEpd.Minimum) - pWaitEpd.Value = v; - else - { - dispatcherTimer.Stop(); - endPage(); - } - } - private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) - { - const string TaskName = "ListBox_SelectionChanged"; - if (taskLoading ) return; - var lb = sender as ListBox; - if (lb == null || !lb.Name.Equals("LB1")) return; - - bool exceeded = false; - e.Handled = true; - DataSet1.GetTaskInfoRow o = null; - if (e.AddedItems.Count > 0) - { - o = ((DataRowView) e.AddedItems[0]).Row as DataSet1.GetTaskInfoRow; - TaskOK.IsEnabled = true; - } - thisStation.splunkLog?.KvClear(); - thisStation.splunkLog?.KvAdd(LSWLib.CLog.skeys.persID, _User.PersID); - - if (o != null) - { - exceeded = o.MarginExceeded; - thisStation.splunkLog?.KvAdd(LSWLib.CLog.skeys.TaskCode, o.TaskType_CODE); - TaskOK.Content = "Task"; TaskOK.Tag = "B"; - } - if (_User == null) { TaskOK.Content = "Badge"; TaskOK.Tag = "B"; } - else if (!_User.AllOk) - { - if (_User.AccessAllow != true) { TaskOK.Content = "No Access"; TaskOK.Tag = "A"; } - else if (_User.VisitIDLocked > 0) { TaskOK.Content = "Locked"; TaskOK.Tag = "L"; } - else if (exceeded == true) { TaskOK.Content = "No Margin"; TaskOK.Tag = "M"; } - dataInterface.stationLog?.WriteLine($"User {_User.PersID} not ok "); - thisStation.splunkLog?.WriteSplunkLog(TaskName, LSWLib.CLog.iseverity.warning, TaskOK.Content.ToString()); - } - else - { - TaskOK.Content = "OK"; TaskOK.Tag = "O"; - thisStation.splunkLog?.WriteSplunkLog(TaskName, LSWLib.CLog.iseverity.info); - } - } - private void CbInst1_Click(object sender, RoutedEventArgs e) - { - Inst1 = (cbInst1.IsChecked == true); - cbInst2.IsChecked = !Inst1; - bool isAlara = (cbAlara.IsChecked == true); - SetFilter(isAlara); - } - private void CbAlara_Click(object sender, RoutedEventArgs e) - { - if (!initialising) - { - bool isAlara = true; - cbAlara.IsChecked = true; - cbNormal.IsChecked = !isAlara; - SetFilter(isAlara); - } - } - private void CbNormal_Click(object sender, RoutedEventArgs e) - { - if (!initialising) - { - bool isAlara = false; - cbAlara.IsChecked = isAlara; - cbNormal.IsChecked = !isAlara; - SetFilter(isAlara); - } - } - private void BUserRead_Click(object sender, RoutedEventArgs e) - { - dispatcherTimer.Stop(); - dispatcherTimer.Tick -= SwitchToTask; - if (_User.AllOk == true && !_User.hasEPD) AskTask(); - else endPage(); - } - private void TaskCancel_Click(object sender, RoutedEventArgs e) - { - Close(); - } - private void BTestPerson_Click(object sender, RoutedEventArgs e) - { - Button b = sender as Button; - string id = b.Tag.ToString().ToUpper(); - if (id[0]=='P') - _User = dataInterface.GetUser(null, id.Substring(1),true); - else - _User = dataInterface.GetUser("TP" + b.Tag.ToString().ToUpper(), string.Empty,true); - Dispatcher.InvokeAsync(() => { ShowUserInfo(); }); - dfReader?.WaitEnd(); - - } - private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) - { - try - { - if (ep != null) - { - ep.WaitEnd(); - ep.Dispose(); - ep = null; - } - if (dfReader != null) - { - dfReader.WaitEnd(); - dfReader.Dispose(); - dfReader = null; - } - } - catch (System.Exception ex) - { - System.Diagnostics.Debug.WriteLine(ex.Message); - } - } - private void CbInst2_Click(object sender, RoutedEventArgs e) - { - Inst2 = (cbInst2.IsChecked == true); - cbInst1.IsChecked = !Inst2; - bool isAlara = (cbAlara.IsChecked == true); - SetFilter(isAlara); - } - private void AddTestButtons() - { - StackPanel sp = pTestButtons; - Button b; - string id; - Thickness m = new Thickness(0, 0, 20, 0); - for (int i = 1; i < 15; i++) - { - b = new Button(); - b.Click += BTestPerson_Click; - if (i > 1) - id = i.ToString(); - else id = "P12959"; - b.Tag = id; - b.Content = $"* TP {id} *"; - b.Height = 20; b.Width = 30; - b.Margin = m; - sp.Children.Add(b); - } - - sp.Visibility = Visibility.Visible; - } - private void Window_Loaded(object sender, RoutedEventArgs e) - { - initialising = true; - tbEntry.IsSelected = true; - panelDone.Visibility= Visibility.Collapsed; - panelWait.Visibility = Visibility.Visible; - cbAlara.IsChecked = false; - - cbInst1.Content = thisStation.Inst_Name1; - Inst1 = true; - cbInst1.IsChecked = Inst1; - if (thisStation.Inst_CODE2 > 0) - { - cbInst2.Content = thisStation.Inst_Name2; - cbInst2.Visibility = Visibility.Visible; - Inst2 = false; - cbInst2.IsChecked = Inst2; - } - dataInterface.FillComment(); - initialising = false; - if (thisStation.useTestButtons) AddTestButtons(); - taskLoading = false; - - //StartEPD - if (ep==null) - try - { - ep = new EpdBaseClr.Epd2(thisStation.ComPort); - ep.SetFeedbackSound(thisStation.useBeep, thisStation.useBeepMK3()); - ep.EpdRead += Ep_EpdRead; - ep.EpdError += Ep_EpdError; - ep.EpdTO += Ep_EpdTO; - } - catch (System.Exception ex) - { - thisStation.splunkLog.WriteException(null, "StartEpd", ex); - MessageBox.Show($"{ex.Message}"); - ep = null; - } - - //StartBadge - if (dfReader == null) - { - dfReader = new LSWDesfirePublic.CCard(); - dfReader.GetReaderList(); - if (dfReader.readersList.Contains(thisStation.Reader)) - { - dfReader.SetReader(thisStation.Reader); - dfReader.Badged += DFReader_Badged; - dfReader.BadgeTO += DfReader_BadgeTO; - dfReader.BadgeError += DfReader_BadgeError; - ReaderTask = dfReader.Wait(PageTimeout,10); - } - else - { - StringBuilder er = new StringBuilder($"Badgelezer \"{thisStation.Reader}\" niet gevonden!.\nDeze lezers zijn beschikbaar:\n"); - dfReader.GetReaderList(); - foreach (string r in dfReader.readersList) er.AppendLine($"-> {r}"); - MessageBox.Show(er.ToString(), "Badge Lezer", MessageBoxButton.OK, MessageBoxImage.Exclamation); - dfReader.Dispose(); dfReader = null; - } - } - - } - private void DfReader_BadgeError(LSWDesfirePublic.CCard Sender, LSWDesfirePublic.BadgeErrorEventArgs e) - { - endPage(); - } - private void LeesCancel_Click(object sender, RoutedEventArgs e) - { - endPage(); - } - private void DfReader_BadgeTO(LSWDesfirePublic.CCard Sender, EventArgs e) - { - this.Dispatcher.InvokeAsync(new Action(() => endPage()),DispatcherPriority.Normal); - } - private bool SelectTask(string id_task) - { - System.Windows.Data.CollectionViewSource getTaskListViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("getTaskListViewSource"))); - var dv = getTaskListViewSource.View.SourceCollection as DataView; - var r = dv.Find(id_task); - if (r >= 0) - { - getTaskListViewSource.View.MoveCurrentTo(dv[r]); - return true; - } - else return false; - } - private void numPanel_Click(object sender, RoutedEventArgs e) - { - Button x = sender as Button; - string t = x.Tag as string; - if (t[0] <= '9' && t[0] >= '0') - { - if (numPanelDisplay.Text == "0") numPanelDisplay.Text = string.Empty; - numPanelDisplay.Text += t; - } - else - switch (t[0]) - { - case 'B': - string d = numPanelDisplay.Text; - if (d.Length > 0) numPanelDisplay.Text = d.Substring(0, d.Length - 1); - break; - case 'C': - numPanelDisplay.Text = string.Empty; - break; - case 'E': - //TaskbarItemInfo = numPanelDisplay.Text; - SelectTask(numPanelDisplay.Text); - scrollTask.Visibility = Visibility.Visible; - numPanel.Visibility = Visibility.Collapsed; - break; - } - } - private void ShowNumpad_Click(object sender, RoutedEventArgs e) - { - if (numPanel.Visibility != Visibility.Visible) - { - numPanelDisplay.Text = string.Empty; - numPanel.Visibility = Visibility.Visible; - scrollTask.Visibility = Visibility.Collapsed; - numPanel1.Focus(); - } - else - { - scrollTask.Visibility = Visibility.Visible; - numPanel.Visibility = Visibility.Collapsed; - } - } - private void DFReader_Badged(LSWDesfirePublic.CCard Sender, LSWDesfirePublic.BadgeEventArgs e) - { - if (e.PersID > 0) - this.Dispatcher.InvokeAsync(new Action(() => showBadge(e.PersID, e.UID)), DispatcherPriority.Background); - else - { - string msg = $"No PersID found on badge {e.UID}"; - MessageBox.Show(msg, "Error",MessageBoxButton.OK); - thisStation.splunkLog?.WriteSplunkLog("Badged", LSWLib.CLog.iseverity.warning, null, msg); - } - } - } -} +using System; +using System.Data; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Threading; + +namespace eDosStation +{ + /// + /// Interaction logic for EntryBadge.xaml + /// + public partial class EntryBadge : Window + { + bool taskLoading = false; + const int PageTimeout = 10000; + bool initialising = true; + Station thisStation; + EpdBaseClr.Epd2 ep; + DispatcherTimer dispatcherTimer; + int UserSeconds; + Boolean Inst1 = false, Inst2 = false; + private System.Threading.Tasks.Task ReaderTask = null; + private DataInterface dataInterface; + public LSWDesfirePublic.CCard dfReader = null; + static User _User; + DataSet1.GetTaskInfoRow CurTaskRow; + eDosStation.DataSet1 dataSet1; + + private DateTime ResultTime; + enum eCOE { quiz = 1 }; + #if SimulateEPD + public SimulateData simulData = new SimulateData(); + #endif + public EntryBadge(Station curStation) + { + InitializeComponent(); + dataInterface = curStation.dataInterface; + thisStation = curStation; + _User = null; + taskLoading = false; + } + private void Ep_EpdTO(EpdBaseClr.Epd2 Sender, EpdBaseClr.EpdTOEventArgs e) + { + Dispatcher.InvokeAsync(() => { + endPage(); + }); + } + private void Ep_EpdError(EpdBaseClr.Epd2 Sender, EpdBaseClr.EpdErrorEventArgs e) + { + Dispatcher.InvokeAsync(() => { + MessageBox.Show($"EPD Error {e.returnValue}"); + endPage(); + }); + } + private void Ep_EpdRead(EpdBaseClr.Epd2 Sender, EpdBaseClr.EpdEventArgs e) + { + Dispatcher.InvokeAsync(() => GetEPD()); + } + private bool LoadDoses() + { + bool rv = true; + +#if SimulateEPD + ep.CountsClock = 12345; + ep.alarmStatus = 0; + ep.otherAlarms = 0; +#endif + //if (rva != 0) + //{ + // MessageBox.Show($"Entry GetStatus error {rva} {ep.GetStatusError}"); + //} + System.Diagnostics.Debug.WriteLine($"LoadDoses: EPD {ep.EpdID} Type:{ep.epdType}"); + statusEPD.Text = $"EPD: {ep.EpdID}"; + if (ep.EPDIssued) + { + TextBlock il = new TextBlock(); + il.Inlines.Add(new Run("This EPD is currently issued") { + FontSize = 36 + }); ; + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new Run("Please take an other.")); + il.HorizontalAlignment = HorizontalAlignment.Center; + il.TextAlignment = System.Windows.TextAlignment.Center; + (new InstMessage(il)).ShowDialog(); + + + //MessageBox.Show("EPD is currently issued\nPlease take an other", "EDP", MessageBoxButton.OK, MessageBoxImage.Hand, MessageBoxResult.OK, MessageBoxOptions.ServiceNotification); + endPage(); + return false; + } + if (ep.hasAlarm && ep.OtherAlarmBatLow > 0) + { + TextBlock il = new TextBlock(); + il.Inlines.Add(new Run("EPD is in alarm status\n\n") + { + FontSize = 36 + }); ; + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new LineBreak()); + if (ep.alarmStatus > 0) il.Inlines.Add(new Run("* Dose alarm *")); + if (ep.OtherAlarmBatLow > 0) il.Inlines.Add(new Run("* Battery Low *")); + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new Run("Please take an other.")); + il.HorizontalAlignment = HorizontalAlignment.Center; + il.TextAlignment = System.Windows.TextAlignment.Center; + (new InstMessage(il)).ShowDialog(); + endPage(); + return false; + } + if (ep.isBG != CurTaskRow.EPDRad.Equals("BG")) + { + string curtype = null, needdtype = string.Empty; + if (ep.isBG) curtype = "BG Beta-Gamma"; else curtype = "NG (Neutron)"; + if (CurTaskRow.EPDRad.Equals("BG")) needdtype = "BG (Beta-Gamma)"; else needdtype = "NG (Neutron)"; + + TextBlock il = new TextBlock(); + il.Inlines.Add(new Run("This EPD is not the right type") + { + FontSize = 36 + }); ; + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(InstMessage.GetFullWidthLine()); + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new Run($"This task needs a {needdtype} EPD,\n this is a {curtype}") + { + Background = System.Windows.Media.Brushes.Yellow + }); ; + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(InstMessage.GetFullWidthLine()); + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new LineBreak()); + il.Inlines.Add(new Run("Please take an other.")); + il.HorizontalAlignment = HorizontalAlignment.Center; + il.TextAlignment = System.Windows.TextAlignment.Center; + (new InstMessage(il)).ShowDialog(); + endPage(); + return false; + } + //rva = ep.ReadTresholds(); + //if (rva != 0) + //{ + // MessageBox.Show($"ReadTresholds error {ep.ReadTresholdsError}"); + //} + return rv; + } + //private void DispatcherTimer_Tick(object sender, EventArgs e) + //{ + // //Was timeout + // //voorlopig niet meer gebruikt + // EpdFound = false; + // dispatcherTimer.Stop(); + // ep.Close(); + // System.Threading.Thread.Sleep(200); + + // int rv = ep.Connect(false,thisStation.EPDTimeOut); + // System.Diagnostics.Debug.WriteLine($"Connect {rv} error {ep.ConnectError}"); + // if (ep.DeviceCount > 0 && ep.EpdID > 0) + // { + // System.Diagnostics.Debug.WriteLine($"Devices:{ep.DeviceCount} id:{ep.EpdID} {ep.ConnectError} "); + // EpdFound = true; + // DoEPD(); + // } + // if (!EpdFound) + // { + // Search--; + // if (Search > 0) + // { + // statusEPD.Text = $"Searching EPD ... {Search} ({ep.ConnectError})"; + // dispatcherTimer.Start(); + // } + // else + // { + // statusEPD.Text = $"No EPD found"; + // } + // } + //} + private void DoEPD() + { + int? StationVisitID = null; + int? ID_Visit = null; + + if (LoadDoses()) + { + try + { + ID_Visit = DataInterface.NextID(); + } + catch (System.Exception ex) + { + MessageBox.Show($"Error {ex.Message}"); + } + if (ID_Visit.HasValue) + { + bool isBG = ep.isBG; // (ep.epdType != 3); //3 = zwarte 0=grijs + var co = dataInterface.getCon(true); + dataInterface.VisitInitCommand.Connection = co; + dataInterface.VisitInitCommand.Parameters["ID_Station"].Value = thisStation.ID_Station; + dataInterface.VisitInitCommand.Parameters["ID_Visit"].Value = ID_Visit; + dataInterface.VisitInitCommand.Parameters["PersID"].Value = _User.PersID; + dataInterface.VisitInitCommand.Parameters["ID_Task"].Value = CurTaskRow.ID_Task; + dataInterface.VisitInitCommand.Parameters["Inst_CODE"].Value = CurTaskRow.Inst_CODE; + dataInterface.VisitInitCommand.Parameters["EPD_InternalID"].Value = (int)ep.EpdID; + dataInterface.VisitInitCommand.Parameters["isBG"].Value = isBG; + dataInterface.VisitInitCommand.Parameters["ENTRY_EPD_CLOCK"].Value = ep.CountsClock; + dataInterface.VisitInitCommand.Parameters["epdType"].Value = (byte)ep.epdType; + dataInterface.VisitInitCommand.Parameters["EPDVisitID"].Value = 0; + using (var l = new SqlLog()) + try + { + dataInterface.VisitInitCommand.ExecuteNonQuery(); + l.LogCommand(dataInterface.VisitInitCommand); + } + catch (System.Exception ex) + { + l.LogCommand(ex.Message); + MessageBox.Show(ex.Message); + } + StationVisitID = (int?)dataInterface.VisitInitCommand.Parameters["EPDVisitID"].Value; + co.Close(); + ep.WearerID = StationVisitID.ToString(); + ep.WearerName = _User.PersID.ToString(); + +#if SimulateEPD + simulData.EdpType = ep.epdType; + simulData.WearerID = ep.WearerID; + simulData.WearerName = ep.WearerName; +#endif + + ep.Hp07RateOn = CurTaskRow.HP07RateON; + ep.Hp07RateOff = CurTaskRow.HP07RateOFF; + + ep.Hp10Rate1On = CurTaskRow.HP10Rate1ON; + ep.Hp10Rate1Off = CurTaskRow.HP10Rate1OFF; + + ep.Hp10Rate2On = CurTaskRow.HP10Rate2ON; + ep.Hp10Rate2Off = CurTaskRow.HP10Rate2OFF; + + ep.Hp10THDose1 = CurTaskRow.Hp10Dose1; + ep.Hp10THDose2 = CurTaskRow.Hp10Dose2; + ep.Hp07THDose = CurTaskRow.Hp07Dose; + + ////voor Neutron K3, K4 + //int? kx = null; + //if (!CurTaskRow.IsFNGain_ANGainValueNull()) kx = (int)CurTaskRow.FNGain_ANGainValue; + //if (kx != null && (ep.K3 != kx || ep.K4 != kx)) + // { + // ep.K3 = ep.K4 = kx.Value; + // if (!ep.isBG) + // { + // if (ep.K6 != 1310) + // { + // MessageBox.Show("Alarm"); + // } + // else + // { + // ep.WriteCalibration(); + // } + // } + // } +#if DummyData + ep.Hp07THDose = 70; + ep.Hp10THDose1 = 11; + ep.Hp10THDose2 = 12; + + ep.Hp07RateOn = 80; + ep.Hp07RateOff = 9; + ep.Hp10Rate1On = 13; + ep.Hp10Rate1Off = 14; + ep.Hp10Rate2On = 15; + ep.Hp10Rate2Off = 16; + + ep.K3 = 3; ep.K4 = 4; + if (!ep.isBG) + ep.WriteCalibration(); + +#endif + + float gain = 100.0F; + if (!CurTaskRow.IsFNGain_ANGainValueNull()) gain= (int)CurTaskRow.FNGain_ANGainValue; + int rv = ep.IssueAndCheck(gain); + if (rv != 0) + { + MessageBox.Show($"SetIssued error {rv}"); + } + dispatcherTimer.Start(); //restart timer + panelDone.Visibility = Visibility.Visible; + lbHP07.Text = ep.Hp07Name; + lbHP10.Text = ep.Hp10Name; + panelWait.Visibility = Visibility.Collapsed; + } + } + } + private void GetEPD() + { + if (ep.DeviceCount == 1 && ep.EpdID> 0) + { + statusEPD.Text = string.Empty; + DoEPD(); + } + } + private void SetFilter(bool isAlara) + { + string TaskName = "SetFilter"; + dataInterface.stationLog?.WriteLine($"{TaskName} Start {DateTime.Now.ToString("HH:mm:ss.fff")}"); + taskLoading = true; TaskOK.IsEnabled = false; + Inst1 = (cbInst1.IsChecked == true) && thisStation.Inst_CODE1 > 0; + Inst2 = (cbInst2.IsChecked == true) && thisStation.Inst_CODE2 > 0; + StringBuilder fi = new StringBuilder(); + if (!Inst1 && !Inst2) + { + fi.Append(" (1=2) "); + } + else + { + fi.Append(" ( Inst_CODE in ("); + if (Inst1 == true) fi.Append(thisStation.Inst_CODE1.ToString()); + if (Inst1 && Inst2) fi.Append(","); + if (Inst2 ) fi.Append(thisStation.Inst_CODE2.ToString()); + fi.Append($") AND TaskType_CODE {(isAlara ? ">=" : "<")} '1000' ) "); + } + + string filter = fi.ToString(); + thisStation.splunkLog?.KvSet(LSWLib.CLog.skeys.sqlWhere, filter); + + System.Windows.Data.CollectionViewSource getTaskListViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("getTaskListViewSource"))); + try + { + var dv = getTaskListViewSource.View.SourceCollection as DataView; + dataInterface.stationLog?.WriteLine($"filter = {filter}"); + dv.RowFilter = filter; + dv.Sort = "TaskType_CODE"; + getTaskListViewSource.View.MoveCurrentTo(null); + } catch (System.Exception ex) + { + MessageBox.Show(ex.Message); + thisStation.splunkLog?.WriteException(TaskName, "rowFilter", ex); + dataInterface.stationLog?.WriteLine($"{TaskName} Error {ex.Message}"); + } + taskLoading = false; + thisStation.splunkLog?.WriteSplunkLog(TaskName, LSWLib.CLog.iseverity.info); + } + public string getCommentUnknown() + { + StringBuilder res = new StringBuilder(); + var r = dataInterface.GetCommentOnEventRow(3); + res.AppendLine(r.Comment_NL).Replace("\\n", "\n"); + res.AppendLine("---"); + res.AppendLine(r.Comment_FR).Replace("\\n", "\n"); + res.AppendLine("---"); + res.AppendLine(r.Comment_EN).Replace("\\n", "\n"); + res.AppendLine("---"); + return res.ToString(); + } + public string getCommentOnEvent(string prefix, int id) + { + string res = string.Empty; + if (!string.IsNullOrWhiteSpace(prefix)) res = prefix + "\n"; + var r = dataInterface.GetCommentOnEventRow(id); + string l = _User?.Language ?? "E"; + if (r != null) + switch (l) + { + case "N": res += r.Comment_NL; break; + case "F": res += r.Comment_FR; break; + default: res += r.Comment_EN; break; + } + return res.Replace("\\n", "\n"); + } + /// + /// Get User data + /// + /// doCancel + void ShowUserInfo() + { + const string taskName = "ShowUserInfo"; + dataInterface.stationLog?.WriteLine($"ShowUserInfo Start {DateTime.Now.ToString("HH:mm:ss.fff")}"); + + UserSeconds = 10; + //UserScreen + string ReasonNoAccess = string.Empty; + dispatcherTimer?.Stop(); + dispatcherTimer = null; + if (_User.PersID == 0) + { + thisStation.splunkLog?.WriteSplunkLog(taskName, LSWLib.CLog.iseverity.info,"PersID 0 no access"); + tReasonNoAccess.Text = getCommentUnknown(); + if (_User.Error > 0) tReasonNoAccess.Text = _User.ErrorMessage; + tbNotAllowed.IsSelected = true; + Dispatcher.InvokeAsync(() => { endPage(); }); + } + else + { + tbUser.IsSelected = true; + if (_User == null || _User.VisitIDLocked > 0 || _User.AccessAllow == false || _User.hasEPD) + { + if (_User.VisitIDLocked > 0 || _User.AccessAllow == false) + ReasonNoAccess = _User.ReasonNoAccess; + else if (_User.hasEPD) + ReasonNoAccess = "EPD in use"; + else ReasonNoAccess = getCommentOnEvent(string.Empty, 3); + } + + if (!string.IsNullOrEmpty(_User.UserComment)) + { + UserComment.Text = _User.UserComment; + boxComment.Visibility = Visibility.Visible; + } + else + boxComment.Visibility = Visibility.Hidden; + + if (!string.IsNullOrWhiteSpace(ReasonNoAccess)) + UserAccess.Text = ReasonNoAccess; + + Username.Text = _User.FullUserName(); + string msg = string.Empty; + if (!_User.HasMessage() && string.IsNullOrEmpty(ReasonNoAccess)) + { + msg = $"ShowUserInfo to AskTask {DateTime.Now.ToString("HH:mm:ss.fff")}"; + dataInterface.stationLog?.WriteLine(msg); + thisStation.splunkLog?.WriteSplunkLog(taskName, LSWLib.CLog.iseverity.info, msg); + pUserSeconds.Visibility = Visibility.Collapsed; + pUserSeconds.Maximum = pUserSeconds.Value = 1; + Dispatcher.InvokeAsync(AskTask, DispatcherPriority.Normal); + } + else + { + msg = $"ShowUserInfo add timer {DateTime.Now.ToString("HH:mm:ss.fff")}"; + dataInterface.stationLog?.WriteLine(msg); + thisStation.splunkLog?.WriteSplunkLog(taskName, LSWLib.CLog.iseverity.info, msg); + tReasonNoAccess.Text = ReasonNoAccess; + pUserSeconds.Visibility = Visibility.Visible; + pUserSeconds.Maximum = pUserSeconds.Value = UserSeconds; + dispatcherTimer = new DispatcherTimer(DispatcherPriority.Background); + dispatcherTimer.Interval = TimeSpan.FromSeconds(1); + dispatcherTimer.Tick += SwitchToTask; + dispatcherTimer.Start(); + thisStation.splunkLog?.WriteSplunkLog(taskName, LSWLib.CLog.iseverity.info, "Timer"); + } + } + + return ; + } + private void SwitchToTask(object sender, EventArgs e) + { + if (--UserSeconds > 0 && (_User.AccessAllow != true || !string.IsNullOrEmpty(_User.UserComment) || !string.IsNullOrEmpty(_User.ReasonNoAccess))) + { + tUserSeconds.Text = UserSeconds.ToString(); + pUserSeconds.Value = UserSeconds; + } + else + { + dispatcherTimer?.Stop(); + dispatcherTimer = null; + if (_User.AllowShowTask()) Dispatcher.InvokeAsync(AskTask, DispatcherPriority.Normal); + else Dispatcher.InvokeAsync(() => {endPage(); }); + } + } + void AskTask() + { + thisStation.splunkLog?.WriteSplunkLog("AskTask", LSWLib.CLog.iseverity.info); + tbTask.IsSelected = true; + Naam.Text = _User.FirstName + " " + _User.LastName; + dataSet1 = ((eDosStation.DataSet1)(this.FindResource("dataSet1"))); + dataInterface.FillTaskInfo(_User, dataSet1); + bool isAlara = (cbAlara.IsChecked == true); + SetFilter(isAlara); + } + void CheckBadge() + { + _User = dataInterface.GetUser(CSN.Text, Code.Text,true); +#if DEBUG + //_User.UserComment = "Hallo"; +#endif + thisStation.splunkLog?.KvAdd(LSWLib.CLog.skeys.persID, _User.PersID); + thisStation.splunkLog?.WriteSplunkLog("CheckBadge", LSWLib.CLog.iseverity.info, _User.PersID.ToString(),null); + Dispatcher.InvokeAsync(() => { ShowUserInfo(); }); + } + public void showBadge(int persID, string csn) + { + CSN.Text = csn; + Site.Text = string.Empty; + Code.Text = persID.ToString(); + Dispatcher.InvokeAsync(CheckBadge,DispatcherPriority.Normal); + } + public void endPage() + { + dispatcherTimer?.Stop(); + dispatcherTimer = null; + this.Close(); + } + private void bClose_Click(object sender, RoutedEventArgs e) + { + endPage(); + } + private void BClear_Click(object sender, RoutedEventArgs e) + { + CSN.Text = string.Empty; + Site.Text = string.Empty; + Code.Text = string.Empty; + } + private void TaskOK_Click(object sender, RoutedEventArgs e) + { + bool isOk = false; + switch (TaskOK.Tag) + { + case "A": //No access + break; + case "M": //Margin + break; + case "B": // Badge + break; + case "L": //Locked + break; + case "O": // OK + isOk = true; + break; + } + + if (isOk) + { + System.Windows.Data.CollectionViewSource getTaskListViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("getTaskListViewSource"))); + var rv = getTaskListViewSource.View.CurrentItem as DataRowView; + CurTaskRow = rv.Row as DataSet1.GetTaskInfoRow; + + if (_User == null || CurTaskRow == null) return; + if (CurTaskRow.MinWorkerDosisMargin > _User.Margin) + { + MessageBox.Show("Margin exceeded"); + endPage(); + } + else + { + tb.SelectedItem = tbEPD; + panelDone.Visibility = Visibility.Collapsed;//1 + panelWait.Visibility = Visibility.Visible; + statusEPD.Text = $"Waiting for EPD (max {thisStation.EPDTimeOut/1000} seconds)"; + dispatcherTimer = new DispatcherTimer(DispatcherPriority.Background); + dispatcherTimer.Interval = TimeSpan.FromMilliseconds(thisStation.EPDTimeOut / 10); + dispatcherTimer.Tick += CountDown; + ResultTime = DateTime.Now.AddMilliseconds(thisStation.EPDTimeOut); + dispatcherTimer.Start(); + pWaitEpd.Value = pWaitEpd.Maximum = thisStation.EPDTimeOut/1000; + Dispatcher.InvokeAsync(new Action(() => { ep.Wait(thisStation.EPDTimeOut, 1,thisStation.OnlyMK2); }),DispatcherPriority.Background); + } + } + } + private void CountDown(object sender, EventArgs e) + { + double v = (ResultTime - DateTime.Now).TotalSeconds; + if (v > pWaitEpd.Minimum) + pWaitEpd.Value = v; + else + { + dispatcherTimer.Stop(); + endPage(); + } + } + private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + const string TaskName = "ListBox_SelectionChanged"; + if (taskLoading ) return; + var lb = sender as ListBox; + if (lb == null || !lb.Name.Equals("LB1")) return; + + bool exceeded = false; + e.Handled = true; + DataSet1.GetTaskInfoRow o = null; + if (e.AddedItems.Count > 0) + { + o = ((DataRowView) e.AddedItems[0]).Row as DataSet1.GetTaskInfoRow; + TaskOK.IsEnabled = true; + } + thisStation.splunkLog?.KvClear(); + thisStation.splunkLog?.KvAdd(LSWLib.CLog.skeys.persID, _User.PersID); + + if (o != null) + { + exceeded = o.MarginExceeded; + thisStation.splunkLog?.KvAdd(LSWLib.CLog.skeys.TaskCode, o.TaskType_CODE); + TaskOK.Content = "Task"; TaskOK.Tag = "B"; + } + if (_User == null) { TaskOK.Content = "Badge"; TaskOK.Tag = "B"; } + else if (!_User.AllOk) + { + if (_User.AccessAllow != true) { TaskOK.Content = "No Access"; TaskOK.Tag = "A"; } + else if (_User.VisitIDLocked > 0) { TaskOK.Content = "Locked"; TaskOK.Tag = "L"; } + else if (exceeded == true) { TaskOK.Content = "No Margin"; TaskOK.Tag = "M"; } + dataInterface.stationLog?.WriteLine($"User {_User.PersID} not ok "); + thisStation.splunkLog?.WriteSplunkLog(TaskName, LSWLib.CLog.iseverity.warning, TaskOK.Content.ToString()); + } + else + { + TaskOK.Content = "OK"; TaskOK.Tag = "O"; + thisStation.splunkLog?.WriteSplunkLog(TaskName, LSWLib.CLog.iseverity.info); + } + } + private void CbInst1_Click(object sender, RoutedEventArgs e) + { + Inst1 = (cbInst1.IsChecked == true); + cbInst2.IsChecked = !Inst1; + bool isAlara = (cbAlara.IsChecked == true); + SetFilter(isAlara); + } + private void CbAlara_Click(object sender, RoutedEventArgs e) + { + if (!initialising) + { + bool isAlara = true; + cbAlara.IsChecked = true; + cbNormal.IsChecked = !isAlara; + SetFilter(isAlara); + } + } + private void CbNormal_Click(object sender, RoutedEventArgs e) + { + if (!initialising) + { + bool isAlara = false; + cbAlara.IsChecked = isAlara; + cbNormal.IsChecked = !isAlara; + SetFilter(isAlara); + } + } + private void BUserRead_Click(object sender, RoutedEventArgs e) + { + dispatcherTimer.Stop(); + dispatcherTimer.Tick -= SwitchToTask; + if (_User.AllOk == true && !_User.hasEPD) AskTask(); + else endPage(); + } + private void TaskCancel_Click(object sender, RoutedEventArgs e) + { + Close(); + } + private void BTestPerson_Click(object sender, RoutedEventArgs e) + { + Button b = sender as Button; + string id = b.Tag.ToString().ToUpper(); + if (id[0]=='P') + _User = dataInterface.GetUser(null, id.Substring(1),true); + else + _User = dataInterface.GetUser("TP" + b.Tag.ToString().ToUpper(), string.Empty,true); + Dispatcher.InvokeAsync(() => { ShowUserInfo(); }); + dfReader?.WaitEnd(); + + } + private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + try + { + if (ep != null) + { + ep.WaitEnd(); + ep.Dispose(); + ep = null; + } + if (dfReader != null) + { + dfReader.WaitEnd(); + dfReader.Dispose(); + dfReader = null; + } + } + catch (System.Exception ex) + { + System.Diagnostics.Debug.WriteLine(ex.Message); + } + } + private void CbInst2_Click(object sender, RoutedEventArgs e) + { + Inst2 = (cbInst2.IsChecked == true); + cbInst1.IsChecked = !Inst2; + bool isAlara = (cbAlara.IsChecked == true); + SetFilter(isAlara); + } + private void AddTestButtons() + { + StackPanel sp = pTestButtons; + Button b; + string id; + Thickness m = new Thickness(0, 0, 20, 0); + for (int i = 1; i < 15; i++) + { + b = new Button(); + b.Click += BTestPerson_Click; + if (i > 1) + id = i.ToString(); + else id = "P12959"; + b.Tag = id; + b.Content = $"* TP {id} *"; + b.Height = 20; b.Width = 30; + b.Margin = m; + sp.Children.Add(b); + } + + sp.Visibility = Visibility.Visible; + } + private void Window_Loaded(object sender, RoutedEventArgs e) + { + initialising = true; + tbEntry.IsSelected = true; + panelDone.Visibility= Visibility.Collapsed; + panelWait.Visibility = Visibility.Visible; + cbAlara.IsChecked = false; + + cbInst1.Content = thisStation.Inst_Name1; + Inst1 = true; + cbInst1.IsChecked = Inst1; + if (thisStation.Inst_CODE2 > 0) + { + cbInst2.Content = thisStation.Inst_Name2; + cbInst2.Visibility = Visibility.Visible; + Inst2 = false; + cbInst2.IsChecked = Inst2; + } + dataInterface.FillComment(); + initialising = false; + if (thisStation.useTestButtons) AddTestButtons(); + taskLoading = false; + + //StartEPD + if (ep==null) + try + { + ep = new EpdBaseClr.Epd2(thisStation.ComPort); + ep.SetFeedbackSound(thisStation.useBeep, thisStation.useBeepMK3()); + ep.EpdRead += Ep_EpdRead; + ep.EpdError += Ep_EpdError; + ep.EpdTO += Ep_EpdTO; + } + catch (System.Exception ex) + { + thisStation.splunkLog.WriteException(null, "StartEpd", ex); + MessageBox.Show($"{ex.Message}"); + ep = null; + } + + //StartBadge + if (dfReader == null) + { + dfReader = new LSWDesfirePublic.CCard(); + dfReader.GetReaderList(); + if (dfReader.readersList.Contains(thisStation.Reader)) + { + dfReader.SetReader(thisStation.Reader); + dfReader.Badged += DFReader_Badged; + dfReader.BadgeTO += DfReader_BadgeTO; + dfReader.BadgeError += DfReader_BadgeError; + ReaderTask = dfReader.Wait(PageTimeout,10); + } + else + { + StringBuilder er = new StringBuilder($"Badgelezer \"{thisStation.Reader}\" niet gevonden!.\nDeze lezers zijn beschikbaar:\n"); + dfReader.GetReaderList(); + foreach (string r in dfReader.readersList) er.AppendLine($"-> {r}"); + MessageBox.Show(er.ToString(), "Badge Lezer", MessageBoxButton.OK, MessageBoxImage.Exclamation); + dfReader.Dispose(); dfReader = null; + } + } + + } + private void DfReader_BadgeError(LSWDesfirePublic.CCard Sender, LSWDesfirePublic.BadgeErrorEventArgs e) + { + endPage(); + } + private void LeesCancel_Click(object sender, RoutedEventArgs e) + { + endPage(); + } + private void DfReader_BadgeTO(LSWDesfirePublic.CCard Sender, EventArgs e) + { + this.Dispatcher.InvokeAsync(new Action(() => endPage()),DispatcherPriority.Normal); + } + private bool SelectTask(string id_task) + { + System.Windows.Data.CollectionViewSource getTaskListViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("getTaskListViewSource"))); + var dv = getTaskListViewSource.View.SourceCollection as DataView; + var r = dv.Find(id_task); + if (r >= 0) + { + getTaskListViewSource.View.MoveCurrentTo(dv[r]); + return true; + } + else return false; + } + private void numPanel_Click(object sender, RoutedEventArgs e) + { + Button x = sender as Button; + string t = x.Tag as string; + if (t[0] <= '9' && t[0] >= '0') + { + if (numPanelDisplay.Text == "0") numPanelDisplay.Text = string.Empty; + numPanelDisplay.Text += t; + } + else + switch (t[0]) + { + case 'B': + string d = numPanelDisplay.Text; + if (d.Length > 0) numPanelDisplay.Text = d.Substring(0, d.Length - 1); + break; + case 'C': + numPanelDisplay.Text = string.Empty; + break; + case 'E': + //TaskbarItemInfo = numPanelDisplay.Text; + SelectTask(numPanelDisplay.Text); + scrollTask.Visibility = Visibility.Visible; + numPanel.Visibility = Visibility.Collapsed; + break; + } + } + private void ShowNumpad_Click(object sender, RoutedEventArgs e) + { + if (numPanel.Visibility != Visibility.Visible) + { + numPanelDisplay.Text = string.Empty; + numPanel.Visibility = Visibility.Visible; + scrollTask.Visibility = Visibility.Collapsed; + numPanel1.Focus(); + } + else + { + scrollTask.Visibility = Visibility.Visible; + numPanel.Visibility = Visibility.Collapsed; + } + } + private void DFReader_Badged(LSWDesfirePublic.CCard Sender, LSWDesfirePublic.BadgeEventArgs e) + { + if (e.PersID > 0) + this.Dispatcher.InvokeAsync(new Action(() => showBadge(e.PersID, e.UID)), DispatcherPriority.Background); + else + { + string msg = $"No PersID found on badge {e.UID}"; + MessageBox.Show(msg, "Error",MessageBoxButton.OK); + thisStation.splunkLog?.WriteSplunkLog("Badged", LSWLib.CLog.iseverity.warning, null, msg); + } + } + } +} diff --git a/eDosStation/Properties/AssemblyInfo.cs b/eDosStation/Properties/AssemblyInfo.cs index bf5054b..21e19ec 100644 --- a/eDosStation/Properties/AssemblyInfo.cs +++ b/eDosStation/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.6.1.3")] -[assembly: AssemblyFileVersion("2.6.1.3")] +[assembly: AssemblyVersion("2.6.1.4")] +[assembly: AssemblyFileVersion("2.6.1.4")] diff --git a/eDosStation/Settings.xaml.cs b/eDosStation/Settings.xaml.cs index 2fbab1f..f196ab6 100644 --- a/eDosStation/Settings.xaml.cs +++ b/eDosStation/Settings.xaml.cs @@ -17,9 +17,6 @@ namespace eDosStation } } - - - public class readerclass { public string Text { get; set; } @@ -34,7 +31,6 @@ namespace eDosStation Station thisStation; ObservableCollection beepValues = new ObservableCollection(); ObservableCollection readerValues = new ObservableCollection(); - public Settings( Station tStation) { thisStation = tStation; diff --git a/eDosStation/Station.cs b/eDosStation/Station.cs index 3de5dab..1db4ac8 100644 --- a/eDosStation/Station.cs +++ b/eDosStation/Station.cs @@ -247,7 +247,6 @@ namespace eDosStation SqlConnection co = null; using (var cmd = new SqlCommand("StationSettingsUpdate")) { - cmd.CommandType = System.Data.CommandType.StoredProcedure; try { diff --git a/eDosStation/User.cs b/eDosStation/User.cs index be048c0..167d512 100644 --- a/eDosStation/User.cs +++ b/eDosStation/User.cs @@ -1,46 +1,52 @@ -using System; -using System.Collections.Generic; -using System.Data.SqlClient; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace eDosStation -{ - public class User - { - public int PersID { get; set; } - public string LastName { get; set; } - public string FirstName { get; set; } - public string conCode { get; set; } - public string Language { get; set; } - public bool? AccessAllow { get; set; } - public double? Margin { get; set; } - public int? VisitIDLocked { get; set; } - public string ReasonNoAccess { get; set; } - public string UserComment { get; set; } - - public bool AllOk = false; - - public bool hasEPD { get; set; } - - public int Error = 0; - public string ErrorMessage; - internal int? activeVisit; - - public string FullUserName() - { - return string.Concat(FirstName, " ", LastName); - } - public bool HasMessage () - { - return (AccessAllow != true || !string.IsNullOrEmpty(UserComment) || !string.IsNullOrEmpty(ReasonNoAccess)); - - } - public User() - { - LastName = FirstName = conCode = Language = string.Empty; - AccessAllow = null; - } - } -} +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace eDosStation +{ + public class User + { + public int PersID { get; set; } + public string LastName { get; set; } + public string FirstName { get; set; } + public string conCode { get; set; } + public string Language { get; set; } + public bool? AccessAllow { get; set; } + public double? Margin { get; set; } + public int? VisitIDLocked { get; set; } + public string ReasonNoAccess { get; set; } + public string UserComment { get; set; } + + public bool AllOk = false; + + public bool hasEPD { get; set; } + + public int Error = 0; + public string ErrorMessage; + internal int? activeVisit; + + public string FullUserName() + { + return string.Concat(FirstName, " ", LastName); + } + public bool HasMessage () + { + return (AccessAllow != true || !string.IsNullOrEmpty(UserComment) || !string.IsNullOrEmpty(ReasonNoAccess)); + + } + + public bool AllowShowTask() + { + return (AllOk == true && !hasEPD && VisitIDLocked == null); + } + + public User() + { + LastName = FirstName = conCode = Language = string.Empty; + AccessAllow = null; + } + } +} diff --git a/eDosStation/extensions.cs b/eDosStation/extensions.cs index 70dbef3..0c450f5 100644 --- a/eDosStation/extensions.cs +++ b/eDosStation/extensions.cs @@ -17,6 +17,52 @@ static public class extensions return found; } + + static public bool SetIntParam(this System.Data.SqlClient.SqlCommand c, string paramname, string value) + { + bool found = true; + object ovalue; + if (int.TryParse(value, out int ivalue)) ovalue = ivalue; else ovalue = DBNull.Value; + if (!c.Parameters.Contains(paramname)) + { + if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1); + found = c.Parameters.Contains(paramname); + } + if (found) + c.Parameters[paramname].Value = ovalue; + return found; + } + + + static public bool SetIntParam(this System.Data.SqlClient.SqlCommand c, string paramname, int? value) + { + bool found = true; + object ovalue; + if (value.HasValue) ovalue = value.Value; else ovalue = DBNull.Value; + if (!c.Parameters.Contains(paramname)) + { + if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1); + found = c.Parameters.Contains(paramname); + } + if (found) + c.Parameters[paramname].Value= ovalue; + return found; + } + + static public bool SetStringParam(this System.Data.SqlClient.SqlCommand c, string paramname, string value) + { + bool found = true; + object ovalue ; + if (string.IsNullOrEmpty(value)) ovalue = DBNull.Value; else ovalue = value; + if (!c.Parameters.Contains(paramname)) + { + if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1); + found = c.Parameters.Contains(paramname); + } + c.Parameters[paramname].Value = ovalue; + return found; + } + static public bool SetBoolParam(this System.Data.SqlClient.SqlCommand c, string paramname, bool value) { bool found = true; diff --git a/syncEdosLocal/Program.cs b/syncEdosLocal/Program.cs index 5313425..c7e714f 100644 --- a/syncEdosLocal/Program.cs +++ b/syncEdosLocal/Program.cs @@ -7,8 +7,10 @@ using spl = LSWLib.CLog; namespace syncEdosLocal { + class cResult - { + { + public DateTime timestamp; public int VisitsNew, VisitsSkipped, VisitsAddedExits, VisitsAddedEntries; public int ID_Visit_Min, ID_Visit_Max; @@ -17,8 +19,7 @@ namespace syncEdosLocal System.Data.SqlClient.SqlCommand cmd; spl spLog; internal int ID_Station; - - public cResult(int ? iID_station, SqlConnection co, spl Log) + public cResult(int? iID_station, SqlConnection co, spl Log) { if (iID_station.HasValue) ID_Station = iID_station.Value; else ID_Station = -1; ErrorMessage = string.Empty; @@ -30,7 +31,7 @@ namespace syncEdosLocal } public override string ToString() { - return $"Success: {VisitsNew} new , {VisitsAddedEntries} Added Entries, {VisitsAddedExits} Added Exits, {VisitsSkipped} skipped"; + return $"Success: {VisitsNew} new , {VisitsAddedEntries} Added Entries, {VisitsAddedExits} Added Exits, {VisitsSkipped} skipped"; } private void MakeCmd(SqlConnection co) @@ -51,7 +52,7 @@ namespace syncEdosLocal }); } - public void Write( ) + public void Write() { try { @@ -76,7 +77,8 @@ namespace syncEdosLocal if (cs != ConnectionState.Open) cmd.Connection.Close(); spLog.WriteSplunkLog("Result", spLog.splunkSeverity, null, this.ToString()); ; } - } catch (System.Exception ex) + } + catch (System.Exception ex) { spLog.setErrorException(ex); spLog.WriteSplunkLog("Result", spLog.splunkSeverity, null, spLog.splunkError); @@ -92,6 +94,8 @@ namespace syncEdosLocal class Program { + const string moduleName = "syncEdosLocal"; + public static string pcName; public static int Verbose; public static DataSet ds = null; static System.Data.SqlClient.SqlInfoMessageEventHandler iMessage = new SqlInfoMessageEventHandler(Connection_InfoMessage); @@ -103,8 +107,7 @@ namespace syncEdosLocal static LSWLib.Bulker Bulker; static cResult Result; static System.IO.StreamWriter oStream; - - public static int? CreateStationID (SqlConnection eDosLocalCon, SqlConnection eDosCon ) + public static int? CreateStationID(SqlConnection eDosLocalCon, SqlConnection eDosCon) { var c1 = eDosCon.State; if (c1 != ConnectionState.Open) eDosCon.Open(); @@ -120,6 +123,28 @@ namespace syncEdosLocal if (c1 != ConnectionState.Open) eDosCon.Close(); return StationID; } + public static void UpdateRemoteReturns(SqlConnection eDosLocalCon) + { + const string taskName = "UpdateRemoteReturns"; + var oldState = eDosLocalCon.State; + if (oldState == ConnectionState.Closed) eDosLocalCon.Open(); + using (var cmd = new System.Data.SqlClient.SqlCommand("[syncloc].[UpdateRemoteReturns]", eDosLocalCon)) + { + spLog.KvClear(); + cmd.CommandType = CommandType.StoredProcedure; + if (!string.IsNullOrEmpty(pcName)) cmd.Parameters.AddWithValue("@pcnr", pcName); + spLog.KvAddCommand(spl.skeys.sqlQuery, cmd); + try + { + cmd.ExecuteNonQuery(); + spLog.WriteSplunkLog(taskName, spl.iseverity.info, null, "Done"); + } + catch (System.Exception ex) + { + spLog.WriteException(moduleName, taskName, ex); + } + } + } public static bool DoorloopToDo(System.Data.SqlClient.SqlConnection fromConnection, string toConstr, System.Data.SqlClient.SqlInfoMessageEventHandler im, ref bool error, ref bool warning) { ds = new DataSet(); @@ -184,11 +209,11 @@ namespace syncEdosLocal toConnection.InfoMessage += im; toConnection.Open(); if (toConnection.State == ConnectionState.Open) - using (var ucmd = new System.Data.SqlClient.SqlCommand("syncloc.SynchroToLocalTablesUpdate",fromConnection)) + using (var ucmd = new System.Data.SqlClient.SqlCommand("syncloc.SynchroToLocalTablesUpdate", fromConnection)) { ucmd.CommandType = CommandType.StoredProcedure; SqlParameter pa = new SqlParameter("ID_Station", SqlDbType.Int, 4); ucmd.Parameters.Add(pa); pa.Value = Result.ID_Station; - pa = new SqlParameter("OBJECT_ID", SqlDbType.Int, 4); pa.Value = Result.ID_Station; ucmd.Parameters.Add(pa); + pa = new SqlParameter("OBJECT_ID", SqlDbType.Int, 4); pa.Value = Result.ID_Station; ucmd.Parameters.Add(pa); pa = new SqlParameter("lastRecords", SqlDbType.Int, 4); ucmd.Parameters.Add(pa); pa = new SqlParameter("constraintsDeactivated", SqlDbType.Bit); ucmd.Parameters.Add(pa); pa = new SqlParameter("constraintsActivated", SqlDbType.Bit); ucmd.Parameters.Add(pa); @@ -199,7 +224,7 @@ namespace syncEdosLocal foreach (DataRow rtr in dtTables.Rows) { ucmd.Parameters["OBJECT_ID"].Value = (int)rtr[0]; - string src=rtr[1].ToString(); + string src = rtr[1].ToString(); dest = rtr[2].ToString(); var x = rtr.GetChildRows(dtActions.ParentRelations[0]); Task = $"Table {dest}"; @@ -247,11 +272,10 @@ namespace syncEdosLocal SqlConnection[] curDests = new SqlConnection[] { toConnection }; cnt = Bulker.Execute(Task, fromConnection, curDests, qry, CommandType.Text, dest, 0, ref error); ucmd.Parameters["lastRecords"].Value = cnt; - if (dest.Contains("PersonInfo")) + if (dest.Contains("PersonInfo")) Result.Persons = cnt; else if (dest.Contains("TaskInfo")) Result.Tasks = cnt; - if (sqlCmdsActivate != null) using (var cmd = new System.Data.SqlClient.SqlCommand(sqlCmdsActivate.ToString(), toConnection)) { @@ -276,7 +300,6 @@ namespace syncEdosLocal } } ucmd.Parameters["syncError"].Value = error; - ucmd.ExecuteNonQuery(); if (error) break; } @@ -288,9 +311,9 @@ namespace syncEdosLocal static void Main(string[] args) { Verbose = 1; - for (int ai=0;ai1) + if (args[ai][0] == '-' && args[ai].Length > 1) { switch (args[ai][1]) { @@ -303,8 +326,10 @@ namespace syncEdosLocal else oStream = null; // new System.IO.StreamWriter( System.IO.Stream.Null); - spLog = new spl("SynceDosLocal"); - Bulker = new LSWLib.Bulker(spLog,false); + pcName = System.Environment.MachineName; + + spLog = new spl(moduleName); + Bulker = new LSWLib.Bulker(spLog, false); messages = Bulker.messages; messages.AppendLine(spLog.GetStartInfoString()); @@ -312,7 +337,7 @@ namespace syncEdosLocal var SourceCoStr = new SqlConnectionStringBuilder(System.Configuration.ConfigurationManager.ConnectionStrings["eDosConnectionString"].ConnectionString); var LocalCoStr = new SqlConnectionStringBuilder(System.Configuration.ConfigurationManager.ConnectionStrings["LocalConnectionString"].ConnectionString); - SourceCoStr.TrustServerCertificate = LocalCoStr.TrustServerCertificate= true; + SourceCoStr.TrustServerCertificate = LocalCoStr.TrustServerCertificate = true; SourceCoStr.ApplicationName = LocalCoStr.ApplicationName = "eDosSync"; SourceCoStr.WorkstationID = LocalCoStr.WorkstationID = Environment.MachineName; @@ -325,13 +350,14 @@ namespace syncEdosLocal reDos = key.GetValue("eDos").ToString(); reDosLocal = key.GetValue("eDosLocal").ToString(); } - } catch (System.Exception ex) + } + catch (System.Exception ex) { spLog.setErrorException(ex); spLog.WriteSplunkLog("init", spLog.splunkSeverity, null, spLog.splunkError); messages.AppendLine($"Error reading reg key"); } - + messages.AppendLine($"Remote {SourceCoStr.DataSource} db {SourceCoStr.InitialCatalog} Logon= { SourceCoStr.UserID} alias:{ reDos }"); messages.AppendLine($"Local {LocalCoStr.DataSource} db {LocalCoStr.InitialCatalog} Logon= { LocalCoStr.UserID} alias:{ reDosLocal }"); @@ -368,6 +394,10 @@ namespace syncEdosLocal } if (error) goto final; + //Update remote returns + + + final: messages.AppendLine($"Process:End,tm={System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm")}, Errors={error}, Warnings={warning}"); //System.Diagnostics.Debug.WriteLine(messages.ToString()); @@ -410,21 +440,21 @@ namespace syncEdosLocal { Result.CheckVisitID(lr.ID_Visit); //min max cr = ds.CentralVisits.FindByID_StationID_Visit(lr.ID_Station, lr.ID_Visit); - if (cr==null) + if (cr == null) tc.Fill(ds.CentralVisits, lr.ID_Station, lr.ID_Visit); cr = ds.CentralVisits.FindByID_StationID_Visit(lr.ID_Station, lr.ID_Visit); if (cr == null) { Result.VisitsNew++; copyrow(lr, ds.CentralVisits); - if ((lr.VisitStatus & 1) > 0) { lr.syncedEntry = true; Result.VisitsAddedEntries++;} + if ((lr.VisitStatus & 1) > 0) { lr.syncedEntry = true; Result.VisitsAddedEntries++; } if ((lr.VisitStatus & 2) > 0) { lr.syncedExit = true; Result.VisitsAddedExits++; } } else switch (cr.VisitStatus) { case 3: lr.syncedEntry = lr.syncedExit = true; Result.VisitsSkipped++; break; - case 1: if ((lr.VisitStatus & 2) == 2) { copyExit(lr, cr); lr.syncedEntry=lr.syncedExit = true; Result.VisitsAddedExits++; } break; - case 2: if ((lr.VisitStatus & 1) == 1) { copyEntry(lr, cr); lr.syncedEntry=lr.syncedExit= true; Result.VisitsAddedEntries++; } break; + case 1: if ((lr.VisitStatus & 2) == 2) { copyExit(lr, cr); lr.syncedEntry = lr.syncedExit = true; Result.VisitsAddedExits++; } break; + case 2: if ((lr.VisitStatus & 1) == 1) { copyEntry(lr, cr); lr.syncedEntry = lr.syncedExit = true; Result.VisitsAddedEntries++; } break; } } ta.Update(ds.LocalVisits); @@ -497,7 +527,7 @@ namespace syncEdosLocal { DataSet1.CentralVisitsRow cr = centralVisits.NewCentralVisitsRow(); foreach (DataColumn sc in lr.Table.Columns) - if (lr.Table.Columns.Contains(sc.ColumnName) ) cr[sc.ColumnName] = lr[sc.ColumnName]; + if (lr.Table.Columns.Contains(sc.ColumnName)) cr[sc.ColumnName] = lr[sc.ColumnName]; centralVisits.AddCentralVisitsRow(cr); return cr; }