This commit is contained in:
Luc Vandenbroucke 2022-04-19 14:58:36 +02:00
parent d57b990eee
commit eafb8ce7b3
11 changed files with 1640 additions and 1525 deletions

View file

@ -71,7 +71,12 @@ AS BEGIN
SET @ID_Station = @EPDVisitID % 100; SET @ID_Station = @EPDVisitID % 100;
SET @ID_Visit = @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(@eDosDose07Alarm, 0) <> 0
OR ISNULL(@eDosRate07Alarm, 0) <> 0 OR ISNULL(@eDosRate07Alarm, 0) <> 0
OR ISNULL(@eDosDose10Alarm, 0) <> 0 OR ISNULL(@eDosDose10Alarm, 0) <> 0

View file

@ -7,70 +7,86 @@ GO
SET QUOTED_IDENTIFIER ON; SET QUOTED_IDENTIFIER ON;
GO 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, ALTER PROCEDURE [dbo].[GetPersonInfo] @CSN CHAR(14) = NULL,
@PersID INT = NULL @PersID INT = NULL,
AS @AllowMultipleEPD BIT = 0
--DECLARE @PersID INT = null, @CSN CHAR(14) = 'TP10'; AS BEGIN
DECLARE --DECLARE @PersID INT = null, @CSN CHAR(14) = 'TP10';
@lid_station INT, DECLARE
@lid_visit INT; @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 SELECT
@PersID = [PersID] [a].[PersID],
FROM [dbo].[PersonInfoSnapshot] [a].[Type],
WHERE [CSN] = @CSN COLLATE SQL_Latin1_General_CP850_BIN; [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 go
---- Luc 2022-03-25 ---- Luc 2022-03-25
@ -178,151 +194,158 @@ IF NOT EXISTS (SELECT
END; END;
GO GO
ALTER PROCEDURE [syncLoc].[UpdateRemoteReturns] @ID_LocalStation INT = NULL ALTER PROCEDURE [syncLoc].[UpdateRemoteReturns] @ID_LocalStation INT = NULL,
AS @pcnr VARCHAR(20) = NULL
-- Luc 2022-03-25 AS BEGIN
--DECLARE @ID_LocalStation INT = 9; -- Luc 2022-03-25
DECLARE @pcnr VARCHAR(20); --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'; IF @pcnr = 'EDOS-SCH' SET @pcnr = 'EDOS-WSCH';
ELSE IF @pcnr = 'DESKTOP-CCDL4A3' SET @pcnr = 'EDOS-LNK'; ELSE IF @pcnr = 'DESKTOP-CCDL4A3' SET @pcnr = 'EDOS-LNK';
ELSE IF @pcnr = 'EDOS-ZZZ' SET @pcnr = 'EDOS-LSCH'; 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 SELECT
@ID_LocalStation = [id_station] @ID_LocalStation,
FROM [dbo].[stationsettings] [PCNr]
WHERE [pcnr] = @pcnr; FROM [dbo].[StationSettings]
WHERE [ID_Station] = @ID_LocalStation;
SELECT TRUNCATE TABLE [syncLoc].[compareVisit];
@ID_LocalStation,
[pcnr]
FROM [dbo].[stationsettings]
WHERE [id_station] = @ID_LocalStation;
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]) UPDATE
SELECT [dbo].[Visit]
[v].[ID_Station], SET
[v].[ID_Visit], [ReturnTime] = [c].[ReturnTime],
[v].[Inst_CODE], [Hp10Dose] = [c].[Hp10Dose],
[v].[PersID], [Hp07Dose] = [c].[Hp07Dose],
[v].[ID_Task], [Hp10Total] = [c].[Hp10Total],
[v].[EntryTime], [Hp07Total] = [c].[Hp07Total],
[v].[ReturnTime], [Hp10Peak] = [c].[Hp10Peak],
[v].[Hp10Dose], [Hp07Peak] = [c].[Hp07Peak],
[v].[Hp07Dose], [Hp10Time] = [c].[Hp10Time],
[v].[Hp10Total], [Hp07Time] = [c].[Hp07Time],
[v].[Hp07Total], [QualityData] = [c].[QualityData],
[v].[Hp10Peak], [K1] = [c].[K1],
[v].[Hp07Peak], [K2] = [c].[K2],
[v].[Hp10Time], [K3] = [c].[K3],
[v].[Hp07Time], [K4] = [c].[K4],
[v].[ID_EPD], [K5] = [c].[K5],
[v].[QualityData], [K6] = [c].[K6],
[v].[K1], [SG] = [c].[SG],
[v].[K2], [BC] = [c].[BC],
[v].[K3], [FB] = [c].[FB],
[v].[K4], [HG] = [c].[HG],
[v].[K5], [alarmStatus] = [c].[alarmStatus],
[v].[K6], [otherAlarms] = [c].[otherAlarms],
[v].[SG], [errorStatus] = [c].[errorStatus],
[v].[BC], [operatingStatus] = [c].[operatingStatus],
[v].[FB], [isComplete] = [c].[isComplete],
[v].[HG], [isDeleted] = [c].[isDeleted],
[v].[alarmStatus], [isAlarm] = [c].[isAlarm],
[v].[otherAlarms], [isAlarmCleared] = [c].[isAlarmCleared],
[v].[errorStatus], [isManualExit] = CASE WHEN [v].[isManualExit] IS NULL
[v].[operatingStatus], OR [c].[isManualExit] = 1 THEN [c].[isManualExit] ELSE [v].[isManualExit] END,
[v].[isBG], [ID_Station_Return] = ISNULL([c].[ID_Station_Return], [v].[ID_Station_Return]),
[v].[isComplete], [EXIT_EPD_CLOCK] = [c].[EXIT_EPD_CLOCK],
[v].[isDeleted], [eDosBatteryWarning] = CASE WHEN [v].[eDosBatteryWarning] IS NULL
[v].[isAlarm], OR [c].[eDosBatteryWarning] = 1 THEN [c].[eDosBatteryWarning] ELSE [v].[eDosBatteryWarning] END,
[v].[isAlarmCleared], [eDosDose07Warning] = CASE WHEN [v].[eDosDose07Warning] IS NULL
[v].[isManualExit], OR [c].[eDosDose07Warning] = 1 THEN [c].[eDosDose07Warning] ELSE [v].[eDosDose07Warning] END,
[v].[ID_Station_Return], [eDosDose07Alarm] = CASE WHEN [v].[eDosDose07Alarm] IS NULL
[v].[ENTRY_EPD_CLOCK], OR [c].[eDosDose07Alarm] = 1 THEN [c].[eDosDose07Alarm] ELSE [v].[eDosDose07Alarm] END,
[v].[EXIT_EPD_CLOCK], [eDosRate07Warning] = CASE WHEN [v].[eDosRate07Warning] IS NULL
[v].[TIME_LOST], OR [c].[eDosRate07Warning] = 1 THEN [c].[eDosRate07Warning] ELSE [v].[eDosRate07Warning] END,
[v].[epdID], [eDosRate07Alarm] = CASE WHEN [v].[eDosRate07Alarm] IS NULL
[v].[eDosBatteryWarning], OR [c].[eDosRate07Alarm] = 1 THEN [c].[eDosRate07Alarm] ELSE [v].[eDosRate07Alarm] END,
[v].[eDosDose07Warning], [eDosDose10Warning] = CASE WHEN [v].[eDosDose10Warning] IS NULL
[v].[eDosDose07Alarm], OR [c].[eDosDose10Warning] = 1 THEN [c].[eDosDose10Warning] ELSE [v].[eDosDose10Warning] END,
[v].[eDosRate07Warning], [eDosDose10Alarm] = CASE WHEN [v].[eDosDose10Alarm] IS NULL
[v].[eDosRate07Alarm], OR [c].[eDosDose10Alarm] = 1 THEN [c].[eDosDose10Alarm] ELSE [v].[eDosDose10Alarm] END,
[v].[eDosDose10Warning], [eDosRate10Warning] = CASE WHEN [v].[eDosRate10Warning] IS NULL
[v].[eDosDose10Alarm], OR [c].[eDosRate10Warning] = 1 THEN [c].[eDosRate10Warning] ELSE [v].[eDosRate10Warning] END,
[v].[eDosRate10Warning], [eDosRate10Alarm] = CASE WHEN [v].[eDosRate10Alarm] IS NULL
[v].[eDosRate10Alarm] OR [c].[eDosRate10Alarm] = 1 THEN [c].[eDosRate10Alarm] ELSE [v].[eDosRate10Alarm] END
FROM [EDOS].[edos].[dbo].[visit] [v] FROM [dbo].[Visit] [v]
INNER JOIN(SELECT INNER JOIN [syncLoc].[compareVisit] [c] ON [c].[ID_Station] = [v].[ID_Station]
[ID_Visit] AND [c].[ID_Visit] = [v].[ID_Visit]
FROM [dbo].[Visit] WHERE [v].[ReturnTime] IS NULL
WHERE [ID_Station] = @ID_LocalStation AND [v].[isComplete] = 0;
AND [ReturnTime] IS NULL) [i] ON [i].[ID_Visit] = [v].[ID_Visit] END;
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;
GO GO
GRANT EXECUTE ON [syncLoc].[UpdateRemoteReturns] TO [eDosStation]; GRANT EXECUTE ON [syncLoc].[UpdateRemoteReturns] TO [eDosStation];
GO GO

View file

@ -1,347 +1,347 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16 # Visual Studio Version 16
VisualStudioVersion = 16.0.31205.134 VisualStudioVersion = 16.0.31205.134
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EpdBase", "EpdBase\EpdBase.vcxproj", "{3114A047-7562-42FE-94DE-2418EF19AD9A}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EpdBase", "EpdBase\EpdBase.vcxproj", "{3114A047-7562-42FE-94DE-2418EF19AD9A}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestEdosBase", "TestEdosBase\TestEdosBase.vcxproj", "{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestEdosBase", "TestEdosBase\TestEdosBase.vcxproj", "{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestDirect", "TestDirect\TestDirect.vcxproj", "{3655B312-F7C2-4825-BD5F-E087F6AF2D90}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestDirect", "TestDirect\TestDirect.vcxproj", "{3655B312-F7C2-4825-BD5F-E087F6AF2D90}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eDosStation", "eDosStation\eDosStation.csproj", "{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eDosStation", "eDosStation\eDosStation.csproj", "{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EpdBaseClr", "EpdBaseClr\EpdBaseClr.vcxproj", "{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EpdBaseClr", "EpdBaseClr\EpdBaseClr.vcxproj", "{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OkReadBadge", "OkReadBadge\OkReadBadge.vcxproj", "{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OkReadBadge", "OkReadBadge\OkReadBadge.vcxproj", "{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegisterBAdge", "RegisterBAdge\RegisterBAdge.csproj", "{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegisterBAdge", "RegisterBAdge\RegisterBAdge.csproj", "{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "syncEdosLocal", "syncEdosLocal\syncEdosLocal.csproj", "{B2264FF1-0F36-401B-91FE-DB3087CE05F5}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "syncEdosLocal", "syncEdosLocal\syncEdosLocal.csproj", "{B2264FF1-0F36-401B-91FE-DB3087CE05F5}"
EndProject EndProject
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "eDosSetup", "SetupProject1\eDosSetup.wixproj", "{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}" Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "eDosSetup", "SetupProject1\eDosSetup.wixproj", "{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestMK3", "TestMK3\TestMK3.vcxproj", "{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestMK3", "TestMK3\TestMK3.vcxproj", "{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MK3", "MK3\MK3.vcxproj", "{CFD0F68D-7EF9-4541-B55A-2A557D84295B}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MK3", "MK3\MK3.vcxproj", "{CFD0F68D-7EF9-4541-B55A-2A557D84295B}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestEPD3Dll", "TestEPD3Dll\TestEPD3Dll.csproj", "{37EE9D5D-1204-4B3F-879D-AAF5A9181085}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestEPD3Dll", "TestEPD3Dll\TestEPD3Dll.csproj", "{37EE9D5D-1204-4B3F-879D-AAF5A9181085}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Epd3Base", "EpdBase3\EpdBase3.vcxproj", "{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Epd3Base", "EpdBase3\EpdBase3.vcxproj", "{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eDosPrep", "eDosPrep\eDosPrep.vcxproj", "{294068AF-EA7B-4851-97B2-2AB5F64167D9}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eDosPrep", "eDosPrep\eDosPrep.vcxproj", "{294068AF-EA7B-4851-97B2-2AB5F64167D9}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheckRemoteeDosLocal", "CheckRemoteeDosLocal\CheckRemoteeDosLocal.csproj", "{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheckRemoteeDosLocal", "CheckRemoteeDosLocal\CheckRemoteeDosLocal.csproj", "{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}"
EndProject EndProject
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "eDosLocal", "eDosLocal\eDosLocal.sqlproj", "{3A150025-D770-4521-BA21-16843B2D5359}" Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "eDosLocal", "eDosLocal\eDosLocal.sqlproj", "{3A150025-D770-4521-BA21-16843B2D5359}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testing", "Testing\Testing.csproj", "{814E327A-4148-44D8-9EB0-A4190A454540}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testing", "Testing\Testing.csproj", "{814E327A-4148-44D8-9EB0-A4190A454540}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64 Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
Debug|x86 = Debug|x86 Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM Release|ARM = Release|ARM
Release|ARM64 = Release|ARM64 Release|ARM64 = Release|ARM64
Release|x64 = Release|x64 Release|x64 = Release|x64
Release|x86 = Release|x86 Release|x86 = Release|x86
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|Any CPU.ActiveCfg = Debug|Win32 {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|Any CPU.Build.0 = Debug|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|ARM.ActiveCfg = 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|ARM64.ActiveCfg = Debug|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x64.ActiveCfg = Debug|x64 {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|x64.Build.0 = Debug|x64
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Debug|x86.ActiveCfg = Debug|Win32 {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}.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.ActiveCfg = Release|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|Any CPU.Build.0 = 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|ARM.ActiveCfg = Release|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|ARM64.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.ActiveCfg = Release|x64
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x64.Build.0 = 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.ActiveCfg = Release|Win32
{3114A047-7562-42FE-94DE-2418EF19AD9A}.Release|x86.Build.0 = 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|Any CPU.ActiveCfg = Debug|Win32
{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|ARM.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|ARM64.ActiveCfg = Debug|Win32
{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|x64.ActiveCfg = Debug|x64 {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|x64.Build.0 = Debug|x64
{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Debug|x86.ActiveCfg = Debug|Win32 {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|Any CPU.ActiveCfg = Release|Win32
{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|ARM.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|ARM64.ActiveCfg = Release|Win32
{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x64.ActiveCfg = Release|x64 {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|x64.Build.0 = Release|x64
{7B3DD1C5-D8D0-408C-A272-FF5E4A30DF24}.Release|x86.ActiveCfg = Release|Win32 {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|Any CPU.ActiveCfg = Debug|Win32
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|ARM.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|ARM64.ActiveCfg = Debug|Win32
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|x64.ActiveCfg = Debug|x64 {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|x64.Build.0 = Debug|x64
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Debug|x86.ActiveCfg = Debug|Win32 {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|Any CPU.ActiveCfg = Release|Win32
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|ARM.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|ARM64.ActiveCfg = Release|Win32
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x64.ActiveCfg = Release|x64 {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|x64.Build.0 = Release|x64
{3655B312-F7C2-4825-BD5F-E087F6AF2D90}.Release|x86.ActiveCfg = Release|Win32 {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.ActiveCfg = Debug|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM.Build.0 = 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.ActiveCfg = Debug|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|ARM64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Debug|x86.Build.0 = 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.ActiveCfg = Release|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM.Build.0 = 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.ActiveCfg = Release|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|ARM64.Build.0 = 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.ActiveCfg = Release|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{9B12FDB8-0FD9-4C1E-A904-6FC74C35D50F}.Release|x86.Build.0 = 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.ActiveCfg = Debug|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|Any CPU.Build.0 = 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|ARM.ActiveCfg = Debug|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|ARM64.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.ActiveCfg = Debug|x64
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Debug|x86.Build.0 = 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.ActiveCfg = Release|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|Any CPU.Build.0 = 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|ARM.ActiveCfg = Release|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|ARM64.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.ActiveCfg = Release|x64
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x64.Build.0 = 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.ActiveCfg = Release|Win32
{F1F47B79-9930-48B0-8DDE-56E2C4BED2A2}.Release|x86.Build.0 = 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.ActiveCfg = Debug|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|Any CPU.Build.0 = 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|ARM.ActiveCfg = Debug|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|ARM64.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.ActiveCfg = Debug|x64
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Debug|x64.Build.0 = 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}.Debug|x86.ActiveCfg = Debug|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|Any CPU.ActiveCfg = Release|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|Any CPU.Build.0 = Release|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|ARM.ActiveCfg = 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|ARM64.ActiveCfg = Release|Win32
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|x64.ActiveCfg = Release|x64 {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|x64.Build.0 = Release|x64
{F98F3496-8A4C-4BDB-9F17-C7AF47A60739}.Release|x86.ActiveCfg = Release|Win32 {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.ActiveCfg = Debug|Any CPU
{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM.Build.0 = 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.ActiveCfg = Debug|Any CPU
{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|ARM64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Debug|x64.Build.0 = 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}.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.ActiveCfg = Release|Any CPU
{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM.Build.0 = 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.ActiveCfg = Release|Any CPU
{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|ARM64.Build.0 = 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.ActiveCfg = Release|Any CPU
{6AC69ACE-3666-4A3D-A4B9-FFA24C424C1B}.Release|x64.Build.0 = 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 {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.ActiveCfg = Debug|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM.Build.0 = 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.ActiveCfg = Debug|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|ARM64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Debug|x86.Build.0 = 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.ActiveCfg = Release|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM.Build.0 = 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.ActiveCfg = Release|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|ARM64.Build.0 = 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.ActiveCfg = Release|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{B2264FF1-0F36-401B-91FE-DB3087CE05F5}.Release|x86.Build.0 = 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|Any CPU.ActiveCfg = Debug|x86
{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|ARM.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|ARM64.ActiveCfg = Debug|x86
{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|x64.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.ActiveCfg = Debug|x86
{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Debug|x86.Build.0 = 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|Any CPU.ActiveCfg = Release|x86
{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|ARM.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|ARM64.ActiveCfg = Release|x86
{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|x64.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.ActiveCfg = Release|x86
{D24E8510-81C4-4F32-B48D-38BA67AEFB0A}.Release|x86.Build.0 = 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|Any CPU.ActiveCfg = Debug|Win32
{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|ARM.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|ARM64.ActiveCfg = Debug|Win32
{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x64.ActiveCfg = Debug|x64 {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|x64.Build.0 = Debug|x64
{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Debug|x86.ActiveCfg = Debug|Win32 {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}.Debug|x86.Build.0 = Debug|Win32
{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|Any CPU.ActiveCfg = Release|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|ARM.ActiveCfg = Release|Win32
{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|ARM64.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.ActiveCfg = Release|x64
{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x64.Build.0 = 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.ActiveCfg = Release|Win32
{5AF7D0D5-9A6D-4C41-8466-3DFBA4F94D84}.Release|x86.Build.0 = 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|Any CPU.ActiveCfg = Debug|Win32
{CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|ARM.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|ARM64.ActiveCfg = Debug|Win32
{CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x64.ActiveCfg = Debug|x64 {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|x64.Build.0 = Debug|x64
{CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Debug|x86.ActiveCfg = Debug|Win32 {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}.Debug|x86.Build.0 = Debug|Win32
{CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|Any CPU.ActiveCfg = Release|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|ARM.ActiveCfg = Release|Win32
{CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|ARM64.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.ActiveCfg = Release|x64
{CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x64.Build.0 = 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.ActiveCfg = Release|Win32
{CFD0F68D-7EF9-4541-B55A-2A557D84295B}.Release|x86.Build.0 = 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.ActiveCfg = Debug|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM.Build.0 = 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.ActiveCfg = Debug|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|ARM64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Debug|x86.Build.0 = 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.ActiveCfg = Release|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM.Build.0 = 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.ActiveCfg = Release|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|ARM64.Build.0 = 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.ActiveCfg = Release|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{37EE9D5D-1204-4B3F-879D-AAF5A9181085}.Release|x86.Build.0 = 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|Any CPU.ActiveCfg = Debug|Win32
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|ARM.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|ARM64.ActiveCfg = Debug|Win32
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x64.ActiveCfg = Debug|x64 {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|x64.Build.0 = Debug|x64
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Debug|x86.ActiveCfg = Debug|Win32 {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}.Debug|x86.Build.0 = Debug|Win32
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|Any CPU.ActiveCfg = Release|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|ARM.ActiveCfg = Release|Win32
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|ARM64.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.ActiveCfg = Release|x64
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x64.Build.0 = 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.ActiveCfg = Release|Win32
{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x86.Build.0 = 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|Any CPU.ActiveCfg = Debug|Win32
{294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|ARM.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|ARM64.ActiveCfg = Debug|Win32
{294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x64.ActiveCfg = Debug|x64 {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|x64.Build.0 = Debug|x64
{294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x86.ActiveCfg = Debug|Win32 {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}.Debug|x86.Build.0 = Debug|Win32
{294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|Any CPU.ActiveCfg = Release|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|ARM.ActiveCfg = Release|Win32
{294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|ARM64.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.ActiveCfg = Release|x64
{294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x64.Build.0 = 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.ActiveCfg = Release|Win32
{294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x86.Build.0 = 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.ActiveCfg = Debug|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM.Build.0 = 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.ActiveCfg = Debug|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|ARM64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Debug|x86.Build.0 = 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.ActiveCfg = Release|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM.Build.0 = 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.ActiveCfg = Release|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|ARM64.Build.0 = 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.ActiveCfg = Release|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{41FCBAFF-5FC7-49A1-9A97-23B8F0742F59}.Release|x86.Build.0 = 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.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.Build.0 = Debug|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.Deploy.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.ActiveCfg = Debug|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM.Build.0 = 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|ARM.Deploy.0 = Debug|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM64.ActiveCfg = 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.Build.0 = Debug|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|ARM64.Deploy.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.ActiveCfg = Debug|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|x64.Build.0 = 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|x64.Deploy.0 = Debug|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|x86.ActiveCfg = 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.Build.0 = Debug|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Debug|x86.Deploy.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.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.Build.0 = Release|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Release|Any CPU.Deploy.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.ActiveCfg = Release|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM.Build.0 = 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|ARM.Deploy.0 = Release|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM64.ActiveCfg = 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.Build.0 = Release|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Release|ARM64.Deploy.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.ActiveCfg = Release|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Release|x64.Build.0 = 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|x64.Deploy.0 = Release|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Release|x86.ActiveCfg = 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.Build.0 = Release|Any CPU
{3A150025-D770-4521-BA21-16843B2D5359}.Release|x86.Deploy.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.ActiveCfg = Debug|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM.Build.0 = 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.ActiveCfg = Debug|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Debug|ARM64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Debug|x86.Build.0 = 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.ActiveCfg = Release|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM.Build.0 = 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.ActiveCfg = Release|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Release|ARM64.Build.0 = 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.ActiveCfg = Release|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Release|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{814E327A-4148-44D8-9EB0-A4190A454540}.Release|x86.Build.0 = Release|Any CPU {814E327A-4148-44D8-9EB0-A4190A454540}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {72198428-64BB-49B2-BC67-B588947AA1E1} SolutionGuid = {72198428-64BB-49B2-BC67-B588947AA1E1}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View file

@ -20,6 +20,7 @@ namespace eDosStation
public static SqlCommand NextIDCommand; public static SqlCommand NextIDCommand;
public static SqlCommand LastIDCommand; public static SqlCommand LastIDCommand;
public static SqlCommand CheckStatus; public static SqlCommand CheckStatus;
public static SqlCommand GetPersonInfo;
public DataSet1.CommentOnEventDataTable dtCOE; public DataSet1.CommentOnEventDataTable dtCOE;
private bool CheckUser, AllowMultipleEPD; private bool CheckUser, AllowMultipleEPD;
private SqlCommand ReverseSyncCommand; private SqlCommand ReverseSyncCommand;
@ -135,8 +136,11 @@ namespace eDosStation
localConnection = new SqlConnection(currentConStr); localConnection = new SqlConnection(currentConStr);
NextIDCommand = new SqlCommand("SELECT NEXT VALUE FOR VisitSequence as VisitID", localConnection); NextIDCommand = new SqlCommand("SELECT NEXT VALUE FOR VisitSequence as VisitID", localConnection);
isLocal = true; isLocal = true;
bool rv = checkCon(true);
MakeCommands(); MakeCommands();
bool rv = checkCon(false); if (localConnection.State == ConnectionState.Open)localConnection.Close();
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -192,6 +196,9 @@ namespace eDosStation
} }
void MakeCommands() void MakeCommands()
{ {
var oldState = localConnection.State;
if (oldState == ConnectionState.Closed) localConnection.Open();
LastIDCommand = new SqlCommand("VisitIDLast", localConnection); LastIDCommand = new SqlCommand("VisitIDLast", localConnection);
LastIDCommand.CommandType = CommandType.StoredProcedure; LastIDCommand.CommandType = CommandType.StoredProcedure;
var pa = new System.Data.SqlClient.SqlParameter("ID_Station", SqlDbType.Int, 4); LastIDCommand.Parameters.Add(pa); 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 }; 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) public void VisitExit(int EpdVisitID, EpdBaseClr.Epd2 ep)
{ {
@ -350,16 +364,12 @@ namespace eDosStation
{ {
using (var dataSet1GetTaskInfoTableAdapter = new DataSet1TableAdapters.GetTaskInfoTableAdapter()) // new eDosStation.DataSet1TableAdapters.GetTaskInfoTableAdapter()) 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); dataSet1GetTaskInfoTableAdapter.Fill(dataSet1.GetTaskInfo, null, _User.Margin);
stationLog?.WriteLine($"dataSet1GetTaskInfoTableAdapter Filled {System.DateTime.Now}");
} }
} }
catch (System.Exception ex) catch (System.Exception ex)
{ {
splunkLog?.WriteException(moduleName, taskName, 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) public User GetUser(string CSN, string Code, bool isEntry)
@ -369,61 +379,58 @@ namespace eDosStation
//object[] Values = null; //object[] Values = null;
try 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); tb.Load(rs);
if (!string.IsNullOrEmpty(CSN)) cmd.Parameters.AddWithValue("csn", CSN); if (tb.Rows.Count > 0)
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); DataRow dr = tb.Rows[0];
if (tb.Rows.Count > 0) //Values = new object[rs.FieldCount];
{ //int rv = rs.GetValues(Values);
DataRow dr = tb.Rows[0]; u.PersID = (int)dr["PersID"];
//Values = new object[rs.FieldCount]; u.LastName = dr["LastName"].ToString();
//int rv = rs.GetValues(Values); u.FirstName = dr["FirstName"].ToString();
u.PersID = (int)dr["PersID"]; //u.conCode = Values[rs.GetOrdinal("conCode")].ToString();
u.LastName = dr["LastName"].ToString(); u.Language = dr["Language"].ToString();
u.FirstName = dr["FirstName"].ToString(); u.AccessAllow = dr["AccessAllow"] as bool?;
//u.conCode = Values[rs.GetOrdinal("conCode")].ToString(); decimal? m = dr["Margin"] as decimal?;
u.Language = dr["Language"].ToString(); if (m.HasValue) u.Margin = (double)m.Value; else u.Margin = null;
u.AccessAllow = dr["AccessAllow"] as bool?; //u.Margin = (double ?)Values[rs.GetOrdinal("Margin")] ;
decimal? m = dr["Margin"] as decimal?; u.VisitIDLocked = dr["VisitIDLocked"] as int?;
if (m.HasValue) u.Margin = (double)m.Value; else u.Margin = null; u.ReasonNoAccess = dr["ReasonNoAccess"].ToString().Replace("\\n", "\n");
//u.Margin = (double ?)Values[rs.GetOrdinal("Margin")] ; u.UserComment = dr["Comment"].ToString();
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")) if (isEntry && !AllowMultipleEPD && 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
{ {
// Not found u.hasEPD = (bool)dr["hasEPD"];
u.PersID = 0; if (u.hasEPD) u.ReasonNoAccess = "You have an EPD in use"; //!!! not for return !!!!
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(); 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) catch (System.Exception ex)
@ -441,7 +448,10 @@ namespace eDosStation
VisitExitCommand.Connection = localConnection; VisitExitCommand.Connection = localConnection;
try try
{ {
splunkLog.KvClear();
splunkLog.KvAddCommand(CLog.skeys.sqlQuery, ReverseSyncCommand);
ReverseSyncCommand.ExecuteNonQuery(); ReverseSyncCommand.ExecuteNonQuery();
splunkLog.WriteSplunkLog(taskName , CLog.iseverity.info );
rv = true; rv = true;
} }
catch (System.Exception ex) catch (System.Exception ex)

File diff suppressed because it is too large Load diff

View file

@ -51,5 +51,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.6.1.3")] [assembly: AssemblyVersion("2.6.1.4")]
[assembly: AssemblyFileVersion("2.6.1.3")] [assembly: AssemblyFileVersion("2.6.1.4")]

View file

@ -17,9 +17,6 @@ namespace eDosStation
} }
} }
public class readerclass public class readerclass
{ {
public string Text { get; set; } public string Text { get; set; }
@ -34,7 +31,6 @@ namespace eDosStation
Station thisStation; Station thisStation;
ObservableCollection<beepclass> beepValues = new ObservableCollection<beepclass>(); ObservableCollection<beepclass> beepValues = new ObservableCollection<beepclass>();
ObservableCollection<readerclass> readerValues = new ObservableCollection<readerclass>(); ObservableCollection<readerclass> readerValues = new ObservableCollection<readerclass>();
public Settings( Station tStation) public Settings( Station tStation)
{ {
thisStation = tStation; thisStation = tStation;

View file

@ -247,7 +247,6 @@ namespace eDosStation
SqlConnection co = null; SqlConnection co = null;
using (var cmd = new SqlCommand("StationSettingsUpdate")) using (var cmd = new SqlCommand("StationSettingsUpdate"))
{ {
cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandType = System.Data.CommandType.StoredProcedure;
try try
{ {

View file

@ -1,46 +1,52 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient; using System.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace eDosStation namespace eDosStation
{ {
public class User public class User
{ {
public int PersID { get; set; } public int PersID { get; set; }
public string LastName { get; set; } public string LastName { get; set; }
public string FirstName { get; set; } public string FirstName { get; set; }
public string conCode { get; set; } public string conCode { get; set; }
public string Language { get; set; } public string Language { get; set; }
public bool? AccessAllow { get; set; } public bool? AccessAllow { get; set; }
public double? Margin { get; set; } public double? Margin { get; set; }
public int? VisitIDLocked { get; set; } public int? VisitIDLocked { get; set; }
public string ReasonNoAccess { get; set; } public string ReasonNoAccess { get; set; }
public string UserComment { get; set; } public string UserComment { get; set; }
public bool AllOk = false; public bool AllOk = false;
public bool hasEPD { get; set; } public bool hasEPD { get; set; }
public int Error = 0; public int Error = 0;
public string ErrorMessage; public string ErrorMessage;
internal int? activeVisit; internal int? activeVisit;
public string FullUserName() public string FullUserName()
{ {
return string.Concat(FirstName, " ", LastName); return string.Concat(FirstName, " ", LastName);
} }
public bool HasMessage () public bool HasMessage ()
{ {
return (AccessAllow != true || !string.IsNullOrEmpty(UserComment) || !string.IsNullOrEmpty(ReasonNoAccess)); return (AccessAllow != true || !string.IsNullOrEmpty(UserComment) || !string.IsNullOrEmpty(ReasonNoAccess));
} }
public User()
{ public bool AllowShowTask()
LastName = FirstName = conCode = Language = string.Empty; {
AccessAllow = null; return (AllOk == true && !hasEPD && VisitIDLocked == null);
} }
}
} public User()
{
LastName = FirstName = conCode = Language = string.Empty;
AccessAllow = null;
}
}
}

View file

@ -17,6 +17,52 @@ static public class extensions
return found; 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) static public bool SetBoolParam(this System.Data.SqlClient.SqlCommand c, string paramname, bool value)
{ {
bool found = true; bool found = true;

View file

@ -7,8 +7,10 @@ using spl = LSWLib.CLog;
namespace syncEdosLocal namespace syncEdosLocal
{ {
class cResult class cResult
{ {
public DateTime timestamp; public DateTime timestamp;
public int VisitsNew, VisitsSkipped, VisitsAddedExits, VisitsAddedEntries; public int VisitsNew, VisitsSkipped, VisitsAddedExits, VisitsAddedEntries;
public int ID_Visit_Min, ID_Visit_Max; public int ID_Visit_Min, ID_Visit_Max;
@ -17,8 +19,7 @@ namespace syncEdosLocal
System.Data.SqlClient.SqlCommand cmd; System.Data.SqlClient.SqlCommand cmd;
spl spLog; spl spLog;
internal int ID_Station; 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; if (iID_station.HasValue) ID_Station = iID_station.Value; else ID_Station = -1;
ErrorMessage = string.Empty; ErrorMessage = string.Empty;
@ -30,7 +31,7 @@ namespace syncEdosLocal
} }
public override string ToString() 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) private void MakeCmd(SqlConnection co)
@ -51,7 +52,7 @@ namespace syncEdosLocal
}); });
} }
public void Write( ) public void Write()
{ {
try try
{ {
@ -76,7 +77,8 @@ namespace syncEdosLocal
if (cs != ConnectionState.Open) cmd.Connection.Close(); if (cs != ConnectionState.Open) cmd.Connection.Close();
spLog.WriteSplunkLog("Result", spLog.splunkSeverity, null, this.ToString()); ; spLog.WriteSplunkLog("Result", spLog.splunkSeverity, null, this.ToString()); ;
} }
} catch (System.Exception ex) }
catch (System.Exception ex)
{ {
spLog.setErrorException(ex); spLog.setErrorException(ex);
spLog.WriteSplunkLog("Result", spLog.splunkSeverity, null, spLog.splunkError); spLog.WriteSplunkLog("Result", spLog.splunkSeverity, null, spLog.splunkError);
@ -92,6 +94,8 @@ namespace syncEdosLocal
class Program class Program
{ {
const string moduleName = "syncEdosLocal";
public static string pcName;
public static int Verbose; public static int Verbose;
public static DataSet ds = null; public static DataSet ds = null;
static System.Data.SqlClient.SqlInfoMessageEventHandler iMessage = new SqlInfoMessageEventHandler(Connection_InfoMessage); static System.Data.SqlClient.SqlInfoMessageEventHandler iMessage = new SqlInfoMessageEventHandler(Connection_InfoMessage);
@ -103,8 +107,7 @@ namespace syncEdosLocal
static LSWLib.Bulker Bulker; static LSWLib.Bulker Bulker;
static cResult Result; static cResult Result;
static System.IO.StreamWriter oStream; 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; var c1 = eDosCon.State;
if (c1 != ConnectionState.Open) eDosCon.Open(); if (c1 != ConnectionState.Open) eDosCon.Open();
@ -120,6 +123,28 @@ namespace syncEdosLocal
if (c1 != ConnectionState.Open) eDosCon.Close(); if (c1 != ConnectionState.Open) eDosCon.Close();
return StationID; 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) 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(); ds = new DataSet();
@ -184,11 +209,11 @@ namespace syncEdosLocal
toConnection.InfoMessage += im; toConnection.InfoMessage += im;
toConnection.Open(); toConnection.Open();
if (toConnection.State == ConnectionState.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; ucmd.CommandType = CommandType.StoredProcedure;
SqlParameter pa = new SqlParameter("ID_Station", SqlDbType.Int, 4); ucmd.Parameters.Add(pa); pa.Value = Result.ID_Station; 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("lastRecords", SqlDbType.Int, 4); ucmd.Parameters.Add(pa);
pa = new SqlParameter("constraintsDeactivated", SqlDbType.Bit); ucmd.Parameters.Add(pa); pa = new SqlParameter("constraintsDeactivated", SqlDbType.Bit); ucmd.Parameters.Add(pa);
pa = new SqlParameter("constraintsActivated", 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) foreach (DataRow rtr in dtTables.Rows)
{ {
ucmd.Parameters["OBJECT_ID"].Value = (int)rtr[0]; ucmd.Parameters["OBJECT_ID"].Value = (int)rtr[0];
string src=rtr[1].ToString(); string src = rtr[1].ToString();
dest = rtr[2].ToString(); dest = rtr[2].ToString();
var x = rtr.GetChildRows(dtActions.ParentRelations[0]); var x = rtr.GetChildRows(dtActions.ParentRelations[0]);
Task = $"Table {dest}"; Task = $"Table {dest}";
@ -247,11 +272,10 @@ namespace syncEdosLocal
SqlConnection[] curDests = new SqlConnection[] { toConnection }; SqlConnection[] curDests = new SqlConnection[] { toConnection };
cnt = Bulker.Execute(Task, fromConnection, curDests, qry, CommandType.Text, dest, 0, ref error); cnt = Bulker.Execute(Task, fromConnection, curDests, qry, CommandType.Text, dest, 0, ref error);
ucmd.Parameters["lastRecords"].Value = cnt; ucmd.Parameters["lastRecords"].Value = cnt;
if (dest.Contains("PersonInfo")) if (dest.Contains("PersonInfo"))
Result.Persons = cnt; Result.Persons = cnt;
else if (dest.Contains("TaskInfo")) Result.Tasks = cnt; else if (dest.Contains("TaskInfo")) Result.Tasks = cnt;
if (sqlCmdsActivate != null) if (sqlCmdsActivate != null)
using (var cmd = new System.Data.SqlClient.SqlCommand(sqlCmdsActivate.ToString(), toConnection)) using (var cmd = new System.Data.SqlClient.SqlCommand(sqlCmdsActivate.ToString(), toConnection))
{ {
@ -276,7 +300,6 @@ namespace syncEdosLocal
} }
} }
ucmd.Parameters["syncError"].Value = error; ucmd.Parameters["syncError"].Value = error;
ucmd.ExecuteNonQuery(); ucmd.ExecuteNonQuery();
if (error) break; if (error) break;
} }
@ -288,9 +311,9 @@ namespace syncEdosLocal
static void Main(string[] args) static void Main(string[] args)
{ {
Verbose = 1; Verbose = 1;
for (int ai=0;ai<args.Length;ai++) for (int ai = 0; ai < args.Length; ai++)
{ {
if (args[ai][0]=='-' && args[ai].Length>1) if (args[ai][0] == '-' && args[ai].Length > 1)
{ {
switch (args[ai][1]) switch (args[ai][1])
{ {
@ -303,8 +326,10 @@ namespace syncEdosLocal
else else
oStream = null; // new System.IO.StreamWriter( System.IO.Stream.Null); oStream = null; // new System.IO.StreamWriter( System.IO.Stream.Null);
spLog = new spl("SynceDosLocal"); pcName = System.Environment.MachineName;
Bulker = new LSWLib.Bulker(spLog,false);
spLog = new spl(moduleName);
Bulker = new LSWLib.Bulker(spLog, false);
messages = Bulker.messages; messages = Bulker.messages;
messages.AppendLine(spLog.GetStartInfoString()); messages.AppendLine(spLog.GetStartInfoString());
@ -312,7 +337,7 @@ namespace syncEdosLocal
var SourceCoStr = new SqlConnectionStringBuilder(System.Configuration.ConfigurationManager.ConnectionStrings["eDosConnectionString"].ConnectionString); var SourceCoStr = new SqlConnectionStringBuilder(System.Configuration.ConfigurationManager.ConnectionStrings["eDosConnectionString"].ConnectionString);
var LocalCoStr = new SqlConnectionStringBuilder(System.Configuration.ConfigurationManager.ConnectionStrings["LocalConnectionString"].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.ApplicationName = LocalCoStr.ApplicationName = "eDosSync";
SourceCoStr.WorkstationID = LocalCoStr.WorkstationID = Environment.MachineName; SourceCoStr.WorkstationID = LocalCoStr.WorkstationID = Environment.MachineName;
@ -325,13 +350,14 @@ namespace syncEdosLocal
reDos = key.GetValue("eDos").ToString(); reDos = key.GetValue("eDos").ToString();
reDosLocal = key.GetValue("eDosLocal").ToString(); reDosLocal = key.GetValue("eDosLocal").ToString();
} }
} catch (System.Exception ex) }
catch (System.Exception ex)
{ {
spLog.setErrorException(ex); spLog.setErrorException(ex);
spLog.WriteSplunkLog("init", spLog.splunkSeverity, null, spLog.splunkError); spLog.WriteSplunkLog("init", spLog.splunkSeverity, null, spLog.splunkError);
messages.AppendLine($"Error reading reg key"); messages.AppendLine($"Error reading reg key");
} }
messages.AppendLine($"Remote {SourceCoStr.DataSource} db {SourceCoStr.InitialCatalog} Logon= { SourceCoStr.UserID} alias:{ reDos }"); 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 }"); messages.AppendLine($"Local {LocalCoStr.DataSource} db {LocalCoStr.InitialCatalog} Logon= { LocalCoStr.UserID} alias:{ reDosLocal }");
@ -368,6 +394,10 @@ namespace syncEdosLocal
} }
if (error) goto final; if (error) goto final;
//Update remote returns
final: final:
messages.AppendLine($"Process:End,tm={System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm")}, Errors={error}, Warnings={warning}"); messages.AppendLine($"Process:End,tm={System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm")}, Errors={error}, Warnings={warning}");
//System.Diagnostics.Debug.WriteLine(messages.ToString()); //System.Diagnostics.Debug.WriteLine(messages.ToString());
@ -410,21 +440,21 @@ namespace syncEdosLocal
{ {
Result.CheckVisitID(lr.ID_Visit); //min max Result.CheckVisitID(lr.ID_Visit); //min max
cr = ds.CentralVisits.FindByID_StationID_Visit(lr.ID_Station, lr.ID_Visit); 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); tc.Fill(ds.CentralVisits, lr.ID_Station, lr.ID_Visit);
cr = ds.CentralVisits.FindByID_StationID_Visit(lr.ID_Station, lr.ID_Visit); cr = ds.CentralVisits.FindByID_StationID_Visit(lr.ID_Station, lr.ID_Visit);
if (cr == null) if (cr == null)
{ {
Result.VisitsNew++; Result.VisitsNew++;
copyrow(lr, ds.CentralVisits); 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++; } if ((lr.VisitStatus & 2) > 0) { lr.syncedExit = true; Result.VisitsAddedExits++; }
} }
else switch (cr.VisitStatus) else switch (cr.VisitStatus)
{ {
case 3: lr.syncedEntry = lr.syncedExit = true; Result.VisitsSkipped++; break; 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 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 2: if ((lr.VisitStatus & 1) == 1) { copyEntry(lr, cr); lr.syncedEntry = lr.syncedExit = true; Result.VisitsAddedEntries++; } break;
} }
} }
ta.Update(ds.LocalVisits); ta.Update(ds.LocalVisits);
@ -497,7 +527,7 @@ namespace syncEdosLocal
{ {
DataSet1.CentralVisitsRow cr = centralVisits.NewCentralVisitsRow(); DataSet1.CentralVisitsRow cr = centralVisits.NewCentralVisitsRow();
foreach (DataColumn sc in lr.Table.Columns) 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); centralVisits.AddCentralVisitsRow(cr);
return cr; return cr;
} }