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 da6252b..71f0e72 100644 Binary files a/DBPatch/sqlScripts/dacpac/SystemX.DB.AccountDB.dacpac and b/DBPatch/sqlScripts/dacpac/SystemX.DB.AccountDB.dacpac differ diff --git a/DBPatch/sqlScripts/dacpac/SystemX.DB.UniqueKeyDB.dacpac b/DBPatch/sqlScripts/dacpac/SystemX.DB.UniqueKeyDB.dacpac index 9587265..88ac311 100644 Binary files a/DBPatch/sqlScripts/dacpac/SystemX.DB.UniqueKeyDB.dacpac and b/DBPatch/sqlScripts/dacpac/SystemX.DB.UniqueKeyDB.dacpac differ diff --git a/DBPatch/sqlScripts/dacpac/SystemX.DB.VPKI_DataDB.dacpac b/DBPatch/sqlScripts/dacpac/SystemX.DB.VPKI_DataDB.dacpac new file mode 100644 index 0000000..e8d4516 Binary files /dev/null and b/DBPatch/sqlScripts/dacpac/SystemX.DB.VPKI_DataDB.dacpac differ diff --git a/DBPatch/sqlScripts/dacpac/SystemX.DB.VpkiDB.dacpac b/DBPatch/sqlScripts/dacpac/SystemX.DB.VpkiDB.dacpac new file mode 100644 index 0000000..b273b27 Binary files /dev/null and b/DBPatch/sqlScripts/dacpac/SystemX.DB.VpkiDB.dacpac differ diff --git a/DBPatch/sqlScripts/dacpac/VPKI_DataDB.dacpac b/DBPatch/sqlScripts/dacpac/VPKI_DataDB.dacpac new file mode 100644 index 0000000..6bfd490 Binary files /dev/null and b/DBPatch/sqlScripts/dacpac/VPKI_DataDB.dacpac differ 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 b4db5f2..6bba90a 100644 Binary files a/Projects/DLL/SystemX.Core.DB.dll and b/Projects/DLL/SystemX.Core.DB.dll differ diff --git a/Projects/DLL/SystemX.Core.dll b/Projects/DLL/SystemX.Core.dll index 0e43fed..b113d4a 100644 Binary files a/Projects/DLL/SystemX.Core.dll and b/Projects/DLL/SystemX.Core.dll differ 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}