SimpleDapper导入

master
xiaochanghai 1 year ago
parent b9461aefdc
commit 0f0aa4ef34
  1. BIN
      Lib/SimpleDapper.dll
  2. 26
      Tiobon.Core.Api/Controllers/TestController.cs
  3. 2
      Tiobon.Core.Api/Program.cs
  4. 6
      Tiobon.Core.Api/Tiobon.Core.Api.csproj
  5. 5
      Tiobon.Core.Api/Tiobon.Core.xml
  6. 27
      Tiobon.Core.Tests/Common_Test/DbAccess_Should.cs
  7. 15
      Tiobon.Core.Tests/Tiobon.Core.Tests.csproj
  8. 658
      Tiobon.Core.Tests/appsettings.json

Binary file not shown.

@ -0,0 +1,26 @@
using System.Data;
using SimpleDapper;
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// Ghra_Grade
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghra)]
public class TestController : BaseController<IGhra_GradeServices, Ghra_Grade, Ghra_GradeDto, InsertGhra_GradeInput, EditGhra_GradeInput>
{
public TestController(IGhra_GradeServices service) : base(service)
{
}
[HttpGet]
public async Task<ServiceResult> Test()
{
string sql = "SELECT * FROM Ghra_Grade";
DataTable dt = await DbAccess.GetDataTableAsync(sql);
return Success();
}
}

@ -9,6 +9,7 @@ using Microsoft.IdentityModel.Logging;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
using Serilog;
using SimpleDapper.Extensions;
using Tiobon.Core;
using Tiobon.Core.Common.Core;
using Tiobon.Core.Extensions;
@ -55,6 +56,7 @@ builder.Services.AddCacheSetup();
builder.Services.AddSqlsugarSetup();
builder.Services.AddDbSetup();
builder.Services.AddInitializationHostServiceSetup();
builder.Services.AddSimpleDapperSetup();
builder.Host.AddSerilogSetup();

@ -108,6 +108,12 @@
<ProjectReference Include="..\Tiobon.Core.Extensions\Tiobon.Core.Extensions.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="SimpleDapper">
<HintPath>..\Lib\SimpleDapper.dll</HintPath>
</Reference>
</ItemGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties appsettings_1json__JsonSchema="" />

@ -1593,6 +1593,11 @@
</summary>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.TestController">
<summary>
Ghra_Grade
</summary>
</member>
<member name="T:Tiobon.Core.Api.Filter.GlobalActionFilter">
<summary>
全局请求验证

@ -0,0 +1,27 @@
using System.Data;
using SimpleDapper;
using Tiobon.Core.Model.Models;
using Xunit;
namespace Tiobon.Core.Tests.Common_Test
{
public class DbAccess_Should
{
[Fact]
public async void Test()
{
AppSetting.Init();
string sql = "SELECT * FROM Ghra_Grade";
DataTable dt = await DbAccess.GetDataTableAsync(sql);
//var list = await DbAccess.QueryListAsync<Ghra_Grade>(sql);
//var entity = new Ghra_Grade();
//DbAccess.Add(entity);
}
}
}

@ -18,10 +18,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="Moq" Version="4.20.69" />
<PackageReference Include="xunit" Version="2.6.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="Moq" Version="4.20.70" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
<PackageReference Include="xunit" Version="2.7.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.8">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
@ -31,6 +32,12 @@
<ProjectReference Include="..\Tiobon.Core.Api\Tiobon.Core.Api.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="SimpleDapper">
<HintPath>..\Lib\SimpleDapper.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Update="WMBlog.db">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>

@ -1,98 +1,99 @@
{
"urls": "http://*:9291", //webIIS
"Serilog": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Information",
"Microsoft.AspNetCore": "Warning",
"System": "Warning",
"System.Net.Http.HttpClient": "Warning",
"Hangfire": "Information",
"Magicodes": "Warning",
"DotNetCore.CAP": "Information",
"Savorboard.CAP": "Information",
"Quartz": "Information"
}
}
},
"AllowedHosts": "*",
"Redis": {
"Enable": false,
"ConnectionString": "127.0.0.1:6379",
"InstanceName": "" //
},
"RabbitMQ": {
"Enabled": false,
"Connection": "118.25.251.13",
"UserName": "",
"Password": "!",
"RetryCount": 3
},
"Kafka": {
"Enabled": false,
"Servers": "localhost:9092",
"Topic": "Tiobon",
"GroupId": "Tiobon-consumer",
"NumPartitions": 3 //
},
"EventBus": {
"Enabled": false,
"SubscriptionClientName": "Tiobon.Core"
},
"AppSettings": {
"CachingAOP": {
"Enabled": true
"urls": "http://*:9291", //webIIS
"Serilog": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Information",
"Microsoft.AspNetCore": "Warning",
"System": "Warning",
"System.Net.Http.HttpClient": "Warning",
"Hangfire": "Information",
"Magicodes": "Warning",
"DotNetCore.CAP": "Information",
"Savorboard.CAP": "Information",
"Quartz": "Information"
}
}
},
"AllowedHosts": "*",
"Redis": {
"Enable": false,
"ConnectionString": "127.0.0.1:6379",
"InstanceName": "" //
},
"LogToDb": true,
"LogAOP": {
"Enabled": false,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
}
"RabbitMQ": {
"Enabled": true,
"Connection": "101xxxx57",
"UserName": "xxxx",
"Password": "xxxxx",
"Port": "5672",
"RetryCount": 2
},
"TranAOP": {
"Enabled": true
"Kafka": {
"Enabled": false,
"Servers": "localhost:9092",
"Topic": "Tiobon",
"GroupId": "Tiobon-consumer",
"NumPartitions": 3 //
},
"UserAuditAOP": {
"Enabled": false
"EventBus": {
"Enabled": false,
"SubscriptionClientName": "Tiobon.Core"
},
"SqlAOP": {
"Enabled": true,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
},
"LogToConsole": {
"Enabled": true
}
"AppSettings": {
"CachingAOP": {
"Enabled": true
},
"LogToDb": true,
"LogAOP": {
"Enabled": false,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
}
},
"TranAOP": {
"Enabled": true
},
"UserAuditAOP": {
"Enabled": false
},
"SqlAOP": {
"Enabled": true,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
},
"LogToConsole": {
"Enabled": true
}
},
"Date": "2018-08-28",
"SeedDBEnabled": false, //
"SeedDBDataEnabled": false, //,
"Author": "Tiobon.Core",
"SvcName": "", // /svc/Tiobon
"UseLoadTest": false
},
"Date": "2018-08-28",
"SeedDBEnabled": true, //
"SeedDBDataEnabled": true, //,
"Author": "Tiobon.Core",
"SvcName": "", // /svc/Tiobon
"UseLoadTest": false
},
//DB
//MainDbEnabledtrue
//Log:Enabledtrue
//Slaves,!SqlServer
//
//,
//,(+)
//ConnIdConnId+,ConnIdMain,ConnIdMian1
//!
//,
"MainDB": "Main", //Enabledtrue
"DBS": [
/*
//DB
//MainDbEnabledtrue
//Log:Enabledtrue
//Slaves,!SqlServer
//
//,
//,(+)
//ConnIdConnId+,ConnIdMain,ConnIdMian1
//!
//,
"MainDB": "WMTiobon_MSSQL_Main", //Enabledtrue
"DBS": [
/*
DBType
MySql = 0,
SqlServer = 1,
@ -102,247 +103,268 @@
Dm = 5,//
Kdbndp = 6,//
*/
{
"ConnId": "Main",
"DBType": 2,
"Enabled": true,
"Connection": "WMTiobon.db", //sqlite
"Slaves": [
{
"HitRate": 0,// 0使
"Connection": "WMTiobon2.db"
}
]
},
{
"ConnId": "Main2",
"DBType": 2,
"Enabled": true,
"Connection": "WMTiobon3.db", //sqlite
"Slaves": [
"ConnId": "WMTiobon_MSSQL_Main",
"DBType": 1,
"Enabled": true,
"Connection": "Data Source=116.204.98.209;User ID=Tiobon;Password=&($!4UGUyU#$2sp9O;Database=Tiobon;Encrypt=True;TrustServerCertificate=True;",
"ProviderName": "System.Data.SqlClient"
},
{
"ConnId": "Main",
"DBType": 2,
"Enabled": false,
"Connection": "WMTiobon.db", //sqlite
"Slaves": [
{
"HitRate": 0, // 0使
"Connection": "WMTiobon2.db"
}
]
},
{
"ConnId": "Main2",
"DBType": 2,
"Enabled": false,
"Connection": "WMTiobon3.db", //sqlite
"Slaves": [
{
"HitRate": 0, // 0使
"Connection": "WMTiobon4.db"
}
]
},
{
"ConnId": "Log", //,
"DBType": 1,
"Enabled": true,
"HitRate": 50,
"Connection": "Data Source=116.204.98.209;User ID=Tiobon;Password=&($!4UGUyU#$2sp9O;Database=Tiobon;Encrypt=True;TrustServerCertificate=True;",
"ProviderName": "System.Data.SqlClient"
},
{
"ConnId": "WMTiobon_MSSQL_1",
"DBType": 1,
"Enabled": false,
"Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ProviderName": "System.Data.SqlClient"
},
{
"HitRate": 0,// 0使
"Connection": "WMTiobon4.db"
"ConnId": "WMTiobon_MSSQL_2",
"DBType": 1,
"Enabled": false,
"Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ProviderName": "System.Data.SqlClient"
},
{
"ConnId": "WMTiobon_MYSQL",
"DBType": 0,
"Enabled": false,
"Connection": "server=localhost;Database=Tiobon;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;"
},
{
"ConnId": "WMTiobon_MYSQL_2",
"DBType": 0,
"Enabled": false,
"Connection": "server=localhost;Database=Tioboncore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;"
},
{
"ConnId": "WMTiobon_ORACLE",
"DBType": 3,
"Enabled": false,
"Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;"
},
{
"ConnId": "WMTiobon_DM",
"DBType": 5,
"Enabled": false,
"Connection": "Server=xxxxx:5236;User Id=xxxxx;PWD=xxxxx;SCHEMA=TESTDBA;"
},
{
"ConnId": "WMTiobon_KDBNDP",
"DBType": 6,
"Enabled": false,
"Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;"
}
]
},
{
"ConnId": "Log", //,
"DBType": 2,
"Enabled": true,
"HitRate": 50,
"Connection": "WMTiobonLog.db" //sqlite
},
{
"ConnId": "WMTiobon_MSSQL_1",
"DBType": 1,
"Enabled": false,
"Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ProviderName": "System.Data.SqlClient"
},
{
"ConnId": "WMTiobon_MSSQL_2",
"DBType": 1,
"Enabled": false,
"Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ProviderName": "System.Data.SqlClient"
],
"Audience": {
"Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //16+
"SecretFile": "C:\\my-file\\Tiobon.core.audience.secret.txt", //Secret
"Issuer": "Tiobon.Core", //
"Audience": "wr" //
},
{
"ConnId": "WMTiobon_MYSQL",
"DBType": 0,
"Enabled": false,
"Connection": "server=localhost;Database=Tiobon;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;"
"Mongo": {
"ConnectionString": "mongodb://nosql.data",
"Database": "TiobonCoreDb"
},
{
"ConnId": "WMTiobon_MYSQL_2",
"DBType": 0,
"Enabled": false,
"Connection": "server=localhost;Database=Tioboncore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;"
},
{
"ConnId": "WMTiobon_ORACLE",
"DBType": 3,
"Enabled": false,
"Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;"
},
{
"ConnId": "WMTiobon_DM",
"DBType": 5,
"Enabled": false,
"Connection": "Server=xxxxx:5236;User Id=xxxxx;PWD=xxxxx;SCHEMA=TESTDBA;"
},
{
"ConnId": "WMTiobon_KDBNDP",
"DBType": 6,
"Enabled": false,
"Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;"
}
],
"Audience": {
"Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //16+
"SecretFile": "C:\\my-file\\Tiobon.core.audience.secret.txt", //Secret
"Issuer": "Tiobon.Core",
"Audience": "wr"
},
"Mongo": {
"ConnectionString": "mongodb://nosql.data",
"Database": "TiobonCoreDb"
},
"Startup": {
"Domain": "http://localhost:9291",
"Cors": {
"PolicyName": "CorsIpAccess", //
"EnableAllIPs": false, //trueIP访
// /localhost:8000/
// http://127.0.0.1:1818 http://localhost:1818
"IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688"
},
"AppConfigAlert": {
"Enabled": true
},
"ApiName": "Tiobon.Core",
"IdentityServer4": {
"Enabled": false, // false使jwttrue使Ids4
"AuthorizationUrl": "http://localhost:5004", //
"ApiName": "Tiobon.core.api" //
},
"Authing": {
"Enabled": false,
"Issuer": "https://uldr24esx31h-demo.authing.cn/oidc",
"Audience": "63d51c4205c2849803be5178",
"JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json"
},
"RedisMq": {
"Enabled": false //redis
},
"MiniProfiler": {
"Enabled": false //
},
"Nacos": {
"Enabled": false //Nacos
}
},
"Middleware": {
"RequestResponseLog": {
"Enabled": true,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
}
"Startup": {
"Domain": "http://localhost:9291",
"Cors": {
"PolicyName": "CorsIpAccess", //
"EnableAllIPs": false, //trueIP访
// /localhost:8000/
// http://127.0.0.1:1818 http://localhost:1818
"IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688"
},
"AppConfigAlert": {
"Enabled": true
},
"IdentityServer4": {
"Enabled": false, // false使jwttrue使Ids4
"AuthorizationUrl": "http://localhost:5004", //
"ApiName": "Tiobon.core.api" //
},
"Authing": {
"Enabled": false,
"Issuer": "https://uldr24esx31h-demo.authing.cn/oidc",
"Audience": "63d51c4205c2849803be5178",
"JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json"
},
"RedisMq": {
"Enabled": false //redis
},
"MiniProfiler": {
"Enabled": false //
},
"Nacos": {
"Enabled": false //Nacos
}
},
"IPLog": {
"Enabled": true,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
}
"Middleware": {
"RequestResponseLog": {
"Enabled": true,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
}
},
"IPLog": {
"Enabled": true,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
}
},
"RecordAccessLogs": {
"Enabled": true,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
},
"IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server,"
},
"SignalR": {
"Enabled": true
},
"SignalRSendLog": {
"Enabled": true
},
"QuartzNetJob": {
"Enabled": true
},
"Consul": {
"Enabled": false
},
"IpRateLimit": {
"Enabled": true
},
"EncryptionResponse": {
"Enabled": true,
"AllApis": false,
"LimitApis": [
"/api/Login/GetJwtTokenSecret"
]
},
"EncryptionRequest": {
"Enabled": true,
"AllApis": false,
"LimitApis": [
"/api/Login/GetJwtTokenSecret"
]
}
},
"RecordAccessLogs": {
"Enabled": true,
"LogToFile": {
"Enabled": true
},
"LogToDB": {
"Enabled": true
},
"IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server,"
"IpRateLimiting": {
"EnableEndpointRateLimiting": false, //False: globally executed, true: executed for each
"StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter
"RealIpHeader": "X-Real-IP",
"ClientIdHeader": "X-ClientId",
"IpWhitelist": [], //
"EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ],
"ClientWhitelist": [ "dev-client-1", "dev-client-2" ],
"QuotaExceededResponse": {
"Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}",
"ContentType": "application/json",
"StatusCode": 429
},
"HttpStatusCode": 429, //
"GeneralRules": [ //api,*
{
"Endpoint": "*:/api/Tiobon*",
"Period": "1m",
"Limit": 20
},
{
"Endpoint": "*/api/*",
"Period": "1s",
"Limit": 3
},
{
"Endpoint": "*/api/*",
"Period": "1m",
"Limit": 30
},
{
"Endpoint": "*/api/*",
"Period": "12h",
"Limit": 500
}
]
},
"SignalR": {
"Enabled": true
"ConsulSetting": {
"ServiceName": "TiobonCoreService",
"ServiceIP": "localhost",
"ServicePort": "9291",
"ServiceHealthCheck": "/healthcheck",
"ConsulAddress": "http://localhost:8500"
},
"SignalRSendLog": {
"Enabled": true
"PayInfo": { //
"MERCHANTID": "", //
"POSID": "", //
"BRANCHID": "", //
"pubKey": "", //
"USER_ID": "", //
"PASSWORD": "", //
"OutAddress": "http://127.0.0.1:12345" //
},
"QuartzNetJob": {
"Enabled": true
"nacos": {
"ServerAddresses": [ "http://localhost:8848" ], // nacos
"DefaultTimeOut": 15000, //
"Namespace": "public", //
"ListenInterval": 10000, //
"ServiceName": "Tiobon.Core.Api", //
"Port": "9291", //
"RegisterEnabled": true // nacos
},
"Consul": {
"Enabled": false
"LogFiedOutPutConfigs": {
"tcpAddressHost": "", // elktcp
"tcpAddressPort": 0, // elktcp
"ConfigsInfo": [ // elk
{
"FiedName": "applicationName",
"FiedValue": "Tiobon.Core.Api"
}
]
},
"IpRateLimit": {
"Enabled": true
"Seq": {
"Enabled": true,
"Address": "http://localhost:5341/",
"ApiKey": ""
}
},
"IpRateLimiting": {
"EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each
"StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter
"RealIpHeader": "X-Real-IP",
"ClientIdHeader": "X-ClientId",
"IpWhitelist": [], //
"EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ],
"ClientWhitelist": [ "dev-client-1", "dev-client-2" ],
"QuotaExceededResponse": {
"Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}",
"ContentType": "application/json",
"StatusCode": 429
},
"HttpStatusCode": 429, //
"GeneralRules": [ //api,*
{
"Endpoint": "*:/api/Tiobon*",
"Period": "1m",
"Limit": 20
},
{
"Endpoint": "*/api/*",
"Period": "1s",
"Limit": 3
},
{
"Endpoint": "*/api/*",
"Period": "1m",
"Limit": 30
},
{
"Endpoint": "*/api/*",
"Period": "12h",
"Limit": 500
}
]
},
"ConsulSetting": {
"ServiceName": "TiobonCoreService",
"ServiceIP": "localhost",
"ServicePort": "9291",
"ServiceHealthCheck": "/healthcheck",
"ConsulAddress": "http://localhost:8500"
},
"PayInfo": { //
"MERCHANTID": "", //
"POSID": "", //
"BRANCHID": "", //
"pubKey": "", //
"USER_ID": "", //
"PASSWORD": "", //
"OutAddress": "http://127.0.0.1:12345" //
},
"nacos": {
"ServerAddresses": [ "http://localhost:8848" ], // nacos
"DefaultTimeOut": 15000, //
"Namespace": "public", //
"ListenInterval": 10000, //
"ServiceName": "Tiobon.Core.Api", //
"Port": "9291", //
"RegisterEnabled": true // nacos
},
"LogFiedOutPutConfigs": {
"tcpAddressHost": "", // elktcp
"tcpAddressPort": 0, // elktcp
"ConfigsInfo": [ // elk
{
"FiedName": "applicationName",
"FiedValue": "Tiobon.Core.Api"
}
]
},
"Seq": {
"Enabled": true,
"Address": "http://localhost:5341/",
"ApiKey": ""
}
}
Loading…
Cancel
Save