From ca0fa3d2a41cbcce852c64bff81a26f96d269927 Mon Sep 17 00:00:00 2001 From: SHM Date: Tue, 5 Aug 2025 10:14:25 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=84=B1=ED=98=84=EB=AA=A8]=20VPKI=5FDataDB?= =?UTF-8?q?=20DB=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EC=B6=94=EA=B0=80,?= =?UTF-8?q?=20DB=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DBPatch/DBPatch_VPKI_DataDB_Create.bat | 20 + DBPatch/DBPatch_VPKI_DataDB_Update.bat | 23 ++ DBPatch/Tool_VPKI_DataDB_Scaffold.bat | 4 + .../SystemX.DB.VPKI_DataDB_Create.sql | 348 ++++++++++++++++++ .../SystemX.DB.VPKI_DataDB_Update.sql | 48 +++ .../dacpac/SystemX.DB.AccountDB.dacpac | Bin 3502 -> 3502 bytes .../dacpac/SystemX.DB.UniqueKeyDB.dacpac | Bin 2616 -> 2615 bytes .../dacpac/SystemX.DB.VPKI_DataDB.dacpac | Bin 0 -> 3094 bytes .../dacpac/SystemX.DB.VpkiDB.dacpac | Bin 0 -> 3085 bytes DBPatch/sqlScripts/dacpac/VPKI_DataDB.dacpac | Bin 0 -> 3098 bytes Projects/Config/WebApi.VpkiApi.Config.json | 69 ++++ Projects/DLL/SystemX.Core.DB.dll | Bin 12288 -> 12288 bytes Projects/DLL/SystemX.Core.dll | Bin 50688 -> 50688 bytes .../SystemX.DB.VPKI_DataDB.sqlproj | 78 ++++ .../dbo/Tables/tCertificate.sql | 15 + .../dbo/Tables/tOcsp.sql | 8 + .../dbo/Tables/tTbscsr.sql | 19 + .../dbo/Tables/tVerifyResult.sql | 5 + .../VPKI_DataDB/Context/VPKI_DataDBContext.cs | 91 +++++ .../VPKI_DataDB/Tables/tCertificate.cs | 31 ++ .../VPKI_DataDB/Tables/tOcsp.cs | 17 + .../VPKI_DataDB/Tables/tTbscsr.cs | 39 ++ .../VPKI_DataDB/Tables/tVerifyResult.cs | 11 + Projects/SystemX.Core/SystemX.Core.sln | 9 + 24 files changed, 835 insertions(+) create mode 100644 DBPatch/DBPatch_VPKI_DataDB_Create.bat create mode 100644 DBPatch/DBPatch_VPKI_DataDB_Update.bat create mode 100644 DBPatch/Tool_VPKI_DataDB_Scaffold.bat create mode 100644 DBPatch/sqlScripts/SystemX.DB.VPKI_DataDB_Create.sql create mode 100644 DBPatch/sqlScripts/SystemX.DB.VPKI_DataDB_Update.sql create mode 100644 DBPatch/sqlScripts/dacpac/SystemX.DB.VPKI_DataDB.dacpac create mode 100644 DBPatch/sqlScripts/dacpac/SystemX.DB.VpkiDB.dacpac create mode 100644 DBPatch/sqlScripts/dacpac/VPKI_DataDB.dacpac create mode 100644 Projects/Config/WebApi.VpkiApi.Config.json create mode 100644 Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/SystemX.DB.VPKI_DataDB.sqlproj create mode 100644 Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tCertificate.sql create mode 100644 Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tOcsp.sql create mode 100644 Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tTbscsr.sql create mode 100644 Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tVerifyResult.sql create mode 100644 Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Context/VPKI_DataDBContext.cs create mode 100644 Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tCertificate.cs create mode 100644 Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tOcsp.cs create mode 100644 Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tTbscsr.cs create mode 100644 Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tVerifyResult.cs diff --git a/DBPatch/DBPatch_VPKI_DataDB_Create.bat b/DBPatch/DBPatch_VPKI_DataDB_Create.bat new file mode 100644 index 0000000..a801f55 --- /dev/null +++ b/DBPatch/DBPatch_VPKI_DataDB_Create.bat @@ -0,0 +1,20 @@ +@echo off +CD ./sqlScripts/ + +::log +IF NOT EXIST .\logs mkdir logs + +::DB 정의 스키마 +SET Schema=SystemX.DB.VPKI_DataDB + +::연결정보 +SET ServerIP=127.0.0.1 +SET ServerPort=1433 +SET UserID=SystemX +SET Passwd=X +SET DBName=VPKI_DataDB + +::Default DB +@echo off +CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% +CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV \ No newline at end of file diff --git a/DBPatch/DBPatch_VPKI_DataDB_Update.bat b/DBPatch/DBPatch_VPKI_DataDB_Update.bat new file mode 100644 index 0000000..86b5a6b --- /dev/null +++ b/DBPatch/DBPatch_VPKI_DataDB_Update.bat @@ -0,0 +1,23 @@ +@echo off +CD .\sqlScripts\ + +::log +IF NOT EXIST .\logs mkdir logs + +::DB 정의 스키마 +SET Schema=SystemX.DB.VPKI_DataDB + +::연결정보 +SET ServerIP=127.0.0.1 +SET ServerPort=1433 +SET UserID=SystemX +SET Passwd=X +SET DBName=VPKI_DataDB + +@echo off +::generate update script +CALL _UpdateScriptGenerate.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% + +::Default DB +CALL _UpdateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% +CALL _UpdateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV \ No newline at end of file diff --git a/DBPatch/Tool_VPKI_DataDB_Scaffold.bat b/DBPatch/Tool_VPKI_DataDB_Scaffold.bat new file mode 100644 index 0000000..9140a58 --- /dev/null +++ b/DBPatch/Tool_VPKI_DataDB_Scaffold.bat @@ -0,0 +1,4 @@ +::AccountDB +cd ../Projects/SystemX.Core/SystemX.Core.DB + +dotnet ef dbcontext scaffold "server=127.0.0.1; user id=SystemX; password=X; database=VPKI_DataDB; TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer --namespace SystemX.Core.DB --context-dir VPKI_DataDB\Context --output-dir VPKI_DataDB\Tables -f --use-database-names --no-onconfiguring \ No newline at end of file diff --git a/DBPatch/sqlScripts/SystemX.DB.VPKI_DataDB_Create.sql b/DBPatch/sqlScripts/SystemX.DB.VPKI_DataDB_Create.sql new file mode 100644 index 0000000..0125007 --- /dev/null +++ b/DBPatch/sqlScripts/SystemX.DB.VPKI_DataDB_Create.sql @@ -0,0 +1,348 @@ +/* +SystemX.DB.VPKI_DataDB의 배포 스크립트 + +이 코드는 도구를 사용하여 생성되었습니다. +파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +변경 내용이 손실됩니다. +*/ + +GO +SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; + +SET NUMERIC_ROUNDABORT OFF; + + +GO +/* +:setvar DatabaseName "SystemX.DB.VPKI_DataDB" +:setvar DefaultFilePrefix "SystemX.DB.VPKI_DataDB" +:setvar DefaultDataPath "" +:setvar DefaultLogPath "" +*/ + +GO +:on error exit +GO +/* +SQLCMD 모드가 지원되지 않으면 SQLCMD 모드를 검색하고 스크립트를 실행하지 않습니다. +SQLCMD 모드를 설정한 후에 이 스크립트를 다시 사용하려면 다음을 실행합니다. +SET NOEXEC OFF; +*/ +:setvar __IsSqlCmdEnabled "True" +GO +IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True' + BEGIN + PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.'; + SET NOEXEC ON; + END + + +GO +USE [master]; + + +GO + +IF (DB_ID(N'$(DatabaseName)') IS NOT NULL) +BEGIN + ALTER DATABASE [$(DatabaseName)] + SET SINGLE_USER WITH ROLLBACK IMMEDIATE; + DROP DATABASE [$(DatabaseName)]; +END + +GO +PRINT N'$(DatabaseName) 데이터베이스를 만드는 중...' +GO +CREATE DATABASE [$(DatabaseName)] COLLATE Korean_Wansung_CI_AS +GO +USE [$(DatabaseName)]; + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET ANSI_NULLS ON, + ANSI_PADDING ON, + ANSI_WARNINGS ON, + ARITHABORT ON, + CONCAT_NULL_YIELDS_NULL ON, + NUMERIC_ROUNDABORT OFF, + QUOTED_IDENTIFIER ON, + ANSI_NULL_DEFAULT ON, + CURSOR_DEFAULT LOCAL, + RECOVERY FULL, + CURSOR_CLOSE_ON_COMMIT OFF, + AUTO_CREATE_STATISTICS ON, + AUTO_SHRINK OFF, + AUTO_UPDATE_STATISTICS ON, + RECURSIVE_TRIGGERS OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET ALLOW_SNAPSHOT_ISOLATION OFF; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET READ_COMMITTED_SNAPSHOT OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET AUTO_UPDATE_STATISTICS_ASYNC OFF, + PAGE_VERIFY NONE, + DATE_CORRELATION_OPTIMIZATION OFF, + DISABLE_BROKER, + PARAMETERIZATION SIMPLE, + SUPPLEMENTAL_LOGGING OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF IS_SRVROLEMEMBER(N'sysadmin') = 1 + BEGIN + IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)] + SET TRUSTWORTHY OFF, + DB_CHAINING OFF + WITH ROLLBACK IMMEDIATE'; + END + END +ELSE + BEGIN + PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.'; + END + + +GO +IF IS_SRVROLEMEMBER(N'sysadmin') = 1 + BEGIN + IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)] + SET HONOR_BROKER_PRIORITY OFF + WITH ROLLBACK IMMEDIATE'; + END + END +ELSE + BEGIN + PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.'; + END + + +GO +ALTER DATABASE [$(DatabaseName)] + SET TARGET_RECOVERY_TIME = 0 SECONDS + WITH ROLLBACK IMMEDIATE; + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET FILESTREAM(NON_TRANSACTED_ACCESS = OFF), + CONTAINMENT = NONE + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF), + MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = OFF, + DELAYED_DURABILITY = DISABLED + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET QUERY_STORE (QUERY_CAPTURE_MODE = ALL, DATA_FLUSH_INTERVAL_SECONDS = 900, INTERVAL_LENGTH_MINUTES = 60, MAX_PLANS_PER_QUERY = 200, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 367), MAX_STORAGE_SIZE_MB = 100) + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET QUERY_STORE = OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 0; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY; + ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION = OFF; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY; + ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = ON; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY; + ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = OFF; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET QUERY_OPTIMIZER_HOTFIXES = PRIMARY; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET TEMPORAL_HISTORY_RETENTION ON + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF fulltextserviceproperty(N'IsFulltextInstalled') = 1 + EXECUTE sp_fulltext_database 'enable'; + + +GO +PRINT N'테이블 [dbo].[tVerifyResult]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tVerifyResult] ( + [cCuid] BIGINT NOT NULL, + [cResult] NCHAR (20) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + + +GO +PRINT N'테이블 [dbo].[tTbscsr]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tTbscsr] ( + [cCuid] BIGINT IDENTITY (1, 1) NOT NULL, + [cIftid] NVARCHAR (100) NOT NULL, + [cMacaddr] NVARCHAR (100) NOT NULL, + [cWmi] NVARCHAR (20) NOT NULL, + [cIdType] NVARCHAR (10) NOT NULL, + [cSupplierId] NVARCHAR (10) NOT NULL, + [cDc] NVARCHAR (20) NOT NULL, + [cTierCode] NVARCHAR (20) NOT NULL, + [cUnitCode] NVARCHAR (20) NOT NULL, + [cPublickey] NVARCHAR (1024) NOT NULL, + [cCertType] NVARCHAR (20) NOT NULL, + [cOriginTbscsr] NVARCHAR (4000) NOT NULL, + [cHashedTbscsr] NVARCHAR (1024) NOT NULL, + [cPcid] NVARCHAR (50) NOT NULL, + [cDn] NVARCHAR (250) NOT NULL, + [cDateTime] DATETIME2 (7) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + + +GO +PRINT N'테이블 [dbo].[tOcsp]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tOcsp] ( + [cCuid] BIGINT NOT NULL, + [cStatus] NVARCHAR (20) NOT NULL, + [cVerify] NVARCHAR (20) NOT NULL, + [cOcsp] NVARCHAR (MAX) NULL, + [cDateTime] DATETIME2 (7) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + + +GO +PRINT N'테이블 [dbo].[tCertificate]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tCertificate] ( + [cCuid] BIGINT NOT NULL, + [cCsrsignature] NVARCHAR (1024) NOT NULL, + [cTierCode] NVARCHAR (20) NOT NULL, + [cUnitCode] NVARCHAR (20) NOT NULL, + [cVehicleCode] NVARCHAR (20) NOT NULL, + [cLocalCode] NVARCHAR (20) NOT NULL, + [cBrandCode] NVARCHAR (20) NOT NULL, + [cCsr] NVARCHAR (2048) NOT NULL, + [cCert] NVARCHAR (2048) NOT NULL, + [cMessage] NVARCHAR (250) NOT NULL, + [cIssueCount] INT NOT NULL, + [cDateTime] DATETIME2 (7) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + + +GO +DECLARE @VarDecimalSupported AS BIT; + +SELECT @VarDecimalSupported = 0; + +IF ((ServerProperty(N'EngineEdition') = 3) + AND (((@@microsoftversion / power(2, 24) = 9) + AND (@@microsoftversion & 0xffff >= 3024)) + OR ((@@microsoftversion / power(2, 24) = 10) + AND (@@microsoftversion & 0xffff >= 1600)))) + SELECT @VarDecimalSupported = 1; + +IF (@VarDecimalSupported > 0) + BEGIN + EXECUTE sp_db_vardecimal_storage_format N'$(DatabaseName)', 'ON'; + END + + +GO +ALTER DATABASE [$(DatabaseName)] + SET MULTI_USER + WITH ROLLBACK IMMEDIATE; + + +GO +PRINT N'업데이트가 완료되었습니다.'; + + +GO diff --git a/DBPatch/sqlScripts/SystemX.DB.VPKI_DataDB_Update.sql b/DBPatch/sqlScripts/SystemX.DB.VPKI_DataDB_Update.sql new file mode 100644 index 0000000..37a7cb9 --- /dev/null +++ b/DBPatch/sqlScripts/SystemX.DB.VPKI_DataDB_Update.sql @@ -0,0 +1,48 @@ +/* +VPKI_DataDB의 배포 스크립트 + +이 코드는 도구를 사용하여 생성되었습니다. +이 파일을 변경하면 잘못된 동작이 발생할 수 있으며 코드가 다시 생성되면 +이러한 변경 내용이 손실됩니다. +*/ + +GO +SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; + +SET NUMERIC_ROUNDABORT OFF; + + +GO +/* +:setvar DatabaseName "VPKI_DataDB" +:setvar DefaultFilePrefix "VPKI_DataDB" +:setvar DefaultDataPath "D:\20_MSSQL\DATA\" +:setvar DefaultLogPath "D:\20_MSSQL\DATA\" +*/ + +GO +:on error exit +GO +/* +SQLCMD 모드를 검색하고 SQLCMD 모드가 지원되지 않는 경우 스크립트 실행을 사용하지 않도록 설정합니다. +SQLCMD 모드를 사용하도록 설정한 후 스크립트를 다시 사용하도록 설정하려면 다음을 실행합니다. +NOEXEC를 끕니다. +*/ +:setvar __IsSqlCmdEnabled "True" +GO +IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True' + BEGIN + PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.'; + SET NOEXEC ON; + END + + +GO +USE [$(DatabaseName)]; + + +GO +PRINT N'업데이트가 완료되었습니다.'; + + +GO diff --git a/DBPatch/sqlScripts/dacpac/SystemX.DB.AccountDB.dacpac b/DBPatch/sqlScripts/dacpac/SystemX.DB.AccountDB.dacpac index da6252b799eeaa779206a2d758f809f77ccf3dc2..71f0e7226221819387974690e81e161533299275 100644 GIT binary patch delta 668 zcmZ1{y-u1pz?+#xgn@y9gW*g7>qg!lR%Rf*c@FDzCJ{LgB#E~jaI z-faVcJ>oCyId+)|O|Ob-TcR*cbb-btmX6!jzJYv+o+TcuJbq={ewqA>dufj6TJGl| zACBCeJNKc^$$0y^W!Lp{lWUWM3NNObl^xs`;qH2LcWm1CU1eh5O8@vfJZg zjNNRY;ju?l>>Nan3#VyF3qF$x z_5b=Hpw9gMl!I~Q$}WrV9Di(DWbX3z?6aLaH@P_*$@Kn_fZ);9(dvHBb_PRv4qQHC!>Hm*xryKbuX2|biJ|6S;e8aI9o{9hVU$0A( z{5|(rt=;u46-g!Qf0fno1RwaNRGGFoEM!gLS?4XE9~_HkcNLuCSSkGYc69w-EiQTH zDce0ooFqlNRW!n$a(T(CZ!qKIt`B`wBzvbKPRO;hQYZO+;3>=UD)WH3Tm1G_taFU* um>th__P)zMX_SODc?$P)aC)laF#*$Cc`U*7M;IPZJco5U6NoX{jN?5Akd9VP-ljZRm(#Sq zZ?=KR-SAiT3fp8i^j5kZ&`@+)wd$pd*R8$GY8#m>l4oaKihsRm{+0L@o(*Q9X`z)* ztKaW@{v+o0{<=Rs^6|58{cvkd+2iYz;(U2Q?m_Qs?}Rr8PZgcj|MGYF$4MgRo8Crd zXEe|Po{3-zQ^!0$h%&vBsyRcQ_hNnC299NFR2`8Ji&Ou zur&N|$Mq!^lWb$T>lQf~YUwA={ZVywN|N+9ZMNiu6X|~p7q~HYSs+fb3Su_bKN_1A^7Zh-rUgjP8(vE@0gI*bu6In6Sg{VTdo6lu0i+pWCLbl6_Gj#-sZpPjFUZ`m>+gURUHbH1iwGa=g*~hMPU)-n4Q>Q^K#Vo zZPE^TAMnfM?v#6R)u$_U-=2Lcbu(J2zv^?4y+pGj=O_06@;&uyR)?x*T)O1PxhVVE z-F0b4)vNA(QqG+$dt_=jtEkgbc22ch$M#p`FYO6_al5+gykY2n;{}RUp)>xy-#R~{ zt?qi^{d1=0__kP_S~pYfu!O-rj%hO%JXBqq`&Z!XmAQ|X&Q8sH_v|yn+OUe9CyaU& z&V)~VfAG%vLnqFP{bYJ3;aXt!GPPpj;+mJ|WYs_Y^{}6|@Vmm(Y1VbGR<4V3kC%yF v{O-tCea2<^N`Fxk*5oPN&%x=bj>iN{Z{@KB(;s=P5b4X9*8nV-#_It9WYaHL diff --git a/DBPatch/sqlScripts/dacpac/SystemX.DB.UniqueKeyDB.dacpac b/DBPatch/sqlScripts/dacpac/SystemX.DB.UniqueKeyDB.dacpac index 95872654d722844dd5a009f20ccfe83a7ce574f7..88ac3119b3ab152e5fc7e916b50f6030b065cc18 100644 GIT binary patch delta 654 zcmdlXvR#BXz?+#xgn@y9gW+rd>qg$MEX+W9GArvxP9Pnvu<~V>#^nF34)x9DEIpqj zmaLlPw`9p(>tiZm4Cy(+XTMzE^+Nrtc$Uxt->H$IYii!xewUeFeRjRP{pH`&mu=f; zxN=8^vGmRh+akPOPu{LgE8kU=^xLlfzh121FO{G3wohZ+qP3YnYJM7nMpXiDVBX=C zB3>c4mM&s^wKL3T*0u#IA~`djEO~anv))XF!MTO;$hMbRkuPUmP`JH94uBR1sWYZ2rJ3%IFf$S+{NWHP=-C z&ot55Ts>#*UH=4M_ z?0;rh-xtYJexvaUzpVVPsm@+*vi5z-PYioB`GO6m`lku3EaoYEaNtJcL9v69Jn0rC zlaCx1bdpanYTh7zQ=D%_`?fueoiX?O1$rh6UY^d&QQW_2@vd@>`Z;Dxw_m@@6{uZa z9H(6FedVIeyw}#*1}e@EAN-%Y^-b1Y&uLrNT%I&zR%!kA)s}yc#BG0c;#Lm(Uab|2 zxE2~U98o@YY=6c2r9HtfZnNi|Hw^u6yg;!kaK``lxBPXS_n+Re{`o9D{vNr|>puO7 zJQ49K=W{M}OuD+RvLkKnq0ooopDP6w>L*t42Qp1Bw9wy^#5nnX_arAr&X!r{NC}DY5A`k!LeKV_9d8m9_-!m)4SoN`NaQhD2Zrt8pmyL lB68t00n^o-R!E6yAE!Q8^aH0fW5i@0E;Tk2PGI_D005#ECy@XE delta 655 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 X|B8zl63F-s0Km#vbjHrf_0Q=)=+r+F literal 0 HcmV?d00001 diff --git a/DBPatch/sqlScripts/dacpac/VPKI_DataDB.dacpac b/DBPatch/sqlScripts/dacpac/VPKI_DataDB.dacpac new file mode 100644 index 0000000000000000000000000000000000000000..6bfd490b529d77cf887f3d9efb83b1cf8b99b2f7 GIT binary patch literal 3098 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 literal 0 HcmV?d00001 diff --git a/Projects/Config/WebApi.VpkiApi.Config.json b/Projects/Config/WebApi.VpkiApi.Config.json new file mode 100644 index 0000000..48c111a --- /dev/null +++ b/Projects/Config/WebApi.VpkiApi.Config.json @@ -0,0 +1,69 @@ +{ + "Server": { + "Address": "https://*", + "Port": 8080, + "IIS": false + }, + "API": [ + { + "ApiName": "vpkira", + "Address": "https://vpkira.hmckmc.co.kr/" + } + ], + "Auth": { + "issuer": "vpki.api", + "audience": "vpki", + "accessTokenSecret": "t6zdogyrT0U1bYw3gJvMm3JHmj2Iyawr7O2WKE2truX+MK0l/XNGmpU2ofagdUWBN4DxAUv7c8xSYVv/8abL6A==", + "accessTokenExpires": 60, //minutes + "refreshTokenSecret": "1vVuoGqIqkStFI3QUXHMr0/yO1feLPnhqcfFGjZyk478+4WY7dhrUjCfVeWjmmSZYgb+rtP0X6ec+3iL35Yezw==", + "refreshTokenExpires": 1440 //minuts, 60*24 (1day) + }, + "DataBase": [ + { + "IP": "127.0.0.1", + "Port": 1433, + "DBName": "VPKI_AccountDB", + "DBID": 1, + "DBContext": "VpkiAccountDbContext", + "UserID": "VPKI", + "Password": "Kefico!@34" + }, + { + "IP": "127.0.0.1", + "Port": 1433, + "DBName": "VPKI_AccountDB_DEV", + "DBID": 2, + "DBContext": "VpkiAccountDbContext", + "UserID": "VPKI", + "Password": "Kefico!@34" + }, + { + "IP": "127.0.0.1", + "Port": 1433, + "DBName": "VPKI_DataDB", + "DBID": 1, + "DBContext": "VpkiDataDbContext", + "UserID": "VPKI", + "Password": "Kefico!@34" + }, + { + "IP": "127.0.0.1", + "Port": 1433, + "DBName": "VPKI_DataDB_DEV", + "DBID": 2, + "DBContext": "VpkiDataDbContext", + "UserID": "VPKI", + "Password": "Kefico!@34" + } + ], + "Openssl": { + "Path": "C:/Program Files/OpenSSL-Win64/bin/openssl.exe", + "SubCAPath": "../SubCA/", + "SubCA": { + "prov_v1": "SubCA_P02OEM.pem", + "prov_cert": "SubCA_P20OEM.pem", + "vehicle_cert": "SubCA_P20VHC.pem" + }, + "RootCA": "hkmcrootca.pem" + } +} \ No newline at end of file diff --git a/Projects/DLL/SystemX.Core.DB.dll b/Projects/DLL/SystemX.Core.DB.dll index b4db5f2d4e9bb46c2385e42f6b5dfa9c783fae33..6bba90ac1f3451d1c2e1fc29efa89bbd2d1eaafa 100644 GIT binary patch delta 235 zcmZojXh@jQ!BT3rQ0?0GXmjf&c&j delta 235 zcmZojXh@jQ!6N)g<@?5-3?+d?-Y3^hzpr$d(j#`!)t<#*GmG+kW(~uXBqI|uQ^Vv$ zi&P`SwB$5HgOpT@Buirpi$pU+BLkB}^Q06*3&Y8$)ofWbtj?{O%%dJ4zIDi=K?YN(AW*fAUESK9k*zL1lP)h^viXm?0;|6vLkdF@gAs!X zgBgPA%q@(~ERD=eEKJgp4HHw$QqwGxH}~!`W@cg76uEQqk-Y%|VvXVg zUiaU5H(LCN@p|F)ZnDb0ECr}wv?Ejyq`I9ktHHH(PHe1UQ_bde`=VI<%^8ds3>nfG z5*f@GQh{tsh9m}4AWUJf0FuTGCJg3488aYh0pyth<&A)(36N(3)Rhd>n+Q}3(whd9 LOWquQcqJ16A~;D= delta 238 zcmZqZVQ%PQp3uRvQ&w;9#-5Os0vm#^ubQ)blk;>BvFFUPO0t_jtSlAKFic4@GBGnX zOir{&H8M;~PBSz}Nwr9_G`6rvG&3|ZFiA8|N-?xB+}yj%n3=_|P-Xw*BYOh`{KP}d zUmN=P?$F*ErZStOeX`2FECraL1ym5I+FoXEeSn`KN9Skl$s(KA?TcdZH)Kd*NMbNz zFkvubFl8`gNM=Z6uwY09iWoAa0eNXa+5o5~6)2j-V98(%q%DAI%z)xXKp7Jt+Z-s9 P0_0mT7;X+fypjn3ju}Nq diff --git a/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/SystemX.DB.VPKI_DataDB.sqlproj b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/SystemX.DB.VPKI_DataDB.sqlproj new file mode 100644 index 0000000..98eeb4c --- /dev/null +++ b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/SystemX.DB.VPKI_DataDB.sqlproj @@ -0,0 +1,78 @@ + + + + Debug + AnyCPU + SystemX.DB.VPKI_DataDB + 2.0 + 4.1 + {5d374f06-d9fa-4159-bc84-1f3ca506f50e} + Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider + Database + + + SystemX.DB.VPKI_DataDB + SystemX.DB.VPKI_DataDB + 1042,CI + BySchemaAndSchemaType + True + v4.7.2 + CS + Properties + False + True + True + True + Korean_Wansung_CI_AS + + + bin\Release\ + $(MSBuildProjectName).sql + False + pdbonly + true + false + true + prompt + 4 + + + bin\Debug\ + $(MSBuildProjectName).sql + true + true + full + false + true + true + prompt + 4 + + + 11.0 + + True + 11.0 + + + + + + + + + + + + + + + + + + + xcopy /y $(ProjectDir)$(OutputPath)$(TargetName)_Create.sql $(SolutionDir)..\..\DBPatch\sqlScripts\ + +xcopy /y $(ProjectDir)$(OutputPath)$(TargetName).dacpac $(SolutionDir)..\..\DBPatch\sqlScripts\dacpac\ + + \ No newline at end of file diff --git a/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tCertificate.sql b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tCertificate.sql new file mode 100644 index 0000000..5b3ef42 --- /dev/null +++ b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tCertificate.sql @@ -0,0 +1,15 @@ +CREATE TABLE [dbo].[tCertificate] +( + [cCuid] BIGINT NOT NULL PRIMARY KEY, + [cCsrsignature] NVARCHAR(1024) NOT NULL, + [cTierCode]NVARCHAR(20) NOT NULL, + [cUnitCode]NVARCHAR(20) NOT NULL, + [cVehicleCode]NVARCHAR(20) NOT NULL, + [cLocalCode]NVARCHAR(20) NOT NULL, + [cBrandCode]NVARCHAR(20) NOT NULL, + [cCsr] NVARCHAR(2048) NOT NULL, + [cCert] NVARCHAR(2048) NOT NULL, + [cMessage] NVARCHAR(250) NOT NULL, + [cIssueCount] INT NOT NULL, + [cDateTime] DATETIME2 NOT NULL +) diff --git a/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tOcsp.sql b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tOcsp.sql new file mode 100644 index 0000000..a46a532 --- /dev/null +++ b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tOcsp.sql @@ -0,0 +1,8 @@ +CREATE TABLE [dbo].[tOcsp] +( + [cCuid] BIGINT NOT NULL PRIMARY KEY, + [cStatus] NVARCHAR(20) NOT NULL, + [cVerify] NVARCHAR(20) NOT NULL, + [cOcsp] NVARCHAR(MAX) NULL, + [cDateTime] DATETIME2 NOT NULL +) diff --git a/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tTbscsr.sql b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tTbscsr.sql new file mode 100644 index 0000000..b1455a2 --- /dev/null +++ b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tTbscsr.sql @@ -0,0 +1,19 @@ +CREATE TABLE [dbo].[tTbscsr] +( + [cCuid] BIGINT NOT NULL PRIMARY KEY IDENTITY(1,1), + [cIftid] NVARCHAR(100) NOT NULL, + [cMacaddr] NVARCHAR(100) NOT NULL, + [cWmi] NVARCHAR(20) NOT NULL, + [cIdType] NVARCHAR(10)NOT NULL, + [cSupplierId] NVARCHAR(10) NOT NULL, + [cDc] NVARCHAR(20) NOT NULL, + [cTierCode]NVARCHAR(20) NOT NULL, + [cUnitCode]NVARCHAR(20) NOT NULL, + [cPublickey]NVARCHAR(1024) NOT NULL, + [cCertType]NVARCHAR(20) NOT NULL, + [cOriginTbscsr] NVARCHAR(4000) NOT NULL, + [cHashedTbscsr] NVARCHAR(1024) NOT NULL, + [cPcid] NVARCHAR(50) NOT NULL, + [cDn]NVARCHAR(250) NOT NULL, + [cDateTime] DATETIME2 NOT NULL +) diff --git a/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tVerifyResult.sql b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tVerifyResult.sql new file mode 100644 index 0000000..5cb4b60 --- /dev/null +++ b/Projects/SystemX.Core/DB/SystemX.DB.VPKI_DataDB/dbo/Tables/tVerifyResult.sql @@ -0,0 +1,5 @@ +CREATE TABLE [dbo].[tVerifyResult] +( + [cCuid] BIGINT NOT NULL PRIMARY KEY, + [cResult] NCHAR(20) NOT NULL +) diff --git a/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Context/VPKI_DataDBContext.cs b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Context/VPKI_DataDBContext.cs new file mode 100644 index 0000000..62b8ca6 --- /dev/null +++ b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Context/VPKI_DataDBContext.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; + +namespace SystemX.Core.DB; + +public partial class VPKI_DataDBContext : DbContext +{ + public VPKI_DataDBContext(DbContextOptions options) + : base(options) + { + } + + public virtual DbSet tCertificates { get; set; } + + public virtual DbSet tOcsps { get; set; } + + public virtual DbSet tTbscsrs { get; set; } + + public virtual DbSet tVerifyResults { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.cCuid).HasName("PK__tCertifi__2AA00D94D7A91CE3"); + + entity.ToTable("tCertificate"); + + entity.Property(e => e.cCuid).ValueGeneratedNever(); + entity.Property(e => e.cBrandCode).HasMaxLength(20); + entity.Property(e => e.cCert).HasMaxLength(2048); + entity.Property(e => e.cCsr).HasMaxLength(2048); + entity.Property(e => e.cCsrsignature).HasMaxLength(1024); + entity.Property(e => e.cLocalCode).HasMaxLength(20); + entity.Property(e => e.cMessage).HasMaxLength(250); + entity.Property(e => e.cTierCode).HasMaxLength(20); + entity.Property(e => e.cUnitCode).HasMaxLength(20); + entity.Property(e => e.cVehicleCode).HasMaxLength(20); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.cCuid).HasName("PK__tOcsp__2AA00D94489D8AA6"); + + entity.ToTable("tOcsp"); + + entity.Property(e => e.cCuid).ValueGeneratedNever(); + entity.Property(e => e.cStatus).HasMaxLength(20); + entity.Property(e => e.cVerify).HasMaxLength(20); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.cCuid).HasName("PK__tTbscsr__2AA00D9463096B25"); + + entity.ToTable("tTbscsr"); + + entity.Property(e => e.cCertType).HasMaxLength(20); + entity.Property(e => e.cDc).HasMaxLength(20); + entity.Property(e => e.cDn).HasMaxLength(250); + entity.Property(e => e.cHashedTbscsr).HasMaxLength(1024); + entity.Property(e => e.cIdType).HasMaxLength(10); + entity.Property(e => e.cIftid).HasMaxLength(100); + entity.Property(e => e.cMacaddr).HasMaxLength(100); + entity.Property(e => e.cOriginTbscsr).HasMaxLength(4000); + entity.Property(e => e.cPcid).HasMaxLength(50); + entity.Property(e => e.cPublickey).HasMaxLength(1024); + entity.Property(e => e.cSupplierId).HasMaxLength(10); + entity.Property(e => e.cTierCode).HasMaxLength(20); + entity.Property(e => e.cUnitCode).HasMaxLength(20); + entity.Property(e => e.cWmi).HasMaxLength(20); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.cCuid).HasName("PK__tVerifyR__2AA00D94B21AB01E"); + + entity.ToTable("tVerifyResult"); + + entity.Property(e => e.cCuid).ValueGeneratedNever(); + entity.Property(e => e.cResult) + .HasMaxLength(20) + .IsFixedLength(); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tCertificate.cs b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tCertificate.cs new file mode 100644 index 0000000..6455d76 --- /dev/null +++ b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tCertificate.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace SystemX.Core.DB; + +public partial class tCertificate +{ + public long cCuid { get; set; } + + public string cCsrsignature { get; set; } = null!; + + public string cTierCode { get; set; } = null!; + + public string cUnitCode { get; set; } = null!; + + public string cVehicleCode { get; set; } = null!; + + public string cLocalCode { get; set; } = null!; + + public string cBrandCode { get; set; } = null!; + + public string cCsr { get; set; } = null!; + + public string cCert { get; set; } = null!; + + public string cMessage { get; set; } = null!; + + public int cIssueCount { get; set; } + + public DateTime cDateTime { get; set; } +} diff --git a/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tOcsp.cs b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tOcsp.cs new file mode 100644 index 0000000..8cb62aa --- /dev/null +++ b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tOcsp.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; + +namespace SystemX.Core.DB; + +public partial class tOcsp +{ + public long cCuid { get; set; } + + public string cStatus { get; set; } = null!; + + public string cVerify { get; set; } = null!; + + public string? cOcsp { get; set; } + + public DateTime cDateTime { get; set; } +} diff --git a/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tTbscsr.cs b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tTbscsr.cs new file mode 100644 index 0000000..6e48f21 --- /dev/null +++ b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tTbscsr.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SystemX.Core.DB; + +public partial class tTbscsr +{ + public long cCuid { get; set; } + + public string cIftid { get; set; } = null!; + + public string cMacaddr { get; set; } = null!; + + public string cWmi { get; set; } = null!; + + public string cIdType { get; set; } = null!; + + public string cSupplierId { get; set; } = null!; + + public string cDc { get; set; } = null!; + + public string cTierCode { get; set; } = null!; + + public string cUnitCode { get; set; } = null!; + + public string cPublickey { get; set; } = null!; + + public string cCertType { get; set; } = null!; + + public string cOriginTbscsr { get; set; } = null!; + + public string cHashedTbscsr { get; set; } = null!; + + public string cPcid { get; set; } = null!; + + public string cDn { get; set; } = null!; + + public DateTime cDateTime { get; set; } +} diff --git a/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tVerifyResult.cs b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tVerifyResult.cs new file mode 100644 index 0000000..d95dc98 --- /dev/null +++ b/Projects/SystemX.Core/SystemX.Core.DB/VPKI_DataDB/Tables/tVerifyResult.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; + +namespace SystemX.Core.DB; + +public partial class tVerifyResult +{ + public long cCuid { get; set; } + + public string cResult { get; set; } = null!; +} diff --git a/Projects/SystemX.Core/SystemX.Core.sln b/Projects/SystemX.Core/SystemX.Core.sln index de82dab..799e5ae 100644 --- a/Projects/SystemX.Core/SystemX.Core.sln +++ b/Projects/SystemX.Core/SystemX.Core.sln @@ -13,6 +13,8 @@ Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.AccountDB", "DB\ EndProject Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.UniqueKeyDB", "DB\SystemX.DB.UniqueKeyDB\SystemX.DB.UniqueKeyDB.sqlproj", "{C67F3F97-1D52-4C75-A04F-16ED41822CCD}" EndProject +Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.VPKI_DataDB", "DB\SystemX.DB.VPKI_DataDB\SystemX.DB.VPKI_DataDB.sqlproj", "{5D374F06-D9FA-4159-BC84-1F3CA506F50E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -39,6 +41,12 @@ Global {C67F3F97-1D52-4C75-A04F-16ED41822CCD}.Release|Any CPU.ActiveCfg = Release|Any CPU {C67F3F97-1D52-4C75-A04F-16ED41822CCD}.Release|Any CPU.Build.0 = Release|Any CPU {C67F3F97-1D52-4C75-A04F-16ED41822CCD}.Release|Any CPU.Deploy.0 = Release|Any CPU + {5D374F06-D9FA-4159-BC84-1F3CA506F50E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D374F06-D9FA-4159-BC84-1F3CA506F50E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D374F06-D9FA-4159-BC84-1F3CA506F50E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {5D374F06-D9FA-4159-BC84-1F3CA506F50E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D374F06-D9FA-4159-BC84-1F3CA506F50E}.Release|Any CPU.Build.0 = Release|Any CPU + {5D374F06-D9FA-4159-BC84-1F3CA506F50E}.Release|Any CPU.Deploy.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -46,6 +54,7 @@ Global GlobalSection(NestedProjects) = preSolution {B44C85FA-BD31-419F-8481-477E166A5753} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52} {C67F3F97-1D52-4C75-A04F-16ED41822CCD} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52} + {5D374F06-D9FA-4159-BC84-1F3CA506F50E} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A26A3BD0-2161-41FA-949A-DEA966E8F798}