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;
}