chore 调整项目结构
0
KonSoft.BackgroundJobs
Normal file
0
KonSoft.BackgroundWorker
Normal file
472
KonSoft.sln
@ -19,16 +19,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.InternalGateway", "
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.PublicGateway", "gateways\KonSoft.PublicGateway\KonSoft.PublicGateway.csproj", "{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.PublicGateway", "gateways\KonSoft.PublicGateway\KonSoft.PublicGateway.csproj", "{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.HttpApi.Host", "microservices\KonSoft.Admin.HttpApi.Host\KonSoft.Admin.HttpApi.Host.csproj", "{97BC949A-9142-B129-10FE-0D9381A49C05}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.HttpApi.Host", "microservices\KonSoft.Dispatch.HttpApi.Host\KonSoft.Dispatch.HttpApi.Host.csproj", "{D422C785-D6D0-8F6B-A6C3-2B0E5497B923}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.HttpApi.Host", "microservices\KonSoft.Payment.HttpApi.Host\KonSoft.Payment.HttpApi.Host.csproj", "{9A034977-0FBC-A3C8-8432-9FDD073F215A}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.HttpApi.Host", "microservices\KonSoft.Report.HttpApi.Host\KonSoft.Report.HttpApi.Host.csproj", "{1C89424B-DA16-8840-4AB0-C446CFBD634C}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.HttpApi.Host", "microservices\KonSoft.TenantManagement.HttpApi.Host\KonSoft.TenantManagement.HttpApi.Host.csproj", "{3641CA05-99C5-2245-C663-6CE00730E87C}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "admin", "admin", "{A53664DF-71AE-4C8E-A2DC-A60605FDF57C}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "admin", "admin", "{A53664DF-71AE-4C8E-A2DC-A60605FDF57C}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dispatch", "dispatch", "{75A22B51-A986-48BD-A633-383DA18DE644}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dispatch", "dispatch", "{75A22B51-A986-48BD-A633-383DA18DE644}"
|
||||||
@ -61,6 +51,140 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{1C06151A-4
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Shared", "shared\KonSoft.Shared\KonSoft.Shared.csproj", "{345B5CDA-DC77-4956-BF96-80707EC1B5B2}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Shared", "shared\KonSoft.Shared\KonSoft.Shared.csproj", "{345B5CDA-DC77-4956-BF96-80707EC1B5B2}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.Application", "modules\admin\src\KonSoft.Admin.Application\KonSoft.Admin.Application.csproj", "{9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.Application.Contracts", "modules\admin\src\KonSoft.Admin.Application.Contracts\KonSoft.Admin.Application.Contracts.csproj", "{9F68B0E2-0B1D-E0E8-1BE7-079F693A4643}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.Domain", "modules\admin\src\KonSoft.Admin.Domain\KonSoft.Admin.Domain.csproj", "{D1A86C77-533D-5B68-04F1-7F7BFBF56AC7}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.Domain.Shared", "modules\admin\src\KonSoft.Admin.Domain.Shared\KonSoft.Admin.Domain.Shared.csproj", "{75F92EFD-9FCD-3BF4-ED33-066E84A1A906}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.EntityFrameworkCore", "modules\admin\src\KonSoft.Admin.EntityFrameworkCore\KonSoft.Admin.EntityFrameworkCore.csproj", "{A306661D-B99C-4623-61D9-9968D0260F53}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.HttpApi", "modules\admin\src\KonSoft.Admin.HttpApi\KonSoft.Admin.HttpApi.csproj", "{B449B5F0-DAB0-27DD-BC8A-75A1D63FB924}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.HttpApi.Client", "modules\admin\src\KonSoft.Admin.HttpApi.Client\KonSoft.Admin.HttpApi.Client.csproj", "{846FE47C-4E7F-D4CE-46DE-460FBBDAD6EB}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.Application.Tests", "modules\admin\test\KonSoft.Admin.Application.Tests\KonSoft.Admin.Application.Tests.csproj", "{2B1AB90F-3EE1-DA95-26E9-41657FA2BE1C}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.Domain.Tests", "modules\admin\test\KonSoft.Admin.Domain.Tests\KonSoft.Admin.Domain.Tests.csproj", "{3BEDE290-7D99-7F2C-C76D-108C016CE6D1}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.EntityFrameworkCore.Tests", "modules\admin\test\KonSoft.Admin.EntityFrameworkCore.Tests\KonSoft.Admin.EntityFrameworkCore.Tests.csproj", "{D87DBC28-58B7-9D6A-D2E5-BE4C748CF920}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.HttpApi.Client.ConsoleTestApp", "modules\admin\test\KonSoft.Admin.HttpApi.Client.ConsoleTestApp\KonSoft.Admin.HttpApi.Client.ConsoleTestApp.csproj", "{B2C32755-D986-3F1C-913A-3A6F1E56EF97}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.TestBase", "modules\admin\test\KonSoft.Admin.TestBase\KonSoft.Admin.TestBase.csproj", "{C5FC9F08-9A41-8581-A672-B6F8753C9991}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.Application", "modules\dispatch\src\KonSoft.Dispatch.Application\KonSoft.Dispatch.Application.csproj", "{B2020B57-1CAE-8C23-A413-92F54BF40313}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.Application.Contracts", "modules\dispatch\src\KonSoft.Dispatch.Application.Contracts\KonSoft.Dispatch.Application.Contracts.csproj", "{80D04466-EACE-9998-DACB-A68BE9B93847}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.Domain", "modules\dispatch\src\KonSoft.Dispatch.Domain\KonSoft.Dispatch.Domain.csproj", "{9F684B76-D619-765D-4F43-EDEE32F5DEF7}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.Domain.Shared", "modules\dispatch\src\KonSoft.Dispatch.Domain.Shared\KonSoft.Dispatch.Domain.Shared.csproj", "{BAF030F5-3E23-4A8E-7ED6-504EB5BBD4FE}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.EntityFrameworkCore", "modules\dispatch\src\KonSoft.Dispatch.EntityFrameworkCore\KonSoft.Dispatch.EntityFrameworkCore.csproj", "{B9B6B43D-6D13-C11B-1AE5-ADCBFEE68E67}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.HttpApi", "modules\dispatch\src\KonSoft.Dispatch.HttpApi\KonSoft.Dispatch.HttpApi.csproj", "{BEEB83BF-B5B0-EB53-EF78-415D4565187F}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.HttpApi.Client", "modules\dispatch\src\KonSoft.Dispatch.HttpApi.Client\KonSoft.Dispatch.HttpApi.Client.csproj", "{9E9AAE6F-1C3C-B542-64E7-E11CE55E187A}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.Application.Tests", "modules\dispatch\test\KonSoft.Dispatch.Application.Tests\KonSoft.Dispatch.Application.Tests.csproj", "{FA473ED4-54D4-C0DD-E589-31835F3AC9AA}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.Domain.Tests", "modules\dispatch\test\KonSoft.Dispatch.Domain.Tests\KonSoft.Dispatch.Domain.Tests.csproj", "{99D81094-6B32-1C9D-5F84-E7FCEF67DFB5}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.EntityFrameworkCore.Tests", "modules\dispatch\test\KonSoft.Dispatch.EntityFrameworkCore.Tests\KonSoft.Dispatch.EntityFrameworkCore.Tests.csproj", "{D3091C1B-443C-23F1-B007-A1262E92A3BB}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.HttpApi.Client.ConsoleTestApp", "modules\dispatch\test\KonSoft.Dispatch.HttpApi.Client.ConsoleTestApp\KonSoft.Dispatch.HttpApi.Client.ConsoleTestApp.csproj", "{AA2EB1B6-B6BF-A9DF-7C1C-F30B2DCA1E2A}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.TestBase", "modules\dispatch\test\KonSoft.Dispatch.TestBase\KonSoft.Dispatch.TestBase.csproj", "{92CC92BF-8025-40F4-5121-DC2570ADAA04}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.Application", "modules\payment\src\KonSoft.Payment.Application\KonSoft.Payment.Application.csproj", "{E9EE0B66-228F-B8EC-417C-445CAF351F76}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.Application.Contracts", "modules\payment\src\KonSoft.Payment.Application.Contracts\KonSoft.Payment.Application.Contracts.csproj", "{EC6F5CC9-D45A-2CBC-5C84-63F6766E9359}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.Domain", "modules\payment\src\KonSoft.Payment.Domain\KonSoft.Payment.Domain.csproj", "{E2C7EA39-82A9-DFC8-F1B5-87298AAA02AE}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.Domain.Shared", "modules\payment\src\KonSoft.Payment.Domain.Shared\KonSoft.Payment.Domain.Shared.csproj", "{2FA0AC97-1BF7-5B4B-4B3A-81AA3B3882F3}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.EntityFrameworkCore", "modules\payment\src\KonSoft.Payment.EntityFrameworkCore\KonSoft.Payment.EntityFrameworkCore.csproj", "{817CE319-21A4-6FB1-3002-E786F8D0DAC5}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.HttpApi", "modules\payment\src\KonSoft.Payment.HttpApi\KonSoft.Payment.HttpApi.csproj", "{D9F0918C-5DB6-B97D-FF09-18345B23DF44}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.HttpApi.Client", "modules\payment\src\KonSoft.Payment.HttpApi.Client\KonSoft.Payment.HttpApi.Client.csproj", "{087E7661-DB2D-07F9-586E-A49EE0399A07}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.Application.Tests", "modules\payment\test\KonSoft.Payment.Application.Tests\KonSoft.Payment.Application.Tests.csproj", "{C49DCA14-AA0E-CE33-9028-AFE76A31B00F}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.Domain.Tests", "modules\payment\test\KonSoft.Payment.Domain.Tests\KonSoft.Payment.Domain.Tests.csproj", "{E84CB613-ADF5-3F80-3CC2-0CB7424865B0}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.EntityFrameworkCore.Tests", "modules\payment\test\KonSoft.Payment.EntityFrameworkCore.Tests\KonSoft.Payment.EntityFrameworkCore.Tests.csproj", "{959EA8DB-5C6D-58C9-A71B-FBA5D93F3B39}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.HttpApi.Client.ConsoleTestApp", "modules\payment\test\KonSoft.Payment.HttpApi.Client.ConsoleTestApp\KonSoft.Payment.HttpApi.Client.ConsoleTestApp.csproj", "{9DD56F78-BA2E-E3F0-373F-C5F6509D1E9D}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.TestBase", "modules\payment\test\KonSoft.Payment.TestBase\KonSoft.Payment.TestBase.csproj", "{7E5945D8-0B0B-4426-BB05-8F7EE37036E1}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.Application", "modules\report\src\KonSoft.Report.Application\KonSoft.Report.Application.csproj", "{C14C9349-5A9B-079B-1DAA-F68D09745F4B}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.Application.Contracts", "modules\report\src\KonSoft.Report.Application.Contracts\KonSoft.Report.Application.Contracts.csproj", "{DE7BD236-A0C3-DB34-DF42-B4258E3DD72F}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.Domain", "modules\report\src\KonSoft.Report.Domain\KonSoft.Report.Domain.csproj", "{0BCC52A7-8D67-64D7-FCD7-436D6B13B053}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.Domain.Shared", "modules\report\src\KonSoft.Report.Domain.Shared\KonSoft.Report.Domain.Shared.csproj", "{60D113CF-9C20-11BC-AB4B-A4CAB288EDD7}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.EntityFrameworkCore", "modules\report\src\KonSoft.Report.EntityFrameworkCore\KonSoft.Report.EntityFrameworkCore.csproj", "{403AF0D9-5199-E02A-4CBA-F877E0559DE4}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.HttpApi", "modules\report\src\KonSoft.Report.HttpApi\KonSoft.Report.HttpApi.csproj", "{73B2CDFD-63F6-0023-B10C-E844D978279A}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.HttpApi.Client", "modules\report\src\KonSoft.Report.HttpApi.Client\KonSoft.Report.HttpApi.Client.csproj", "{93E93A6B-2808-BCC8-979D-B6E0C6A08558}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.Application.Tests", "modules\report\test\KonSoft.Report.Application.Tests\KonSoft.Report.Application.Tests.csproj", "{D801B2E8-DACB-2B61-D54A-06F16D1A976B}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.Domain.Tests", "modules\report\test\KonSoft.Report.Domain.Tests\KonSoft.Report.Domain.Tests.csproj", "{4930C29C-A870-AB21-34E8-496898DCF474}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.EntityFrameworkCore.Tests", "modules\report\test\KonSoft.Report.EntityFrameworkCore.Tests\KonSoft.Report.EntityFrameworkCore.Tests.csproj", "{4E4B7F2C-EADC-EAEB-C087-309A6FD2E99D}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.HttpApi.Client.ConsoleTestApp", "modules\report\test\KonSoft.Report.HttpApi.Client.ConsoleTestApp\KonSoft.Report.HttpApi.Client.ConsoleTestApp.csproj", "{B92604FE-8BEB-D7C8-E849-EE87E6BDB65E}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.TestBase", "modules\report\test\KonSoft.Report.TestBase\KonSoft.Report.TestBase.csproj", "{768F149B-659D-3769-3570-86C753EE8896}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.Application", "modules\tenant-management\src\KonSoft.TenantManagement.Application\KonSoft.TenantManagement.Application.csproj", "{22F62964-1C2C-339D-7572-E91E34B3530F}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.Application.Contracts", "modules\tenant-management\src\KonSoft.TenantManagement.Application.Contracts\KonSoft.TenantManagement.Application.Contracts.csproj", "{2E097B16-F382-0F60-8806-79960016032A}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.Domain", "modules\tenant-management\src\KonSoft.TenantManagement.Domain\KonSoft.TenantManagement.Domain.csproj", "{DBBB7A40-EC3E-2018-F2B7-C0041D1DD215}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.Domain.Shared", "modules\tenant-management\src\KonSoft.TenantManagement.Domain.Shared\KonSoft.TenantManagement.Domain.Shared.csproj", "{2D47B675-1235-052F-4409-DC335A633FCD}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.EntityFrameworkCore", "modules\tenant-management\src\KonSoft.TenantManagement.EntityFrameworkCore\KonSoft.TenantManagement.EntityFrameworkCore.csproj", "{BA608D2C-406D-B666-5383-D806C46EDD05}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.HttpApi", "modules\tenant-management\src\KonSoft.TenantManagement.HttpApi\KonSoft.TenantManagement.HttpApi.csproj", "{70F10069-D717-0C25-33A4-9AC90FF5E8A3}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.HttpApi.Client", "modules\tenant-management\src\KonSoft.TenantManagement.HttpApi.Client\KonSoft.TenantManagement.HttpApi.Client.csproj", "{6958C0D9-6C81-EF5F-D68C-B9E8AD8E7130}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.Application.Tests", "modules\tenant-management\test\KonSoft.TenantManagement.Application.Tests\KonSoft.TenantManagement.Application.Tests.csproj", "{B1D8B704-8077-00FC-B44B-B5B1071DD934}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.Domain.Tests", "modules\tenant-management\test\KonSoft.TenantManagement.Domain.Tests\KonSoft.TenantManagement.Domain.Tests.csproj", "{B89FEABF-4CDA-9A62-E9E1-896DC9AD7AA3}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.EntityFrameworkCore.Tests", "modules\tenant-management\test\KonSoft.TenantManagement.EntityFrameworkCore.Tests\KonSoft.TenantManagement.EntityFrameworkCore.Tests.csproj", "{A8F64512-A7F7-6670-D7C7-4AA41C4B2E0F}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.HttpApi.Client.ConsoleTestApp", "modules\tenant-management\test\KonSoft.TenantManagement.HttpApi.Client.ConsoleTestApp\KonSoft.TenantManagement.HttpApi.Client.ConsoleTestApp.csproj", "{AAF0C46B-F69F-56D6-319F-B0AF8B3A7C1D}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.TestBase", "modules\tenant-management\test\KonSoft.TenantManagement.TestBase\KonSoft.TenantManagement.TestBase.csproj", "{1E3AA937-6394-0C20-C59B-127D2B01DE4F}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.BackgroundWorker", "applications\KonSoft.BackgroundWorker\KonSoft.BackgroundWorker.csproj", "{410A79A5-24B5-473E-BE7B-5C787B7431A2}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.BackgroundJobs", "applications\KonSoft.BackgroundJobs\KonSoft.BackgroundJobs.csproj", "{95718E42-884D-4396-AF1E-EDFFDD8C86D4}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Admin.HttpApi.Host", "microservices\KonSoft.Admin.HttpApi.Host\KonSoft.Admin.HttpApi.Host.csproj", "{97BC949A-9142-B129-10FE-0D9381A49C05}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Dispatch.HttpApi.Host", "microservices\KonSoft.Dispatch.HttpApi.Host\KonSoft.Dispatch.HttpApi.Host.csproj", "{D422C785-D6D0-8F6B-A6C3-2B0E5497B923}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Payment.HttpApi.Host", "microservices\KonSoft.Payment.HttpApi.Host\KonSoft.Payment.HttpApi.Host.csproj", "{9A034977-0FBC-A3C8-8432-9FDD073F215A}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.Report.HttpApi.Host", "microservices\KonSoft.Report.HttpApi.Host\KonSoft.Report.HttpApi.Host.csproj", "{1C89424B-DA16-8840-4AB0-C446CFBD634C}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KonSoft.TenantManagement.HttpApi.Host", "microservices\KonSoft.TenantManagement.HttpApi.Host\KonSoft.TenantManagement.HttpApi.Host.csproj", "{3641CA05-99C5-2245-C663-6CE00730E87C}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -79,6 +203,258 @@ Global
|
|||||||
{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}.Release|Any CPU.Build.0 = Release|Any CPU
|
{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9F68B0E2-0B1D-E0E8-1BE7-079F693A4643}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9F68B0E2-0B1D-E0E8-1BE7-079F693A4643}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9F68B0E2-0B1D-E0E8-1BE7-079F693A4643}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9F68B0E2-0B1D-E0E8-1BE7-079F693A4643}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D1A86C77-533D-5B68-04F1-7F7BFBF56AC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D1A86C77-533D-5B68-04F1-7F7BFBF56AC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D1A86C77-533D-5B68-04F1-7F7BFBF56AC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D1A86C77-533D-5B68-04F1-7F7BFBF56AC7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{75F92EFD-9FCD-3BF4-ED33-066E84A1A906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{75F92EFD-9FCD-3BF4-ED33-066E84A1A906}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{75F92EFD-9FCD-3BF4-ED33-066E84A1A906}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{75F92EFD-9FCD-3BF4-ED33-066E84A1A906}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A306661D-B99C-4623-61D9-9968D0260F53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A306661D-B99C-4623-61D9-9968D0260F53}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A306661D-B99C-4623-61D9-9968D0260F53}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A306661D-B99C-4623-61D9-9968D0260F53}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B449B5F0-DAB0-27DD-BC8A-75A1D63FB924}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B449B5F0-DAB0-27DD-BC8A-75A1D63FB924}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B449B5F0-DAB0-27DD-BC8A-75A1D63FB924}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B449B5F0-DAB0-27DD-BC8A-75A1D63FB924}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{846FE47C-4E7F-D4CE-46DE-460FBBDAD6EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{846FE47C-4E7F-D4CE-46DE-460FBBDAD6EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{846FE47C-4E7F-D4CE-46DE-460FBBDAD6EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{846FE47C-4E7F-D4CE-46DE-460FBBDAD6EB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2B1AB90F-3EE1-DA95-26E9-41657FA2BE1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2B1AB90F-3EE1-DA95-26E9-41657FA2BE1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2B1AB90F-3EE1-DA95-26E9-41657FA2BE1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2B1AB90F-3EE1-DA95-26E9-41657FA2BE1C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3BEDE290-7D99-7F2C-C76D-108C016CE6D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3BEDE290-7D99-7F2C-C76D-108C016CE6D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3BEDE290-7D99-7F2C-C76D-108C016CE6D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3BEDE290-7D99-7F2C-C76D-108C016CE6D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D87DBC28-58B7-9D6A-D2E5-BE4C748CF920}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D87DBC28-58B7-9D6A-D2E5-BE4C748CF920}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D87DBC28-58B7-9D6A-D2E5-BE4C748CF920}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D87DBC28-58B7-9D6A-D2E5-BE4C748CF920}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B2C32755-D986-3F1C-913A-3A6F1E56EF97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B2C32755-D986-3F1C-913A-3A6F1E56EF97}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B2C32755-D986-3F1C-913A-3A6F1E56EF97}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B2C32755-D986-3F1C-913A-3A6F1E56EF97}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C5FC9F08-9A41-8581-A672-B6F8753C9991}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C5FC9F08-9A41-8581-A672-B6F8753C9991}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C5FC9F08-9A41-8581-A672-B6F8753C9991}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C5FC9F08-9A41-8581-A672-B6F8753C9991}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B2020B57-1CAE-8C23-A413-92F54BF40313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B2020B57-1CAE-8C23-A413-92F54BF40313}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B2020B57-1CAE-8C23-A413-92F54BF40313}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B2020B57-1CAE-8C23-A413-92F54BF40313}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{80D04466-EACE-9998-DACB-A68BE9B93847}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{80D04466-EACE-9998-DACB-A68BE9B93847}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{80D04466-EACE-9998-DACB-A68BE9B93847}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{80D04466-EACE-9998-DACB-A68BE9B93847}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9F684B76-D619-765D-4F43-EDEE32F5DEF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9F684B76-D619-765D-4F43-EDEE32F5DEF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9F684B76-D619-765D-4F43-EDEE32F5DEF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9F684B76-D619-765D-4F43-EDEE32F5DEF7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BAF030F5-3E23-4A8E-7ED6-504EB5BBD4FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BAF030F5-3E23-4A8E-7ED6-504EB5BBD4FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BAF030F5-3E23-4A8E-7ED6-504EB5BBD4FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BAF030F5-3E23-4A8E-7ED6-504EB5BBD4FE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B9B6B43D-6D13-C11B-1AE5-ADCBFEE68E67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B9B6B43D-6D13-C11B-1AE5-ADCBFEE68E67}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B9B6B43D-6D13-C11B-1AE5-ADCBFEE68E67}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B9B6B43D-6D13-C11B-1AE5-ADCBFEE68E67}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BEEB83BF-B5B0-EB53-EF78-415D4565187F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BEEB83BF-B5B0-EB53-EF78-415D4565187F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BEEB83BF-B5B0-EB53-EF78-415D4565187F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BEEB83BF-B5B0-EB53-EF78-415D4565187F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9E9AAE6F-1C3C-B542-64E7-E11CE55E187A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9E9AAE6F-1C3C-B542-64E7-E11CE55E187A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9E9AAE6F-1C3C-B542-64E7-E11CE55E187A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9E9AAE6F-1C3C-B542-64E7-E11CE55E187A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{FA473ED4-54D4-C0DD-E589-31835F3AC9AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{FA473ED4-54D4-C0DD-E589-31835F3AC9AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{FA473ED4-54D4-C0DD-E589-31835F3AC9AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{FA473ED4-54D4-C0DD-E589-31835F3AC9AA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{99D81094-6B32-1C9D-5F84-E7FCEF67DFB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{99D81094-6B32-1C9D-5F84-E7FCEF67DFB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{99D81094-6B32-1C9D-5F84-E7FCEF67DFB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{99D81094-6B32-1C9D-5F84-E7FCEF67DFB5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D3091C1B-443C-23F1-B007-A1262E92A3BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D3091C1B-443C-23F1-B007-A1262E92A3BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D3091C1B-443C-23F1-B007-A1262E92A3BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D3091C1B-443C-23F1-B007-A1262E92A3BB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AA2EB1B6-B6BF-A9DF-7C1C-F30B2DCA1E2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AA2EB1B6-B6BF-A9DF-7C1C-F30B2DCA1E2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AA2EB1B6-B6BF-A9DF-7C1C-F30B2DCA1E2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AA2EB1B6-B6BF-A9DF-7C1C-F30B2DCA1E2A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{92CC92BF-8025-40F4-5121-DC2570ADAA04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{92CC92BF-8025-40F4-5121-DC2570ADAA04}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{92CC92BF-8025-40F4-5121-DC2570ADAA04}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{92CC92BF-8025-40F4-5121-DC2570ADAA04}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E9EE0B66-228F-B8EC-417C-445CAF351F76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E9EE0B66-228F-B8EC-417C-445CAF351F76}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E9EE0B66-228F-B8EC-417C-445CAF351F76}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E9EE0B66-228F-B8EC-417C-445CAF351F76}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EC6F5CC9-D45A-2CBC-5C84-63F6766E9359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{EC6F5CC9-D45A-2CBC-5C84-63F6766E9359}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EC6F5CC9-D45A-2CBC-5C84-63F6766E9359}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{EC6F5CC9-D45A-2CBC-5C84-63F6766E9359}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E2C7EA39-82A9-DFC8-F1B5-87298AAA02AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E2C7EA39-82A9-DFC8-F1B5-87298AAA02AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E2C7EA39-82A9-DFC8-F1B5-87298AAA02AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E2C7EA39-82A9-DFC8-F1B5-87298AAA02AE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2FA0AC97-1BF7-5B4B-4B3A-81AA3B3882F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2FA0AC97-1BF7-5B4B-4B3A-81AA3B3882F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2FA0AC97-1BF7-5B4B-4B3A-81AA3B3882F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2FA0AC97-1BF7-5B4B-4B3A-81AA3B3882F3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{817CE319-21A4-6FB1-3002-E786F8D0DAC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{817CE319-21A4-6FB1-3002-E786F8D0DAC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{817CE319-21A4-6FB1-3002-E786F8D0DAC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{817CE319-21A4-6FB1-3002-E786F8D0DAC5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D9F0918C-5DB6-B97D-FF09-18345B23DF44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D9F0918C-5DB6-B97D-FF09-18345B23DF44}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D9F0918C-5DB6-B97D-FF09-18345B23DF44}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D9F0918C-5DB6-B97D-FF09-18345B23DF44}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{087E7661-DB2D-07F9-586E-A49EE0399A07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{087E7661-DB2D-07F9-586E-A49EE0399A07}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{087E7661-DB2D-07F9-586E-A49EE0399A07}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{087E7661-DB2D-07F9-586E-A49EE0399A07}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C49DCA14-AA0E-CE33-9028-AFE76A31B00F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C49DCA14-AA0E-CE33-9028-AFE76A31B00F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C49DCA14-AA0E-CE33-9028-AFE76A31B00F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C49DCA14-AA0E-CE33-9028-AFE76A31B00F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E84CB613-ADF5-3F80-3CC2-0CB7424865B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E84CB613-ADF5-3F80-3CC2-0CB7424865B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E84CB613-ADF5-3F80-3CC2-0CB7424865B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E84CB613-ADF5-3F80-3CC2-0CB7424865B0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{959EA8DB-5C6D-58C9-A71B-FBA5D93F3B39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{959EA8DB-5C6D-58C9-A71B-FBA5D93F3B39}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{959EA8DB-5C6D-58C9-A71B-FBA5D93F3B39}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{959EA8DB-5C6D-58C9-A71B-FBA5D93F3B39}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9DD56F78-BA2E-E3F0-373F-C5F6509D1E9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9DD56F78-BA2E-E3F0-373F-C5F6509D1E9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9DD56F78-BA2E-E3F0-373F-C5F6509D1E9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9DD56F78-BA2E-E3F0-373F-C5F6509D1E9D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{7E5945D8-0B0B-4426-BB05-8F7EE37036E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7E5945D8-0B0B-4426-BB05-8F7EE37036E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7E5945D8-0B0B-4426-BB05-8F7EE37036E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7E5945D8-0B0B-4426-BB05-8F7EE37036E1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C14C9349-5A9B-079B-1DAA-F68D09745F4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C14C9349-5A9B-079B-1DAA-F68D09745F4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C14C9349-5A9B-079B-1DAA-F68D09745F4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C14C9349-5A9B-079B-1DAA-F68D09745F4B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{DE7BD236-A0C3-DB34-DF42-B4258E3DD72F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{DE7BD236-A0C3-DB34-DF42-B4258E3DD72F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{DE7BD236-A0C3-DB34-DF42-B4258E3DD72F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{DE7BD236-A0C3-DB34-DF42-B4258E3DD72F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0BCC52A7-8D67-64D7-FCD7-436D6B13B053}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{0BCC52A7-8D67-64D7-FCD7-436D6B13B053}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0BCC52A7-8D67-64D7-FCD7-436D6B13B053}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{0BCC52A7-8D67-64D7-FCD7-436D6B13B053}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{60D113CF-9C20-11BC-AB4B-A4CAB288EDD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{60D113CF-9C20-11BC-AB4B-A4CAB288EDD7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{60D113CF-9C20-11BC-AB4B-A4CAB288EDD7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{60D113CF-9C20-11BC-AB4B-A4CAB288EDD7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{403AF0D9-5199-E02A-4CBA-F877E0559DE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{403AF0D9-5199-E02A-4CBA-F877E0559DE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{403AF0D9-5199-E02A-4CBA-F877E0559DE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{403AF0D9-5199-E02A-4CBA-F877E0559DE4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{73B2CDFD-63F6-0023-B10C-E844D978279A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{73B2CDFD-63F6-0023-B10C-E844D978279A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{73B2CDFD-63F6-0023-B10C-E844D978279A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{73B2CDFD-63F6-0023-B10C-E844D978279A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{93E93A6B-2808-BCC8-979D-B6E0C6A08558}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{93E93A6B-2808-BCC8-979D-B6E0C6A08558}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{93E93A6B-2808-BCC8-979D-B6E0C6A08558}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{93E93A6B-2808-BCC8-979D-B6E0C6A08558}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D801B2E8-DACB-2B61-D54A-06F16D1A976B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D801B2E8-DACB-2B61-D54A-06F16D1A976B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D801B2E8-DACB-2B61-D54A-06F16D1A976B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D801B2E8-DACB-2B61-D54A-06F16D1A976B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4930C29C-A870-AB21-34E8-496898DCF474}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4930C29C-A870-AB21-34E8-496898DCF474}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4930C29C-A870-AB21-34E8-496898DCF474}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4930C29C-A870-AB21-34E8-496898DCF474}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4E4B7F2C-EADC-EAEB-C087-309A6FD2E99D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4E4B7F2C-EADC-EAEB-C087-309A6FD2E99D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4E4B7F2C-EADC-EAEB-C087-309A6FD2E99D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4E4B7F2C-EADC-EAEB-C087-309A6FD2E99D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B92604FE-8BEB-D7C8-E849-EE87E6BDB65E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B92604FE-8BEB-D7C8-E849-EE87E6BDB65E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B92604FE-8BEB-D7C8-E849-EE87E6BDB65E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B92604FE-8BEB-D7C8-E849-EE87E6BDB65E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{768F149B-659D-3769-3570-86C753EE8896}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{768F149B-659D-3769-3570-86C753EE8896}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{768F149B-659D-3769-3570-86C753EE8896}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{768F149B-659D-3769-3570-86C753EE8896}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{22F62964-1C2C-339D-7572-E91E34B3530F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{22F62964-1C2C-339D-7572-E91E34B3530F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{22F62964-1C2C-339D-7572-E91E34B3530F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{22F62964-1C2C-339D-7572-E91E34B3530F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2E097B16-F382-0F60-8806-79960016032A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2E097B16-F382-0F60-8806-79960016032A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2E097B16-F382-0F60-8806-79960016032A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2E097B16-F382-0F60-8806-79960016032A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{DBBB7A40-EC3E-2018-F2B7-C0041D1DD215}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{DBBB7A40-EC3E-2018-F2B7-C0041D1DD215}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{DBBB7A40-EC3E-2018-F2B7-C0041D1DD215}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{DBBB7A40-EC3E-2018-F2B7-C0041D1DD215}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2D47B675-1235-052F-4409-DC335A633FCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2D47B675-1235-052F-4409-DC335A633FCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2D47B675-1235-052F-4409-DC335A633FCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2D47B675-1235-052F-4409-DC335A633FCD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BA608D2C-406D-B666-5383-D806C46EDD05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BA608D2C-406D-B666-5383-D806C46EDD05}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BA608D2C-406D-B666-5383-D806C46EDD05}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BA608D2C-406D-B666-5383-D806C46EDD05}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{70F10069-D717-0C25-33A4-9AC90FF5E8A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{70F10069-D717-0C25-33A4-9AC90FF5E8A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{70F10069-D717-0C25-33A4-9AC90FF5E8A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{70F10069-D717-0C25-33A4-9AC90FF5E8A3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{6958C0D9-6C81-EF5F-D68C-B9E8AD8E7130}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{6958C0D9-6C81-EF5F-D68C-B9E8AD8E7130}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{6958C0D9-6C81-EF5F-D68C-B9E8AD8E7130}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{6958C0D9-6C81-EF5F-D68C-B9E8AD8E7130}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B1D8B704-8077-00FC-B44B-B5B1071DD934}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B1D8B704-8077-00FC-B44B-B5B1071DD934}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B1D8B704-8077-00FC-B44B-B5B1071DD934}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B1D8B704-8077-00FC-B44B-B5B1071DD934}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B89FEABF-4CDA-9A62-E9E1-896DC9AD7AA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B89FEABF-4CDA-9A62-E9E1-896DC9AD7AA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B89FEABF-4CDA-9A62-E9E1-896DC9AD7AA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B89FEABF-4CDA-9A62-E9E1-896DC9AD7AA3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A8F64512-A7F7-6670-D7C7-4AA41C4B2E0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A8F64512-A7F7-6670-D7C7-4AA41C4B2E0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A8F64512-A7F7-6670-D7C7-4AA41C4B2E0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A8F64512-A7F7-6670-D7C7-4AA41C4B2E0F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AAF0C46B-F69F-56D6-319F-B0AF8B3A7C1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AAF0C46B-F69F-56D6-319F-B0AF8B3A7C1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AAF0C46B-F69F-56D6-319F-B0AF8B3A7C1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AAF0C46B-F69F-56D6-319F-B0AF8B3A7C1D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1E3AA937-6394-0C20-C59B-127D2B01DE4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1E3AA937-6394-0C20-C59B-127D2B01DE4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1E3AA937-6394-0C20-C59B-127D2B01DE4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1E3AA937-6394-0C20-C59B-127D2B01DE4F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{410A79A5-24B5-473E-BE7B-5C787B7431A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{410A79A5-24B5-473E-BE7B-5C787B7431A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{410A79A5-24B5-473E-BE7B-5C787B7431A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{410A79A5-24B5-473E-BE7B-5C787B7431A2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{95718E42-884D-4396-AF1E-EDFFDD8C86D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{95718E42-884D-4396-AF1E-EDFFDD8C86D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{95718E42-884D-4396-AF1E-EDFFDD8C86D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{95718E42-884D-4396-AF1E-EDFFDD8C86D4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{97BC949A-9142-B129-10FE-0D9381A49C05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{97BC949A-9142-B129-10FE-0D9381A49C05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{97BC949A-9142-B129-10FE-0D9381A49C05}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{97BC949A-9142-B129-10FE-0D9381A49C05}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{97BC949A-9142-B129-10FE-0D9381A49C05}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{97BC949A-9142-B129-10FE-0D9381A49C05}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
@ -99,10 +475,6 @@ Global
|
|||||||
{3641CA05-99C5-2245-C663-6CE00730E87C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{3641CA05-99C5-2245-C663-6CE00730E87C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{3641CA05-99C5-2245-C663-6CE00730E87C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{3641CA05-99C5-2245-C663-6CE00730E87C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{3641CA05-99C5-2245-C663-6CE00730E87C}.Release|Any CPU.Build.0 = Release|Any CPU
|
{3641CA05-99C5-2245-C663-6CE00730E87C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{345B5CDA-DC77-4956-BF96-80707EC1B5B2}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@ -111,11 +483,6 @@ Global
|
|||||||
{D02078B5-294E-DA0D-DD69-46FDEFBD76F9} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
|
{D02078B5-294E-DA0D-DD69-46FDEFBD76F9} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
|
||||||
{14E3D6EA-528D-4983-9EC8-77FEE4BC2FED} = {C5AC3FEE-4315-4D82-A142-5068D5A6DD73}
|
{14E3D6EA-528D-4983-9EC8-77FEE4BC2FED} = {C5AC3FEE-4315-4D82-A142-5068D5A6DD73}
|
||||||
{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE} = {C5AC3FEE-4315-4D82-A142-5068D5A6DD73}
|
{AEBC7053-743F-4F80-BD10-8ED6A8A7B3EE} = {C5AC3FEE-4315-4D82-A142-5068D5A6DD73}
|
||||||
{97BC949A-9142-B129-10FE-0D9381A49C05} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
|
||||||
{D422C785-D6D0-8F6B-A6C3-2B0E5497B923} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
|
||||||
{9A034977-0FBC-A3C8-8432-9FDD073F215A} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
|
||||||
{1C89424B-DA16-8840-4AB0-C446CFBD634C} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
|
||||||
{3641CA05-99C5-2245-C663-6CE00730E87C} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
|
||||||
{A53664DF-71AE-4C8E-A2DC-A60605FDF57C} = {327E64CE-CB3C-480A-AB52-816B8A5329B6}
|
{A53664DF-71AE-4C8E-A2DC-A60605FDF57C} = {327E64CE-CB3C-480A-AB52-816B8A5329B6}
|
||||||
{75A22B51-A986-48BD-A633-383DA18DE644} = {327E64CE-CB3C-480A-AB52-816B8A5329B6}
|
{75A22B51-A986-48BD-A633-383DA18DE644} = {327E64CE-CB3C-480A-AB52-816B8A5329B6}
|
||||||
{244E1153-5BE5-4DC2-BA9D-2988BA25F208} = {327E64CE-CB3C-480A-AB52-816B8A5329B6}
|
{244E1153-5BE5-4DC2-BA9D-2988BA25F208} = {327E64CE-CB3C-480A-AB52-816B8A5329B6}
|
||||||
@ -132,6 +499,73 @@ Global
|
|||||||
{E67FA5C3-132C-4F47-B6A6-8FA4376C70BB} = {CF59695F-7948-4743-A467-42E4B4C9EECA}
|
{E67FA5C3-132C-4F47-B6A6-8FA4376C70BB} = {CF59695F-7948-4743-A467-42E4B4C9EECA}
|
||||||
{1C06151A-45F0-4D48-8303-3D4CBE9517F7} = {CF59695F-7948-4743-A467-42E4B4C9EECA}
|
{1C06151A-45F0-4D48-8303-3D4CBE9517F7} = {CF59695F-7948-4743-A467-42E4B4C9EECA}
|
||||||
{345B5CDA-DC77-4956-BF96-80707EC1B5B2} = {7EFFD2C6-2041-4967-A715-0F817D70C433}
|
{345B5CDA-DC77-4956-BF96-80707EC1B5B2} = {7EFFD2C6-2041-4967-A715-0F817D70C433}
|
||||||
|
{9D9D979A-AFC7-F9D0-2D23-8809E83F9EF9} = {EBCB740D-07E7-4CED-A422-90EB824B9021}
|
||||||
|
{9F68B0E2-0B1D-E0E8-1BE7-079F693A4643} = {EBCB740D-07E7-4CED-A422-90EB824B9021}
|
||||||
|
{D1A86C77-533D-5B68-04F1-7F7BFBF56AC7} = {EBCB740D-07E7-4CED-A422-90EB824B9021}
|
||||||
|
{75F92EFD-9FCD-3BF4-ED33-066E84A1A906} = {EBCB740D-07E7-4CED-A422-90EB824B9021}
|
||||||
|
{A306661D-B99C-4623-61D9-9968D0260F53} = {EBCB740D-07E7-4CED-A422-90EB824B9021}
|
||||||
|
{B449B5F0-DAB0-27DD-BC8A-75A1D63FB924} = {EBCB740D-07E7-4CED-A422-90EB824B9021}
|
||||||
|
{846FE47C-4E7F-D4CE-46DE-460FBBDAD6EB} = {EBCB740D-07E7-4CED-A422-90EB824B9021}
|
||||||
|
{2B1AB90F-3EE1-DA95-26E9-41657FA2BE1C} = {68C52E9A-2894-4F56-B121-EBDEB8AEE5FE}
|
||||||
|
{3BEDE290-7D99-7F2C-C76D-108C016CE6D1} = {68C52E9A-2894-4F56-B121-EBDEB8AEE5FE}
|
||||||
|
{D87DBC28-58B7-9D6A-D2E5-BE4C748CF920} = {68C52E9A-2894-4F56-B121-EBDEB8AEE5FE}
|
||||||
|
{B2C32755-D986-3F1C-913A-3A6F1E56EF97} = {68C52E9A-2894-4F56-B121-EBDEB8AEE5FE}
|
||||||
|
{C5FC9F08-9A41-8581-A672-B6F8753C9991} = {68C52E9A-2894-4F56-B121-EBDEB8AEE5FE}
|
||||||
|
{B2020B57-1CAE-8C23-A413-92F54BF40313} = {9EDB9917-F429-447B-915D-7D51D38DB33E}
|
||||||
|
{80D04466-EACE-9998-DACB-A68BE9B93847} = {9EDB9917-F429-447B-915D-7D51D38DB33E}
|
||||||
|
{9F684B76-D619-765D-4F43-EDEE32F5DEF7} = {9EDB9917-F429-447B-915D-7D51D38DB33E}
|
||||||
|
{BAF030F5-3E23-4A8E-7ED6-504EB5BBD4FE} = {9EDB9917-F429-447B-915D-7D51D38DB33E}
|
||||||
|
{B9B6B43D-6D13-C11B-1AE5-ADCBFEE68E67} = {9EDB9917-F429-447B-915D-7D51D38DB33E}
|
||||||
|
{BEEB83BF-B5B0-EB53-EF78-415D4565187F} = {9EDB9917-F429-447B-915D-7D51D38DB33E}
|
||||||
|
{9E9AAE6F-1C3C-B542-64E7-E11CE55E187A} = {9EDB9917-F429-447B-915D-7D51D38DB33E}
|
||||||
|
{FA473ED4-54D4-C0DD-E589-31835F3AC9AA} = {73DCA9DB-1A3D-449F-8957-924B2CF8B7B1}
|
||||||
|
{99D81094-6B32-1C9D-5F84-E7FCEF67DFB5} = {73DCA9DB-1A3D-449F-8957-924B2CF8B7B1}
|
||||||
|
{D3091C1B-443C-23F1-B007-A1262E92A3BB} = {73DCA9DB-1A3D-449F-8957-924B2CF8B7B1}
|
||||||
|
{AA2EB1B6-B6BF-A9DF-7C1C-F30B2DCA1E2A} = {73DCA9DB-1A3D-449F-8957-924B2CF8B7B1}
|
||||||
|
{92CC92BF-8025-40F4-5121-DC2570ADAA04} = {73DCA9DB-1A3D-449F-8957-924B2CF8B7B1}
|
||||||
|
{E9EE0B66-228F-B8EC-417C-445CAF351F76} = {B93EB51F-E75E-4735-8BC8-382015B4DBD5}
|
||||||
|
{EC6F5CC9-D45A-2CBC-5C84-63F6766E9359} = {B93EB51F-E75E-4735-8BC8-382015B4DBD5}
|
||||||
|
{E2C7EA39-82A9-DFC8-F1B5-87298AAA02AE} = {B93EB51F-E75E-4735-8BC8-382015B4DBD5}
|
||||||
|
{2FA0AC97-1BF7-5B4B-4B3A-81AA3B3882F3} = {B93EB51F-E75E-4735-8BC8-382015B4DBD5}
|
||||||
|
{817CE319-21A4-6FB1-3002-E786F8D0DAC5} = {B93EB51F-E75E-4735-8BC8-382015B4DBD5}
|
||||||
|
{D9F0918C-5DB6-B97D-FF09-18345B23DF44} = {B93EB51F-E75E-4735-8BC8-382015B4DBD5}
|
||||||
|
{087E7661-DB2D-07F9-586E-A49EE0399A07} = {B93EB51F-E75E-4735-8BC8-382015B4DBD5}
|
||||||
|
{C49DCA14-AA0E-CE33-9028-AFE76A31B00F} = {026D8210-9B71-4296-9DD8-D4E178802E4D}
|
||||||
|
{E84CB613-ADF5-3F80-3CC2-0CB7424865B0} = {026D8210-9B71-4296-9DD8-D4E178802E4D}
|
||||||
|
{959EA8DB-5C6D-58C9-A71B-FBA5D93F3B39} = {026D8210-9B71-4296-9DD8-D4E178802E4D}
|
||||||
|
{9DD56F78-BA2E-E3F0-373F-C5F6509D1E9D} = {026D8210-9B71-4296-9DD8-D4E178802E4D}
|
||||||
|
{7E5945D8-0B0B-4426-BB05-8F7EE37036E1} = {026D8210-9B71-4296-9DD8-D4E178802E4D}
|
||||||
|
{C14C9349-5A9B-079B-1DAA-F68D09745F4B} = {7FEC24C5-6DA6-4844-B409-0361AB1C192C}
|
||||||
|
{DE7BD236-A0C3-DB34-DF42-B4258E3DD72F} = {7FEC24C5-6DA6-4844-B409-0361AB1C192C}
|
||||||
|
{0BCC52A7-8D67-64D7-FCD7-436D6B13B053} = {7FEC24C5-6DA6-4844-B409-0361AB1C192C}
|
||||||
|
{60D113CF-9C20-11BC-AB4B-A4CAB288EDD7} = {7FEC24C5-6DA6-4844-B409-0361AB1C192C}
|
||||||
|
{403AF0D9-5199-E02A-4CBA-F877E0559DE4} = {7FEC24C5-6DA6-4844-B409-0361AB1C192C}
|
||||||
|
{73B2CDFD-63F6-0023-B10C-E844D978279A} = {7FEC24C5-6DA6-4844-B409-0361AB1C192C}
|
||||||
|
{93E93A6B-2808-BCC8-979D-B6E0C6A08558} = {7FEC24C5-6DA6-4844-B409-0361AB1C192C}
|
||||||
|
{D801B2E8-DACB-2B61-D54A-06F16D1A976B} = {6C762F40-30BB-4CDA-951B-01D45F7C2B53}
|
||||||
|
{4930C29C-A870-AB21-34E8-496898DCF474} = {6C762F40-30BB-4CDA-951B-01D45F7C2B53}
|
||||||
|
{4E4B7F2C-EADC-EAEB-C087-309A6FD2E99D} = {6C762F40-30BB-4CDA-951B-01D45F7C2B53}
|
||||||
|
{B92604FE-8BEB-D7C8-E849-EE87E6BDB65E} = {6C762F40-30BB-4CDA-951B-01D45F7C2B53}
|
||||||
|
{768F149B-659D-3769-3570-86C753EE8896} = {6C762F40-30BB-4CDA-951B-01D45F7C2B53}
|
||||||
|
{22F62964-1C2C-339D-7572-E91E34B3530F} = {E67FA5C3-132C-4F47-B6A6-8FA4376C70BB}
|
||||||
|
{2E097B16-F382-0F60-8806-79960016032A} = {E67FA5C3-132C-4F47-B6A6-8FA4376C70BB}
|
||||||
|
{DBBB7A40-EC3E-2018-F2B7-C0041D1DD215} = {E67FA5C3-132C-4F47-B6A6-8FA4376C70BB}
|
||||||
|
{2D47B675-1235-052F-4409-DC335A633FCD} = {E67FA5C3-132C-4F47-B6A6-8FA4376C70BB}
|
||||||
|
{BA608D2C-406D-B666-5383-D806C46EDD05} = {E67FA5C3-132C-4F47-B6A6-8FA4376C70BB}
|
||||||
|
{70F10069-D717-0C25-33A4-9AC90FF5E8A3} = {E67FA5C3-132C-4F47-B6A6-8FA4376C70BB}
|
||||||
|
{6958C0D9-6C81-EF5F-D68C-B9E8AD8E7130} = {E67FA5C3-132C-4F47-B6A6-8FA4376C70BB}
|
||||||
|
{B1D8B704-8077-00FC-B44B-B5B1071DD934} = {1C06151A-45F0-4D48-8303-3D4CBE9517F7}
|
||||||
|
{B89FEABF-4CDA-9A62-E9E1-896DC9AD7AA3} = {1C06151A-45F0-4D48-8303-3D4CBE9517F7}
|
||||||
|
{A8F64512-A7F7-6670-D7C7-4AA41C4B2E0F} = {1C06151A-45F0-4D48-8303-3D4CBE9517F7}
|
||||||
|
{AAF0C46B-F69F-56D6-319F-B0AF8B3A7C1D} = {1C06151A-45F0-4D48-8303-3D4CBE9517F7}
|
||||||
|
{1E3AA937-6394-0C20-C59B-127D2B01DE4F} = {1C06151A-45F0-4D48-8303-3D4CBE9517F7}
|
||||||
|
{410A79A5-24B5-473E-BE7B-5C787B7431A2} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
|
||||||
|
{95718E42-884D-4396-AF1E-EDFFDD8C86D4} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
|
||||||
|
{97BC949A-9142-B129-10FE-0D9381A49C05} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
||||||
|
{D422C785-D6D0-8F6B-A6C3-2B0E5497B923} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
||||||
|
{9A034977-0FBC-A3C8-8432-9FDD073F215A} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
||||||
|
{1C89424B-DA16-8840-4AB0-C446CFBD634C} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
||||||
|
{3641CA05-99C5-2245-C663-6CE00730E87C} = {4CBFE8AF-968B-453D-B763-3D0437C0883D}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F}
|
SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F}
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
@ -47,7 +45,6 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="8.3.4" />
|
||||||
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -58,7 +55,6 @@
|
|||||||
<PackageReference Include="Volo.Abp.Account.Web.OpenIddict" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Account.Web.OpenIddict" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Account.Application" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Account.Application" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="8.3.4" />
|
||||||
<ProjectReference Include="..\KonSoft.EntityFrameworkCore\KonSoft.EntityFrameworkCore.csproj" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -0,0 +1,33 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace KonSoft.BackgroundJobs.Controllers
|
||||||
|
{
|
||||||
|
[ApiController]
|
||||||
|
[Route("[controller]")]
|
||||||
|
public class WeatherForecastController : ControllerBase
|
||||||
|
{
|
||||||
|
private static readonly string[] Summaries = new[]
|
||||||
|
{
|
||||||
|
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
|
||||||
|
};
|
||||||
|
|
||||||
|
private readonly ILogger<WeatherForecastController> _logger;
|
||||||
|
|
||||||
|
public WeatherForecastController(ILogger<WeatherForecastController> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet(Name = "GetWeatherForecast")]
|
||||||
|
public IEnumerable<WeatherForecast> Get()
|
||||||
|
{
|
||||||
|
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
||||||
|
{
|
||||||
|
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
|
||||||
|
TemperatureC = Random.Shared.Next(-20, 55),
|
||||||
|
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
|
||||||
|
})
|
||||||
|
.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
@KonSoft.BackgroundJobs_HostAddress = http://localhost:5243
|
||||||
|
|
||||||
|
GET {{KonSoft.BackgroundJobs_HostAddress}}/weatherforecast/
|
||||||
|
Accept: application/json
|
||||||
|
|
||||||
|
###
|
||||||
25
applications/KonSoft.BackgroundJobs/Program.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
// Add services to the container.
|
||||||
|
|
||||||
|
builder.Services.AddControllers();
|
||||||
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
||||||
|
builder.Services.AddEndpointsApiExplorer();
|
||||||
|
builder.Services.AddSwaggerGen();
|
||||||
|
|
||||||
|
var app = builder.Build();
|
||||||
|
|
||||||
|
// Configure the HTTP request pipeline.
|
||||||
|
if (app.Environment.IsDevelopment())
|
||||||
|
{
|
||||||
|
app.UseSwagger();
|
||||||
|
app.UseSwaggerUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
app.UseHttpsRedirection();
|
||||||
|
|
||||||
|
app.UseAuthorization();
|
||||||
|
|
||||||
|
app.MapControllers();
|
||||||
|
|
||||||
|
app.Run();
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:4773",
|
||||||
|
"sslPort": 44380
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"http": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"applicationUrl": "http://localhost:5243",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"https": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"applicationUrl": "https://localhost:7094;http://localhost:5243",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
13
applications/KonSoft.BackgroundJobs/WeatherForecast.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
namespace KonSoft.BackgroundJobs
|
||||||
|
{
|
||||||
|
public class WeatherForecast
|
||||||
|
{
|
||||||
|
public DateOnly Date { get; set; }
|
||||||
|
|
||||||
|
public int TemperatureC { get; set; }
|
||||||
|
|
||||||
|
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
||||||
|
|
||||||
|
public string? Summary { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
applications/KonSoft.BackgroundJobs/appsettings.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace KonSoft.BackgroundWorker.Controllers
|
||||||
|
{
|
||||||
|
[ApiController]
|
||||||
|
[Route("[controller]")]
|
||||||
|
public class WeatherForecastController : ControllerBase
|
||||||
|
{
|
||||||
|
private static readonly string[] Summaries = new[]
|
||||||
|
{
|
||||||
|
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
|
||||||
|
};
|
||||||
|
|
||||||
|
private readonly ILogger<WeatherForecastController> _logger;
|
||||||
|
|
||||||
|
public WeatherForecastController(ILogger<WeatherForecastController> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet(Name = "GetWeatherForecast")]
|
||||||
|
public IEnumerable<WeatherForecast> Get()
|
||||||
|
{
|
||||||
|
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
||||||
|
{
|
||||||
|
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
|
||||||
|
TemperatureC = Random.Shared.Next(-20, 55),
|
||||||
|
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
|
||||||
|
})
|
||||||
|
.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
@KonSoft.BackgroundWorker_HostAddress = http://localhost:5074
|
||||||
|
|
||||||
|
GET {{KonSoft.BackgroundWorker_HostAddress}}/weatherforecast/
|
||||||
|
Accept: application/json
|
||||||
|
|
||||||
|
###
|
||||||
25
applications/KonSoft.BackgroundWorker/Program.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
// Add services to the container.
|
||||||
|
|
||||||
|
builder.Services.AddControllers();
|
||||||
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
||||||
|
builder.Services.AddEndpointsApiExplorer();
|
||||||
|
builder.Services.AddSwaggerGen();
|
||||||
|
|
||||||
|
var app = builder.Build();
|
||||||
|
|
||||||
|
// Configure the HTTP request pipeline.
|
||||||
|
if (app.Environment.IsDevelopment())
|
||||||
|
{
|
||||||
|
app.UseSwagger();
|
||||||
|
app.UseSwaggerUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
app.UseHttpsRedirection();
|
||||||
|
|
||||||
|
app.UseAuthorization();
|
||||||
|
|
||||||
|
app.MapControllers();
|
||||||
|
|
||||||
|
app.Run();
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:22937",
|
||||||
|
"sslPort": 44300
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"http": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"applicationUrl": "http://localhost:5074",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"https": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"applicationUrl": "https://localhost:7183;http://localhost:5074",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
13
applications/KonSoft.BackgroundWorker/WeatherForecast.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
namespace KonSoft.BackgroundWorker
|
||||||
|
{
|
||||||
|
public class WeatherForecast
|
||||||
|
{
|
||||||
|
public DateOnly Date { get; set; }
|
||||||
|
|
||||||
|
public int TemperatureC { get; set; }
|
||||||
|
|
||||||
|
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
||||||
|
|
||||||
|
public string? Summary { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
applications/KonSoft.BackgroundWorker/appsettings.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
||||||
@ -1,19 +0,0 @@
|
|||||||
using Microsoft.Extensions.Localization;
|
|
||||||
using KonSoft.Admin.Localization;
|
|
||||||
using Volo.Abp.DependencyInjection;
|
|
||||||
using Volo.Abp.Ui.Branding;
|
|
||||||
|
|
||||||
namespace KonSoft.Admin;
|
|
||||||
|
|
||||||
[Dependency(ReplaceServices = true)]
|
|
||||||
public class AdminBrandingProvider : DefaultBrandingProvider
|
|
||||||
{
|
|
||||||
private IStringLocalizer<AdminResource> _localizer;
|
|
||||||
|
|
||||||
public AdminBrandingProvider(IStringLocalizer<AdminResource> localizer)
|
|
||||||
{
|
|
||||||
_localizer = localizer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string AppName => _localizer["AppName"];
|
|
||||||
}
|
|
||||||
@ -2,32 +2,34 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Medallion.Threading;
|
||||||
|
using Medallion.Threading.Redis;
|
||||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Cors;
|
using Microsoft.AspNetCore.Cors;
|
||||||
using Microsoft.AspNetCore.Extensions.DependencyInjection;
|
using Microsoft.AspNetCore.DataProtection;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using KonSoft.Admin.EntityFrameworkCore;
|
using KonSoft.Admin.EntityFrameworkCore;
|
||||||
using KonSoft.Admin.MultiTenancy;
|
using KonSoft.Admin.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite;
|
using StackExchange.Redis;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling;
|
|
||||||
using Microsoft.OpenApi.Models;
|
using Microsoft.OpenApi.Models;
|
||||||
using OpenIddict.Validation.AspNetCore;
|
|
||||||
using Volo.Abp;
|
using Volo.Abp;
|
||||||
using Volo.Abp.Account;
|
using Volo.Abp.AspNetCore.Authentication.JwtBearer;
|
||||||
using Volo.Abp.Account.Web;
|
|
||||||
using Volo.Abp.AspNetCore.MultiTenancy;
|
|
||||||
using Volo.Abp.AspNetCore.Mvc;
|
using Volo.Abp.AspNetCore.Mvc;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
|
using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
|
|
||||||
using Volo.Abp.AspNetCore.Serilog;
|
using Volo.Abp.AspNetCore.Serilog;
|
||||||
using Volo.Abp.Autofac;
|
using Volo.Abp.Autofac;
|
||||||
|
using Volo.Abp.Caching;
|
||||||
|
using Volo.Abp.Caching.StackExchangeRedis;
|
||||||
|
using Volo.Abp.DistributedLocking;
|
||||||
|
using Volo.Abp.Identity;
|
||||||
using Volo.Abp.Localization;
|
using Volo.Abp.Localization;
|
||||||
using Volo.Abp.Modularity;
|
using Volo.Abp.Modularity;
|
||||||
using Volo.Abp.Security.Claims;
|
using Volo.Abp.Security.Claims;
|
||||||
using Volo.Abp.Swashbuckle;
|
using Volo.Abp.Swashbuckle;
|
||||||
using Volo.Abp.UI.Navigation.Urls;
|
|
||||||
using Volo.Abp.VirtualFileSystem;
|
using Volo.Abp.VirtualFileSystem;
|
||||||
|
|
||||||
namespace KonSoft.Admin;
|
namespace KonSoft.Admin;
|
||||||
@ -35,76 +37,35 @@ namespace KonSoft.Admin;
|
|||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(AdminHttpApiModule),
|
typeof(AdminHttpApiModule),
|
||||||
typeof(AbpAutofacModule),
|
typeof(AbpAutofacModule),
|
||||||
typeof(AbpAspNetCoreMultiTenancyModule),
|
typeof(AbpCachingStackExchangeRedisModule),
|
||||||
|
typeof(AbpDistributedLockingModule),
|
||||||
|
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
|
||||||
|
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
|
||||||
typeof(AdminApplicationModule),
|
typeof(AdminApplicationModule),
|
||||||
typeof(AdminEntityFrameworkCoreModule),
|
typeof(AdminEntityFrameworkCoreModule),
|
||||||
typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule),
|
|
||||||
typeof(AbpAccountWebOpenIddictModule),
|
|
||||||
typeof(AbpAspNetCoreSerilogModule),
|
typeof(AbpAspNetCoreSerilogModule),
|
||||||
typeof(AbpSwashbuckleModule)
|
typeof(AbpSwashbuckleModule)
|
||||||
)]
|
)]
|
||||||
public class AdminHttpApiHostModule : AbpModule
|
public class AdminHttpApiHostModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void PreConfigureServices(ServiceConfigurationContext context)
|
|
||||||
{
|
|
||||||
PreConfigure<OpenIddictBuilder>(builder =>
|
|
||||||
{
|
|
||||||
builder.AddValidation(options =>
|
|
||||||
{
|
|
||||||
options.AddAudiences("Admin");
|
|
||||||
options.UseLocalServer();
|
|
||||||
options.UseAspNetCore();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
var configuration = context.Services.GetConfiguration();
|
var configuration = context.Services.GetConfiguration();
|
||||||
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
||||||
|
|
||||||
ConfigureAuthentication(context);
|
|
||||||
ConfigureBundles();
|
|
||||||
ConfigureUrls(configuration);
|
|
||||||
ConfigureConventionalControllers();
|
ConfigureConventionalControllers();
|
||||||
|
ConfigureAuthentication(context, configuration);
|
||||||
|
ConfigureCache(configuration);
|
||||||
ConfigureVirtualFileSystem(context);
|
ConfigureVirtualFileSystem(context);
|
||||||
|
ConfigureDataProtection(context, configuration, hostingEnvironment);
|
||||||
|
ConfigureDistributedLocking(context, configuration);
|
||||||
ConfigureCors(context, configuration);
|
ConfigureCors(context, configuration);
|
||||||
ConfigureSwaggerServices(context, configuration);
|
ConfigureSwaggerServices(context, configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureAuthentication(ServiceConfigurationContext context)
|
private void ConfigureCache(IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme);
|
Configure<AbpDistributedCacheOptions>(options => { options.KeyPrefix = "Admin:"; });
|
||||||
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
|
||||||
{
|
|
||||||
options.IsDynamicClaimsEnabled = true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureBundles()
|
|
||||||
{
|
|
||||||
Configure<AbpBundlingOptions>(options =>
|
|
||||||
{
|
|
||||||
options.StyleBundles.Configure(
|
|
||||||
LeptonXLiteThemeBundles.Styles.Global,
|
|
||||||
bundle =>
|
|
||||||
{
|
|
||||||
bundle.AddFiles("/global-styles.css");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureUrls(IConfiguration configuration)
|
|
||||||
{
|
|
||||||
Configure<AppUrlOptions>(options =>
|
|
||||||
{
|
|
||||||
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
|
|
||||||
options.RedirectAllowedUrls.AddRange(configuration["App:RedirectAllowedUrls"]?.Split(',') ?? Array.Empty<string>());
|
|
||||||
|
|
||||||
options.Applications["Angular"].RootUrl = configuration["App:ClientUrl"];
|
|
||||||
options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password";
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
||||||
@ -139,6 +100,22 @@ public class AdminHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||||
|
.AddAbpJwtBearer(options =>
|
||||||
|
{
|
||||||
|
options.Authority = configuration["AuthServer:Authority"];
|
||||||
|
options.RequireHttpsMetadata = configuration.GetValue<bool>("AuthServer:RequireHttpsMetadata");
|
||||||
|
options.Audience = "Admin";
|
||||||
|
});
|
||||||
|
|
||||||
|
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
||||||
|
{
|
||||||
|
options.IsDynamicClaimsEnabled = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddAbpSwaggerGenWithOAuth(
|
context.Services.AddAbpSwaggerGenWithOAuth(
|
||||||
@ -155,6 +132,30 @@ public class AdminHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureDataProtection(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration,
|
||||||
|
IWebHostEnvironment hostingEnvironment)
|
||||||
|
{
|
||||||
|
var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("Admin");
|
||||||
|
if (!hostingEnvironment.IsDevelopment())
|
||||||
|
{
|
||||||
|
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "Admin-Protection-Keys");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConfigureDistributedLocking(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddSingleton<IDistributedLockProvider>(sp =>
|
||||||
|
{
|
||||||
|
var connection = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
return new RedisDistributedSynchronizationProvider(connection.GetDatabase());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddCors(options =>
|
context.Services.AddCors(options =>
|
||||||
@ -186,35 +187,29 @@ public class AdminHttpApiHostModule : AbpModule
|
|||||||
}
|
}
|
||||||
|
|
||||||
app.UseAbpRequestLocalization();
|
app.UseAbpRequestLocalization();
|
||||||
|
|
||||||
if (!env.IsDevelopment())
|
|
||||||
{
|
|
||||||
app.UseErrorPage();
|
|
||||||
}
|
|
||||||
|
|
||||||
app.UseCorrelationId();
|
app.UseCorrelationId();
|
||||||
app.UseStaticFiles();
|
app.UseStaticFiles();
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
app.UseCors();
|
app.UseCors();
|
||||||
app.UseAuthentication();
|
app.UseAuthentication();
|
||||||
app.UseAbpOpenIddictValidation();
|
|
||||||
|
|
||||||
if (MultiTenancyConsts.IsEnabled)
|
if (MultiTenancyConsts.IsEnabled)
|
||||||
{
|
{
|
||||||
app.UseMultiTenancy();
|
app.UseMultiTenancy();
|
||||||
}
|
}
|
||||||
|
|
||||||
app.UseUnitOfWork();
|
app.UseUnitOfWork();
|
||||||
app.UseDynamicClaims();
|
app.UseDynamicClaims();
|
||||||
app.UseAuthorization();
|
app.UseAuthorization();
|
||||||
|
|
||||||
app.UseSwagger();
|
app.UseSwagger();
|
||||||
app.UseAbpSwaggerUI(c =>
|
app.UseAbpSwaggerUI(options =>
|
||||||
{
|
{
|
||||||
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Admin API");
|
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Admin API");
|
||||||
|
|
||||||
var configuration = context.ServiceProvider.GetRequiredService<IConfiguration>();
|
var configuration = context.GetConfiguration();
|
||||||
c.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
||||||
c.OAuthScopes("Admin");
|
options.OAuthScopes("Admin");
|
||||||
});
|
});
|
||||||
|
|
||||||
app.UseAuditing();
|
app.UseAuditing();
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
@ -13,21 +11,16 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" Version="8.3.4" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.4" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.4" />
|
||||||
|
<PackageReference Include="DistributedLock.Redis" Version="1.0.2" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.DistributedLocking" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Account.Web.OpenIddict" Version="8.3.4" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="3.2.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Application\KonSoft.Admin.Application.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.EntityFrameworkCore\KonSoft.Admin.EntityFrameworkCore.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.HttpApi\KonSoft.Admin.HttpApi.csproj" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
"windowsAuthentication": false,
|
"windowsAuthentication": false,
|
||||||
"anonymousAuthentication": true,
|
"anonymousAuthentication": true,
|
||||||
"iisExpress": {
|
"iisExpress": {
|
||||||
"applicationUrl": "https://localhost:44350",
|
"applicationUrl": "https://localhost:44354",
|
||||||
"sslPort": 44350
|
"sslPort": 44354
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profiles": {
|
"profiles": {
|
||||||
@ -18,7 +18,7 @@
|
|||||||
"KonSoft.Admin.HttpApi.Host": {
|
"KonSoft.Admin.HttpApi.Host": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"applicationUrl": "https://localhost:44350",
|
"applicationUrl": "https://localhost:44354",
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
aliases: {
|
|
||||||
|
|
||||||
},
|
|
||||||
clean: [
|
|
||||||
|
|
||||||
],
|
|
||||||
mappings: {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@ -1,18 +1,19 @@
|
|||||||
{
|
{
|
||||||
"App": {
|
"App": {
|
||||||
"SelfUrl": "https://localhost:44350",
|
"CorsOrigins": "https://*.Admin.com,https://localhost:44357"
|
||||||
"CorsOrigins": "https://*.Admin.com",
|
|
||||||
"RedirectAllowedUrls": ""
|
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"Default": "Host=localhost;Port=5432;Database=Admin;User ID=root;Password=myPassword;"
|
"Default": "Host=localhost;Port=5432;Database=Admin;User ID=root;Password=myPassword;"
|
||||||
},
|
},
|
||||||
|
"Redis": {
|
||||||
|
"Configuration": "127.0.0.1"
|
||||||
|
},
|
||||||
"AuthServer": {
|
"AuthServer": {
|
||||||
"Authority": "https://localhost:44350",
|
"Authority": "https://localhost:44397",
|
||||||
"RequireHttpsMetadata": false,
|
"RequireHttpsMetadata": true,
|
||||||
"SwaggerClientId": "Admin_Swagger"
|
"SwaggerClientId": "Admin_Swagger"
|
||||||
},
|
},
|
||||||
"StringEncryption": {
|
"StringEncryption": {
|
||||||
"DefaultPassPhrase": "YXM86JJ7EFsh21K9"
|
"DefaultPassPhrase": "g3NdNOyDR9oYj0gK"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "1.0.0",
|
|
||||||
"name": "my-app",
|
|
||||||
"private": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.4"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
/* Your Global Styles */
|
|
||||||
|
|
||||||
:root .lpx-brand-logo {
|
|
||||||
--lpx-logo: url('/images/logo/leptonx/logo-light.png');
|
|
||||||
--lpx-logo-icon: url('/images/logo/leptonx/logo-light-thumbnail.png');
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@ -1,322 +0,0 @@
|
|||||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
||||||
# yarn lockfile v1
|
|
||||||
|
|
||||||
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.leptonxlite@~3.3.4":
|
|
||||||
version "3.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-3.3.4.tgz#fb6879075aec2f06e0302e941dcefbe519b18e1d"
|
|
||||||
integrity sha512-5rrwwZ9n2/yePo+GnHuUsP0TelCwRwCQjYyQFdF/Nd4B3UNQVO/AXQc0Ep3+vHhUxSL386j6ObZYu14VdjPg2g==
|
|
||||||
dependencies:
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.4"
|
|
||||||
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.4.tgz#169ae0893302ced9256f94174d9bb870e49f446c"
|
|
||||||
integrity sha512-bZy8iAIN0QfNJXCRg+RR1NxqTzNDSXRPBx+ksFtDxY6FzMJvwwSOmHF0wqsMLj1xpwXjijWaVWQ2RM/7scDWmw==
|
|
||||||
dependencies:
|
|
||||||
"@abp/aspnetcore.mvc.ui" "~8.3.4"
|
|
||||||
"@abp/bootstrap" "~8.3.4"
|
|
||||||
"@abp/bootstrap-datepicker" "~8.3.4"
|
|
||||||
"@abp/bootstrap-daterangepicker" "~8.3.4"
|
|
||||||
"@abp/datatables.net-bs5" "~8.3.4"
|
|
||||||
"@abp/font-awesome" "~8.3.4"
|
|
||||||
"@abp/jquery-form" "~8.3.4"
|
|
||||||
"@abp/jquery-validation-unobtrusive" "~8.3.4"
|
|
||||||
"@abp/lodash" "~8.3.4"
|
|
||||||
"@abp/luxon" "~8.3.4"
|
|
||||||
"@abp/malihu-custom-scrollbar-plugin" "~8.3.4"
|
|
||||||
"@abp/moment" "~8.3.4"
|
|
||||||
"@abp/select2" "~8.3.4"
|
|
||||||
"@abp/sweetalert2" "~8.3.4"
|
|
||||||
"@abp/timeago" "~8.3.4"
|
|
||||||
"@abp/toastr" "~8.3.4"
|
|
||||||
|
|
||||||
"@abp/aspnetcore.mvc.ui@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.4.tgz#041d83f34541081d9e0f37c36c302cbe871a4897"
|
|
||||||
integrity sha512-sjGE/EoNM98mXNYPze2C7GPP+TNpv4TLIt416ojaqtxru60oddr4VWrOGuhaqUCO2jJes3OwFZi5PY3hVOBbYw==
|
|
||||||
dependencies:
|
|
||||||
ansi-colors "^4.1.3"
|
|
||||||
|
|
||||||
"@abp/bootstrap-datepicker@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.4.tgz#072f4a3cea93e3a1bb1de13b355201648929f84c"
|
|
||||||
integrity sha512-txilFovf9zT1w+fTkyI3eZdiISjaxc/+wRRFKwrkVH+0xEgaiR41svKm6sjWBORxgTddlGas87SZJvYY3IKBjA==
|
|
||||||
dependencies:
|
|
||||||
bootstrap-datepicker "^1.10.0"
|
|
||||||
|
|
||||||
"@abp/bootstrap-daterangepicker@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.4.tgz#b0f65611ca4fafdf2b551f9f139868eae6e22e9a"
|
|
||||||
integrity sha512-bYkYjk1zTdWcM4DGwnDoU+4pDvs1S8hkNWhrnpP0o8oRoJiesO8Aeda+82rtydtWnxHg+HkDC0iYFFqaNuHvbg==
|
|
||||||
dependencies:
|
|
||||||
bootstrap-daterangepicker "^3.1.0"
|
|
||||||
|
|
||||||
"@abp/bootstrap@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.4.tgz#744bb4d30d4c269ce8e6a7d16c6777dd3cd9fe1e"
|
|
||||||
integrity sha512-GXCLFFmPNaR3DjQYSaqACL5sH/M9FPia2OKAAMOd796+NmcoFpT+S7l4C6ihqeQc4bjFm0voB8QklueGWx6r8A==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
bootstrap "^5.3.3"
|
|
||||||
|
|
||||||
"@abp/core@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.4.tgz#12635bc2ac325a426334150502a32fefa4ec3767"
|
|
||||||
integrity sha512-wImAdZABahaQe6mmZAZlPfYZ3PEhL7eEq+18c1WFO0xeD98oxqi8H1X7+3ABjyFscIh9LIxJVaD3RJ9OHCc5bw==
|
|
||||||
dependencies:
|
|
||||||
"@abp/utils" "~8.3.4"
|
|
||||||
|
|
||||||
"@abp/datatables.net-bs5@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.4.tgz#efc28fa57144c7b495a4aeea38df962807ca20df"
|
|
||||||
integrity sha512-u85aXjqYIJJfOsMq6oNqfxNgxQqV6vOEnJ32vrH294ceW8RzUxHA+G/ZkGRLLRGWVuxuARD/UXzEotH5sd1Ssw==
|
|
||||||
dependencies:
|
|
||||||
"@abp/datatables.net" "~8.3.4"
|
|
||||||
datatables.net-bs5 "^2.0.8"
|
|
||||||
|
|
||||||
"@abp/datatables.net@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.4.tgz#23a3155a2d84247a29a6b80ff98d1d5f6422a245"
|
|
||||||
integrity sha512-cwE9TFoRoszmI3zNVaYJtqjSPtwkL9dhCfE02zsmJo8GBdFAlbzAmQenfQiWb3BZhvUvKKN20e+og9S8qoCbXA==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
datatables.net "^2.0.8"
|
|
||||||
|
|
||||||
"@abp/font-awesome@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.4.tgz#f79f7b439f9ffadfc03be3a415a977eab21fa5a1"
|
|
||||||
integrity sha512-5+D5XKnrZROtg9PJ2zex52gbphXGK/7ZIUsszEg8rOIc/niXggaZLmuDcYJwOEzIkwpGO9OvYy7lc0tHv/Pr4g==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
"@fortawesome/fontawesome-free" "^6.5.2"
|
|
||||||
|
|
||||||
"@abp/jquery-form@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.4.tgz#c1705bd5213ab5c2b895dd5bd9f3e54f3d94cf54"
|
|
||||||
integrity sha512-vFjWbTbHQyIsk5SS7Cc+5YrJ15ORjJU+YWVPchI0qoug26for06a7lDGpazWMadxx3iPL7cKLqneOqaVtHkgJA==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
jquery-form "^4.3.0"
|
|
||||||
|
|
||||||
"@abp/jquery-validation-unobtrusive@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.4.tgz#e89eafed89787bcb5221c0ba89832b79a7396d19"
|
|
||||||
integrity sha512-+kJA5vfvxkrj/iW4Q84BrMTrAGOhC2Hb5czAKr6c60Prmayk5hcakZdXc3wDBHREBLVAq1Muk4AtEJZmaKIeaA==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery-validation" "~8.3.4"
|
|
||||||
jquery-validation-unobtrusive "^4.0.0"
|
|
||||||
|
|
||||||
"@abp/jquery-validation@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.4.tgz#a445592d80edc6b6b1334ece2007b3084c329cc6"
|
|
||||||
integrity sha512-XvL0H3IRuSHwpPKUyJmW6PH8KwPDt9NllMqPGreRANF8l5IU10hOLEeP2BnGFfGMqFwqUMh+eJRar5yZcegkmg==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
jquery-validation "^1.20.1"
|
|
||||||
|
|
||||||
"@abp/jquery@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.4.tgz#2dc3f5f124ac65b5f45d29749ebb5d6cf17db23b"
|
|
||||||
integrity sha512-Zx2rErtgc0gxjX5PURjp6sjDQfzxBChUE9YWN37Xh+Ysm3tTGcXlF0Emwl94MZ640NfmYRpG4AWdik6kbaU5Wg==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
jquery "~3.7.1"
|
|
||||||
|
|
||||||
"@abp/lodash@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.4.tgz#b0ef4e82a788ae7389a31793c3bad6702efdbe33"
|
|
||||||
integrity sha512-yGd/oLds0jpTgTpmkFYOEomS4K15DGcffMP3N1t0qKLgTaBYTQzeugHVgQ0baufC+OvLjumDNuu3eHjBJewwKg==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
lodash "^4.17.21"
|
|
||||||
|
|
||||||
"@abp/luxon@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.4.tgz#f152b2d7b62bd27f3d27aa3a1794b868bf06a1a4"
|
|
||||||
integrity sha512-l1nvfqdhHBgHBPK+bLClAEprRK3K5zx5Jar93o5++6r3zXUhYi5OUHUxl+LuGn8MXLvHJVGL41irHl6sYjFSww==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
luxon "^3.4.4"
|
|
||||||
|
|
||||||
"@abp/malihu-custom-scrollbar-plugin@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.4.tgz#0868214884e3e0b94dade0e8e78c01741d71106a"
|
|
||||||
integrity sha512-uKRk8+HCvXtpmvof5W09908AkivlweErTE62b0JhkrJVIlYt/0LC1MmB/qHHBfPj6OK05HYGBi3inr7fNAPXEQ==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
malihu-custom-scrollbar-plugin "^3.1.5"
|
|
||||||
|
|
||||||
"@abp/moment@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.4.tgz#a5809520dc50b50402ade4ac630c6ec985fd4518"
|
|
||||||
integrity sha512-61J8drO3OqkaaAn66xBg6jCws1iV6zutjYQvpEXLdGBA9Kvw2J87GSomxJ4mcIo/5+jzrVro6JYaCfKWY8b1dw==
|
|
||||||
dependencies:
|
|
||||||
moment "^2.30.1"
|
|
||||||
|
|
||||||
"@abp/select2@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.4.tgz#1731b465760e0515d0d4280f38189c9366fecda5"
|
|
||||||
integrity sha512-sPtYstFVvMTT8fdXRIfHeODIgSN2ufWm6zCMGH7C0cST3FF59M4m/MtdKGBlA/itzHPxeDv7A6dy4Aw4l7Gk4Q==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
select2 "^4.0.13"
|
|
||||||
|
|
||||||
"@abp/sweetalert2@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.4.tgz#c0768ca4fe0a9926b8f33d8bf5251d3e4202cd2f"
|
|
||||||
integrity sha512-6HqxISh+FodwUsCrR3nX49RQDhzHtDlz8ul42TecUMsGa96qX2lvwnoWkXAHLG3mdLRy62Z0dhJ1JKMfrPeJeg==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
sweetalert2 "^11.3.6"
|
|
||||||
|
|
||||||
"@abp/timeago@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.4.tgz#26ca0bec90d861f9f4af714061b370950551c839"
|
|
||||||
integrity sha512-cDARYysPn5Rr/9rqVn7S4sBWbeEpaIXr8NKwGZqNOzMF2g283SkLKrkQJBWIC6Pn2lVeIB7AV1+GtVn81V/nnw==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
timeago "^1.6.7"
|
|
||||||
|
|
||||||
"@abp/toastr@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.4.tgz#cb433bc4ed2e302f2704ad0456c99d6f12fd0529"
|
|
||||||
integrity sha512-29C9GgwlumrHgt1iZ4lArDnlXfSvmCHDehxkbDutrkC1m257UxQaOID11us2UeCs3JobueQcLlQKD/LqnDB4xA==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
toastr "^2.1.4"
|
|
||||||
|
|
||||||
"@abp/utils@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.4.tgz#4b06575a110e85e2a360294f678b782818e1ab10"
|
|
||||||
integrity sha512-7Lq3wdk/07vKgQnR56DTmdSuYRABMe0XTGPJRS5F91DVbggeJyDUaqifVvOeurF/3CZJOS7fJpoIHQXeUveFtQ==
|
|
||||||
dependencies:
|
|
||||||
just-compare "^2.3.0"
|
|
||||||
|
|
||||||
"@fortawesome/fontawesome-free@^6.5.2":
|
|
||||||
version "6.7.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz#8249de9b7e22fcb3ceb5e66090c30a1d5492b81a"
|
|
||||||
integrity sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA==
|
|
||||||
|
|
||||||
ansi-colors@^4.1.3:
|
|
||||||
version "4.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
|
|
||||||
integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
|
|
||||||
|
|
||||||
bootstrap-datepicker@^1.10.0:
|
|
||||||
version "1.10.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.10.0.tgz#61612bbe8bf0a69a5bce32bbcdda93ebb6ccf24a"
|
|
||||||
integrity sha512-lWxtSYddAQOpbAO8UhYhHLcK6425eWoSjb5JDvZU3ePHEPF6A3eUr51WKaFy4PccU19JRxUG6wEU3KdhtKfvpg==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=3.4.0 <4.0.0"
|
|
||||||
|
|
||||||
bootstrap-daterangepicker@^3.1.0:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz#632e6fb2de4b6360c5c0a9d5f6adb9aace051fe8"
|
|
||||||
integrity sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.10"
|
|
||||||
moment "^2.9.0"
|
|
||||||
|
|
||||||
bootstrap@^5.3.3:
|
|
||||||
version "5.3.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.8.tgz#6401a10057a22752d21f4e19055508980656aeed"
|
|
||||||
integrity sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==
|
|
||||||
|
|
||||||
datatables.net-bs5@^2.0.8:
|
|
||||||
version "2.3.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-2.3.3.tgz#8bf3aec484a69e373f6007038eaac0cc0ef4ee15"
|
|
||||||
integrity sha512-IPtC57k3KyZaLzIYTHies23Cm2zqaKfD6lkxy/aOAUUAtsg35l53VqNY9y84AEySYG3YLghMHVBvl2ckUhvm0A==
|
|
||||||
dependencies:
|
|
||||||
datatables.net "2.3.3"
|
|
||||||
jquery ">=1.7"
|
|
||||||
|
|
||||||
datatables.net@2.3.3, datatables.net@^2.0.8:
|
|
||||||
version "2.3.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.3.3.tgz#fe4f96bdbc4cf47c8d11162a7af525ca6a3683d2"
|
|
||||||
integrity sha512-SWL3za6nheY6gdoiLgCc++tYmxbwrmv2bjrEiII9rXBWXXSbOZct6pjR3FueMVRM5jmt7pQcXiGovfuFDnutQg==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.7"
|
|
||||||
|
|
||||||
jquery-form@^4.3.0:
|
|
||||||
version "4.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery-form/-/jquery-form-4.3.0.tgz#7d3961c314a1f2d15298f4af1d3943f54f4149c6"
|
|
||||||
integrity sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.7.2"
|
|
||||||
|
|
||||||
jquery-mousewheel@>=3.0.6:
|
|
||||||
version "3.2.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.2.2.tgz#48c833f6260ee0c46d438a999e7d0060ec9eed0b"
|
|
||||||
integrity sha512-JP71xTAg08ZY3hcs9ZbYUZ5i+dkSsz4yRl/zpWkAmtzc+kMs5EfPkpkINSidiLYMaR0MTo3DfFGF9WIezMsFQQ==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.2.6"
|
|
||||||
|
|
||||||
jquery-validation-unobtrusive@^4.0.0:
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz#dfcf25a558496a2c883db6021d10f5398d15f99d"
|
|
||||||
integrity sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ==
|
|
||||||
dependencies:
|
|
||||||
jquery "^3.6.0"
|
|
||||||
jquery-validation ">=1.19"
|
|
||||||
|
|
||||||
jquery-validation@>=1.19, jquery-validation@^1.20.1:
|
|
||||||
version "1.21.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.21.0.tgz#78fc05ab76020912a246af3661b3f54a438bca93"
|
|
||||||
integrity sha512-xNot0rlUIgu7duMcQ5qb6MGkGL/Z1PQaRJQoZAURW9+a/2PGOUxY36o/WyNeP2T9R6jvWB8Z9lUVvvQWI/Zs5w==
|
|
||||||
|
|
||||||
jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.2.6, "jquery@>=1.5.0 <4.0", jquery@>=1.7, jquery@>=1.7.2, "jquery@>=3.4.0 <4.0.0", jquery@^3.6.0, jquery@~3.7.1:
|
|
||||||
version "3.7.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de"
|
|
||||||
integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==
|
|
||||||
|
|
||||||
just-compare@^2.3.0:
|
|
||||||
version "2.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/just-compare/-/just-compare-2.3.0.tgz#a2adcc1d1940536263275f5a1ef1298bcacfeda7"
|
|
||||||
integrity sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==
|
|
||||||
|
|
||||||
lodash@^4.17.21:
|
|
||||||
version "4.17.21"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
|
||||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
|
||||||
|
|
||||||
luxon@^3.4.4:
|
|
||||||
version "3.7.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.7.2.tgz#d697e48f478553cca187a0f8436aff468e3ba0ba"
|
|
||||||
integrity sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==
|
|
||||||
|
|
||||||
malihu-custom-scrollbar-plugin@^3.1.5:
|
|
||||||
version "3.1.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz#310cecc5e59415a1c29e9dfb5d2b6e01d66a29ef"
|
|
||||||
integrity sha512-lwW3LgI+CNDMPnP4ED2la6oYxWMkCXlnhex+s2wuOLhFDFGnGmQuTQVdRK9bvDLpxs10sGlfErVufJy9ztfgJQ==
|
|
||||||
dependencies:
|
|
||||||
jquery-mousewheel ">=3.0.6"
|
|
||||||
|
|
||||||
moment@^2.30.1, moment@^2.9.0:
|
|
||||||
version "2.30.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
|
|
||||||
integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
|
|
||||||
|
|
||||||
select2@^4.0.13:
|
|
||||||
version "4.0.13"
|
|
||||||
resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d"
|
|
||||||
integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==
|
|
||||||
|
|
||||||
sweetalert2@^11.3.6:
|
|
||||||
version "11.23.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.23.0.tgz#ba8a051b1e94215c762af08692171b7b4611c4c1"
|
|
||||||
integrity sha512-cKzzbC3C1sIs7o9XAMw4E8F9kBtGXsBDUsd2JZ8JM/dqa+nzWwSGM+9LLYILZWzWHzX9W+HJNHyBlbHPVS/krw==
|
|
||||||
|
|
||||||
timeago@^1.6.7:
|
|
||||||
version "1.6.7"
|
|
||||||
resolved "https://registry.yarnpkg.com/timeago/-/timeago-1.6.7.tgz#afd467c29a911e697fc22a81888c7c3022783cb5"
|
|
||||||
integrity sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.5.0 <4.0"
|
|
||||||
|
|
||||||
toastr@^2.1.4:
|
|
||||||
version "2.1.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/toastr/-/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181"
|
|
||||||
integrity sha512-LIy77F5n+sz4tefMmFOntcJ6HL0Fv3k1TDnNmFZ0bU/GcvIIfy6eG2v7zQmMiYgaalAiUv75ttFrPn5s0gyqlA==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.12.0"
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
using Microsoft.Extensions.Localization;
|
|
||||||
using KonSoft.Dispatch.Localization;
|
|
||||||
using Volo.Abp.DependencyInjection;
|
|
||||||
using Volo.Abp.Ui.Branding;
|
|
||||||
|
|
||||||
namespace KonSoft.Dispatch;
|
|
||||||
|
|
||||||
[Dependency(ReplaceServices = true)]
|
|
||||||
public class DispatchBrandingProvider : DefaultBrandingProvider
|
|
||||||
{
|
|
||||||
private IStringLocalizer<DispatchResource> _localizer;
|
|
||||||
|
|
||||||
public DispatchBrandingProvider(IStringLocalizer<DispatchResource> localizer)
|
|
||||||
{
|
|
||||||
_localizer = localizer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string AppName => _localizer["AppName"];
|
|
||||||
}
|
|
||||||
@ -2,32 +2,34 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Medallion.Threading;
|
||||||
|
using Medallion.Threading.Redis;
|
||||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Cors;
|
using Microsoft.AspNetCore.Cors;
|
||||||
using Microsoft.AspNetCore.Extensions.DependencyInjection;
|
using Microsoft.AspNetCore.DataProtection;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using KonSoft.Dispatch.EntityFrameworkCore;
|
using KonSoft.Dispatch.EntityFrameworkCore;
|
||||||
using KonSoft.Dispatch.MultiTenancy;
|
using KonSoft.Dispatch.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite;
|
using StackExchange.Redis;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling;
|
|
||||||
using Microsoft.OpenApi.Models;
|
using Microsoft.OpenApi.Models;
|
||||||
using OpenIddict.Validation.AspNetCore;
|
|
||||||
using Volo.Abp;
|
using Volo.Abp;
|
||||||
using Volo.Abp.Account;
|
using Volo.Abp.AspNetCore.Authentication.JwtBearer;
|
||||||
using Volo.Abp.Account.Web;
|
|
||||||
using Volo.Abp.AspNetCore.MultiTenancy;
|
|
||||||
using Volo.Abp.AspNetCore.Mvc;
|
using Volo.Abp.AspNetCore.Mvc;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
|
using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
|
|
||||||
using Volo.Abp.AspNetCore.Serilog;
|
using Volo.Abp.AspNetCore.Serilog;
|
||||||
using Volo.Abp.Autofac;
|
using Volo.Abp.Autofac;
|
||||||
|
using Volo.Abp.Caching;
|
||||||
|
using Volo.Abp.Caching.StackExchangeRedis;
|
||||||
|
using Volo.Abp.DistributedLocking;
|
||||||
|
using Volo.Abp.Identity;
|
||||||
using Volo.Abp.Localization;
|
using Volo.Abp.Localization;
|
||||||
using Volo.Abp.Modularity;
|
using Volo.Abp.Modularity;
|
||||||
using Volo.Abp.Security.Claims;
|
using Volo.Abp.Security.Claims;
|
||||||
using Volo.Abp.Swashbuckle;
|
using Volo.Abp.Swashbuckle;
|
||||||
using Volo.Abp.UI.Navigation.Urls;
|
|
||||||
using Volo.Abp.VirtualFileSystem;
|
using Volo.Abp.VirtualFileSystem;
|
||||||
|
|
||||||
namespace KonSoft.Dispatch;
|
namespace KonSoft.Dispatch;
|
||||||
@ -35,76 +37,35 @@ namespace KonSoft.Dispatch;
|
|||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(DispatchHttpApiModule),
|
typeof(DispatchHttpApiModule),
|
||||||
typeof(AbpAutofacModule),
|
typeof(AbpAutofacModule),
|
||||||
typeof(AbpAspNetCoreMultiTenancyModule),
|
typeof(AbpCachingStackExchangeRedisModule),
|
||||||
|
typeof(AbpDistributedLockingModule),
|
||||||
|
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
|
||||||
|
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
|
||||||
typeof(DispatchApplicationModule),
|
typeof(DispatchApplicationModule),
|
||||||
typeof(DispatchEntityFrameworkCoreModule),
|
typeof(DispatchEntityFrameworkCoreModule),
|
||||||
typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule),
|
|
||||||
typeof(AbpAccountWebOpenIddictModule),
|
|
||||||
typeof(AbpAspNetCoreSerilogModule),
|
typeof(AbpAspNetCoreSerilogModule),
|
||||||
typeof(AbpSwashbuckleModule)
|
typeof(AbpSwashbuckleModule)
|
||||||
)]
|
)]
|
||||||
public class DispatchHttpApiHostModule : AbpModule
|
public class DispatchHttpApiHostModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void PreConfigureServices(ServiceConfigurationContext context)
|
|
||||||
{
|
|
||||||
PreConfigure<OpenIddictBuilder>(builder =>
|
|
||||||
{
|
|
||||||
builder.AddValidation(options =>
|
|
||||||
{
|
|
||||||
options.AddAudiences("Dispatch");
|
|
||||||
options.UseLocalServer();
|
|
||||||
options.UseAspNetCore();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
var configuration = context.Services.GetConfiguration();
|
var configuration = context.Services.GetConfiguration();
|
||||||
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
||||||
|
|
||||||
ConfigureAuthentication(context);
|
|
||||||
ConfigureBundles();
|
|
||||||
ConfigureUrls(configuration);
|
|
||||||
ConfigureConventionalControllers();
|
ConfigureConventionalControllers();
|
||||||
|
ConfigureAuthentication(context, configuration);
|
||||||
|
ConfigureCache(configuration);
|
||||||
ConfigureVirtualFileSystem(context);
|
ConfigureVirtualFileSystem(context);
|
||||||
|
ConfigureDataProtection(context, configuration, hostingEnvironment);
|
||||||
|
ConfigureDistributedLocking(context, configuration);
|
||||||
ConfigureCors(context, configuration);
|
ConfigureCors(context, configuration);
|
||||||
ConfigureSwaggerServices(context, configuration);
|
ConfigureSwaggerServices(context, configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureAuthentication(ServiceConfigurationContext context)
|
private void ConfigureCache(IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme);
|
Configure<AbpDistributedCacheOptions>(options => { options.KeyPrefix = "Dispatch:"; });
|
||||||
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
|
||||||
{
|
|
||||||
options.IsDynamicClaimsEnabled = true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureBundles()
|
|
||||||
{
|
|
||||||
Configure<AbpBundlingOptions>(options =>
|
|
||||||
{
|
|
||||||
options.StyleBundles.Configure(
|
|
||||||
LeptonXLiteThemeBundles.Styles.Global,
|
|
||||||
bundle =>
|
|
||||||
{
|
|
||||||
bundle.AddFiles("/global-styles.css");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureUrls(IConfiguration configuration)
|
|
||||||
{
|
|
||||||
Configure<AppUrlOptions>(options =>
|
|
||||||
{
|
|
||||||
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
|
|
||||||
options.RedirectAllowedUrls.AddRange(configuration["App:RedirectAllowedUrls"]?.Split(',') ?? Array.Empty<string>());
|
|
||||||
|
|
||||||
options.Applications["Angular"].RootUrl = configuration["App:ClientUrl"];
|
|
||||||
options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password";
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
||||||
@ -139,6 +100,22 @@ public class DispatchHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||||
|
.AddAbpJwtBearer(options =>
|
||||||
|
{
|
||||||
|
options.Authority = configuration["AuthServer:Authority"];
|
||||||
|
options.RequireHttpsMetadata = configuration.GetValue<bool>("AuthServer:RequireHttpsMetadata");
|
||||||
|
options.Audience = "Dispatch";
|
||||||
|
});
|
||||||
|
|
||||||
|
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
||||||
|
{
|
||||||
|
options.IsDynamicClaimsEnabled = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddAbpSwaggerGenWithOAuth(
|
context.Services.AddAbpSwaggerGenWithOAuth(
|
||||||
@ -155,6 +132,30 @@ public class DispatchHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureDataProtection(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration,
|
||||||
|
IWebHostEnvironment hostingEnvironment)
|
||||||
|
{
|
||||||
|
var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("Dispatch");
|
||||||
|
if (!hostingEnvironment.IsDevelopment())
|
||||||
|
{
|
||||||
|
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "Dispatch-Protection-Keys");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConfigureDistributedLocking(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddSingleton<IDistributedLockProvider>(sp =>
|
||||||
|
{
|
||||||
|
var connection = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
return new RedisDistributedSynchronizationProvider(connection.GetDatabase());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddCors(options =>
|
context.Services.AddCors(options =>
|
||||||
@ -186,35 +187,29 @@ public class DispatchHttpApiHostModule : AbpModule
|
|||||||
}
|
}
|
||||||
|
|
||||||
app.UseAbpRequestLocalization();
|
app.UseAbpRequestLocalization();
|
||||||
|
|
||||||
if (!env.IsDevelopment())
|
|
||||||
{
|
|
||||||
app.UseErrorPage();
|
|
||||||
}
|
|
||||||
|
|
||||||
app.UseCorrelationId();
|
app.UseCorrelationId();
|
||||||
app.UseStaticFiles();
|
app.UseStaticFiles();
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
app.UseCors();
|
app.UseCors();
|
||||||
app.UseAuthentication();
|
app.UseAuthentication();
|
||||||
app.UseAbpOpenIddictValidation();
|
|
||||||
|
|
||||||
if (MultiTenancyConsts.IsEnabled)
|
if (MultiTenancyConsts.IsEnabled)
|
||||||
{
|
{
|
||||||
app.UseMultiTenancy();
|
app.UseMultiTenancy();
|
||||||
}
|
}
|
||||||
|
|
||||||
app.UseUnitOfWork();
|
app.UseUnitOfWork();
|
||||||
app.UseDynamicClaims();
|
app.UseDynamicClaims();
|
||||||
app.UseAuthorization();
|
app.UseAuthorization();
|
||||||
|
|
||||||
app.UseSwagger();
|
app.UseSwagger();
|
||||||
app.UseAbpSwaggerUI(c =>
|
app.UseAbpSwaggerUI(options =>
|
||||||
{
|
{
|
||||||
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Dispatch API");
|
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Dispatch API");
|
||||||
|
|
||||||
var configuration = context.ServiceProvider.GetRequiredService<IConfiguration>();
|
var configuration = context.GetConfiguration();
|
||||||
c.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
||||||
c.OAuthScopes("Dispatch");
|
options.OAuthScopes("Dispatch");
|
||||||
});
|
});
|
||||||
|
|
||||||
app.UseAuditing();
|
app.UseAuditing();
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
@ -13,21 +11,16 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" Version="8.3.4" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.4" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.4" />
|
||||||
|
<PackageReference Include="DistributedLock.Redis" Version="1.0.2" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.DistributedLocking" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Account.Web.OpenIddict" Version="8.3.4" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="3.2.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Dispatch.Application\KonSoft.Dispatch.Application.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Dispatch.EntityFrameworkCore\KonSoft.Dispatch.EntityFrameworkCore.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Dispatch.HttpApi\KonSoft.Dispatch.HttpApi.csproj" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
"windowsAuthentication": false,
|
"windowsAuthentication": false,
|
||||||
"anonymousAuthentication": true,
|
"anonymousAuthentication": true,
|
||||||
"iisExpress": {
|
"iisExpress": {
|
||||||
"applicationUrl": "https://localhost:44321",
|
"applicationUrl": "https://localhost:44331",
|
||||||
"sslPort": 44321
|
"sslPort": 44331
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profiles": {
|
"profiles": {
|
||||||
@ -18,7 +18,7 @@
|
|||||||
"KonSoft.Dispatch.HttpApi.Host": {
|
"KonSoft.Dispatch.HttpApi.Host": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"applicationUrl": "https://localhost:44321",
|
"applicationUrl": "https://localhost:44331",
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
aliases: {
|
|
||||||
|
|
||||||
},
|
|
||||||
clean: [
|
|
||||||
|
|
||||||
],
|
|
||||||
mappings: {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@ -1,18 +1,19 @@
|
|||||||
{
|
{
|
||||||
"App": {
|
"App": {
|
||||||
"SelfUrl": "https://localhost:44321",
|
"CorsOrigins": "https://*.Dispatch.com,https://localhost:44327"
|
||||||
"CorsOrigins": "https://*.Dispatch.com",
|
|
||||||
"RedirectAllowedUrls": ""
|
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"Default": "Host=localhost;Port=5432;Database=Dispatch;User ID=root;Password=myPassword;"
|
"Default": "Host=localhost;Port=5432;Database=Dispatch;User ID=root;Password=myPassword;"
|
||||||
},
|
},
|
||||||
|
"Redis": {
|
||||||
|
"Configuration": "127.0.0.1"
|
||||||
|
},
|
||||||
"AuthServer": {
|
"AuthServer": {
|
||||||
"Authority": "https://localhost:44321",
|
"Authority": "https://localhost:44361",
|
||||||
"RequireHttpsMetadata": false,
|
"RequireHttpsMetadata": true,
|
||||||
"SwaggerClientId": "Dispatch_Swagger"
|
"SwaggerClientId": "Dispatch_Swagger"
|
||||||
},
|
},
|
||||||
"StringEncryption": {
|
"StringEncryption": {
|
||||||
"DefaultPassPhrase": "AcY4JMdp6hCRgMYj"
|
"DefaultPassPhrase": "vYUQJbcqDROWyx2n"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "1.0.0",
|
|
||||||
"name": "my-app",
|
|
||||||
"private": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.4"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
/* Your Global Styles */
|
|
||||||
|
|
||||||
:root .lpx-brand-logo {
|
|
||||||
--lpx-logo: url('/images/logo/leptonx/logo-light.png');
|
|
||||||
--lpx-logo-icon: url('/images/logo/leptonx/logo-light-thumbnail.png');
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@ -1,322 +0,0 @@
|
|||||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
||||||
# yarn lockfile v1
|
|
||||||
|
|
||||||
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.leptonxlite@~3.3.4":
|
|
||||||
version "3.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-3.3.4.tgz#fb6879075aec2f06e0302e941dcefbe519b18e1d"
|
|
||||||
integrity sha512-5rrwwZ9n2/yePo+GnHuUsP0TelCwRwCQjYyQFdF/Nd4B3UNQVO/AXQc0Ep3+vHhUxSL386j6ObZYu14VdjPg2g==
|
|
||||||
dependencies:
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.4"
|
|
||||||
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.4.tgz#169ae0893302ced9256f94174d9bb870e49f446c"
|
|
||||||
integrity sha512-bZy8iAIN0QfNJXCRg+RR1NxqTzNDSXRPBx+ksFtDxY6FzMJvwwSOmHF0wqsMLj1xpwXjijWaVWQ2RM/7scDWmw==
|
|
||||||
dependencies:
|
|
||||||
"@abp/aspnetcore.mvc.ui" "~8.3.4"
|
|
||||||
"@abp/bootstrap" "~8.3.4"
|
|
||||||
"@abp/bootstrap-datepicker" "~8.3.4"
|
|
||||||
"@abp/bootstrap-daterangepicker" "~8.3.4"
|
|
||||||
"@abp/datatables.net-bs5" "~8.3.4"
|
|
||||||
"@abp/font-awesome" "~8.3.4"
|
|
||||||
"@abp/jquery-form" "~8.3.4"
|
|
||||||
"@abp/jquery-validation-unobtrusive" "~8.3.4"
|
|
||||||
"@abp/lodash" "~8.3.4"
|
|
||||||
"@abp/luxon" "~8.3.4"
|
|
||||||
"@abp/malihu-custom-scrollbar-plugin" "~8.3.4"
|
|
||||||
"@abp/moment" "~8.3.4"
|
|
||||||
"@abp/select2" "~8.3.4"
|
|
||||||
"@abp/sweetalert2" "~8.3.4"
|
|
||||||
"@abp/timeago" "~8.3.4"
|
|
||||||
"@abp/toastr" "~8.3.4"
|
|
||||||
|
|
||||||
"@abp/aspnetcore.mvc.ui@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.4.tgz#041d83f34541081d9e0f37c36c302cbe871a4897"
|
|
||||||
integrity sha512-sjGE/EoNM98mXNYPze2C7GPP+TNpv4TLIt416ojaqtxru60oddr4VWrOGuhaqUCO2jJes3OwFZi5PY3hVOBbYw==
|
|
||||||
dependencies:
|
|
||||||
ansi-colors "^4.1.3"
|
|
||||||
|
|
||||||
"@abp/bootstrap-datepicker@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.4.tgz#072f4a3cea93e3a1bb1de13b355201648929f84c"
|
|
||||||
integrity sha512-txilFovf9zT1w+fTkyI3eZdiISjaxc/+wRRFKwrkVH+0xEgaiR41svKm6sjWBORxgTddlGas87SZJvYY3IKBjA==
|
|
||||||
dependencies:
|
|
||||||
bootstrap-datepicker "^1.10.0"
|
|
||||||
|
|
||||||
"@abp/bootstrap-daterangepicker@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.4.tgz#b0f65611ca4fafdf2b551f9f139868eae6e22e9a"
|
|
||||||
integrity sha512-bYkYjk1zTdWcM4DGwnDoU+4pDvs1S8hkNWhrnpP0o8oRoJiesO8Aeda+82rtydtWnxHg+HkDC0iYFFqaNuHvbg==
|
|
||||||
dependencies:
|
|
||||||
bootstrap-daterangepicker "^3.1.0"
|
|
||||||
|
|
||||||
"@abp/bootstrap@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.4.tgz#744bb4d30d4c269ce8e6a7d16c6777dd3cd9fe1e"
|
|
||||||
integrity sha512-GXCLFFmPNaR3DjQYSaqACL5sH/M9FPia2OKAAMOd796+NmcoFpT+S7l4C6ihqeQc4bjFm0voB8QklueGWx6r8A==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
bootstrap "^5.3.3"
|
|
||||||
|
|
||||||
"@abp/core@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.4.tgz#12635bc2ac325a426334150502a32fefa4ec3767"
|
|
||||||
integrity sha512-wImAdZABahaQe6mmZAZlPfYZ3PEhL7eEq+18c1WFO0xeD98oxqi8H1X7+3ABjyFscIh9LIxJVaD3RJ9OHCc5bw==
|
|
||||||
dependencies:
|
|
||||||
"@abp/utils" "~8.3.4"
|
|
||||||
|
|
||||||
"@abp/datatables.net-bs5@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.4.tgz#efc28fa57144c7b495a4aeea38df962807ca20df"
|
|
||||||
integrity sha512-u85aXjqYIJJfOsMq6oNqfxNgxQqV6vOEnJ32vrH294ceW8RzUxHA+G/ZkGRLLRGWVuxuARD/UXzEotH5sd1Ssw==
|
|
||||||
dependencies:
|
|
||||||
"@abp/datatables.net" "~8.3.4"
|
|
||||||
datatables.net-bs5 "^2.0.8"
|
|
||||||
|
|
||||||
"@abp/datatables.net@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.4.tgz#23a3155a2d84247a29a6b80ff98d1d5f6422a245"
|
|
||||||
integrity sha512-cwE9TFoRoszmI3zNVaYJtqjSPtwkL9dhCfE02zsmJo8GBdFAlbzAmQenfQiWb3BZhvUvKKN20e+og9S8qoCbXA==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
datatables.net "^2.0.8"
|
|
||||||
|
|
||||||
"@abp/font-awesome@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.4.tgz#f79f7b439f9ffadfc03be3a415a977eab21fa5a1"
|
|
||||||
integrity sha512-5+D5XKnrZROtg9PJ2zex52gbphXGK/7ZIUsszEg8rOIc/niXggaZLmuDcYJwOEzIkwpGO9OvYy7lc0tHv/Pr4g==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
"@fortawesome/fontawesome-free" "^6.5.2"
|
|
||||||
|
|
||||||
"@abp/jquery-form@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.4.tgz#c1705bd5213ab5c2b895dd5bd9f3e54f3d94cf54"
|
|
||||||
integrity sha512-vFjWbTbHQyIsk5SS7Cc+5YrJ15ORjJU+YWVPchI0qoug26for06a7lDGpazWMadxx3iPL7cKLqneOqaVtHkgJA==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
jquery-form "^4.3.0"
|
|
||||||
|
|
||||||
"@abp/jquery-validation-unobtrusive@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.4.tgz#e89eafed89787bcb5221c0ba89832b79a7396d19"
|
|
||||||
integrity sha512-+kJA5vfvxkrj/iW4Q84BrMTrAGOhC2Hb5czAKr6c60Prmayk5hcakZdXc3wDBHREBLVAq1Muk4AtEJZmaKIeaA==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery-validation" "~8.3.4"
|
|
||||||
jquery-validation-unobtrusive "^4.0.0"
|
|
||||||
|
|
||||||
"@abp/jquery-validation@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.4.tgz#a445592d80edc6b6b1334ece2007b3084c329cc6"
|
|
||||||
integrity sha512-XvL0H3IRuSHwpPKUyJmW6PH8KwPDt9NllMqPGreRANF8l5IU10hOLEeP2BnGFfGMqFwqUMh+eJRar5yZcegkmg==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
jquery-validation "^1.20.1"
|
|
||||||
|
|
||||||
"@abp/jquery@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.4.tgz#2dc3f5f124ac65b5f45d29749ebb5d6cf17db23b"
|
|
||||||
integrity sha512-Zx2rErtgc0gxjX5PURjp6sjDQfzxBChUE9YWN37Xh+Ysm3tTGcXlF0Emwl94MZ640NfmYRpG4AWdik6kbaU5Wg==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
jquery "~3.7.1"
|
|
||||||
|
|
||||||
"@abp/lodash@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.4.tgz#b0ef4e82a788ae7389a31793c3bad6702efdbe33"
|
|
||||||
integrity sha512-yGd/oLds0jpTgTpmkFYOEomS4K15DGcffMP3N1t0qKLgTaBYTQzeugHVgQ0baufC+OvLjumDNuu3eHjBJewwKg==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
lodash "^4.17.21"
|
|
||||||
|
|
||||||
"@abp/luxon@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.4.tgz#f152b2d7b62bd27f3d27aa3a1794b868bf06a1a4"
|
|
||||||
integrity sha512-l1nvfqdhHBgHBPK+bLClAEprRK3K5zx5Jar93o5++6r3zXUhYi5OUHUxl+LuGn8MXLvHJVGL41irHl6sYjFSww==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
luxon "^3.4.4"
|
|
||||||
|
|
||||||
"@abp/malihu-custom-scrollbar-plugin@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.4.tgz#0868214884e3e0b94dade0e8e78c01741d71106a"
|
|
||||||
integrity sha512-uKRk8+HCvXtpmvof5W09908AkivlweErTE62b0JhkrJVIlYt/0LC1MmB/qHHBfPj6OK05HYGBi3inr7fNAPXEQ==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
malihu-custom-scrollbar-plugin "^3.1.5"
|
|
||||||
|
|
||||||
"@abp/moment@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.4.tgz#a5809520dc50b50402ade4ac630c6ec985fd4518"
|
|
||||||
integrity sha512-61J8drO3OqkaaAn66xBg6jCws1iV6zutjYQvpEXLdGBA9Kvw2J87GSomxJ4mcIo/5+jzrVro6JYaCfKWY8b1dw==
|
|
||||||
dependencies:
|
|
||||||
moment "^2.30.1"
|
|
||||||
|
|
||||||
"@abp/select2@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.4.tgz#1731b465760e0515d0d4280f38189c9366fecda5"
|
|
||||||
integrity sha512-sPtYstFVvMTT8fdXRIfHeODIgSN2ufWm6zCMGH7C0cST3FF59M4m/MtdKGBlA/itzHPxeDv7A6dy4Aw4l7Gk4Q==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
select2 "^4.0.13"
|
|
||||||
|
|
||||||
"@abp/sweetalert2@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.4.tgz#c0768ca4fe0a9926b8f33d8bf5251d3e4202cd2f"
|
|
||||||
integrity sha512-6HqxISh+FodwUsCrR3nX49RQDhzHtDlz8ul42TecUMsGa96qX2lvwnoWkXAHLG3mdLRy62Z0dhJ1JKMfrPeJeg==
|
|
||||||
dependencies:
|
|
||||||
"@abp/core" "~8.3.4"
|
|
||||||
sweetalert2 "^11.3.6"
|
|
||||||
|
|
||||||
"@abp/timeago@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.4.tgz#26ca0bec90d861f9f4af714061b370950551c839"
|
|
||||||
integrity sha512-cDARYysPn5Rr/9rqVn7S4sBWbeEpaIXr8NKwGZqNOzMF2g283SkLKrkQJBWIC6Pn2lVeIB7AV1+GtVn81V/nnw==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
timeago "^1.6.7"
|
|
||||||
|
|
||||||
"@abp/toastr@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.4.tgz#cb433bc4ed2e302f2704ad0456c99d6f12fd0529"
|
|
||||||
integrity sha512-29C9GgwlumrHgt1iZ4lArDnlXfSvmCHDehxkbDutrkC1m257UxQaOID11us2UeCs3JobueQcLlQKD/LqnDB4xA==
|
|
||||||
dependencies:
|
|
||||||
"@abp/jquery" "~8.3.4"
|
|
||||||
toastr "^2.1.4"
|
|
||||||
|
|
||||||
"@abp/utils@~8.3.4":
|
|
||||||
version "8.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.4.tgz#4b06575a110e85e2a360294f678b782818e1ab10"
|
|
||||||
integrity sha512-7Lq3wdk/07vKgQnR56DTmdSuYRABMe0XTGPJRS5F91DVbggeJyDUaqifVvOeurF/3CZJOS7fJpoIHQXeUveFtQ==
|
|
||||||
dependencies:
|
|
||||||
just-compare "^2.3.0"
|
|
||||||
|
|
||||||
"@fortawesome/fontawesome-free@^6.5.2":
|
|
||||||
version "6.7.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz#8249de9b7e22fcb3ceb5e66090c30a1d5492b81a"
|
|
||||||
integrity sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA==
|
|
||||||
|
|
||||||
ansi-colors@^4.1.3:
|
|
||||||
version "4.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
|
|
||||||
integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
|
|
||||||
|
|
||||||
bootstrap-datepicker@^1.10.0:
|
|
||||||
version "1.10.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.10.0.tgz#61612bbe8bf0a69a5bce32bbcdda93ebb6ccf24a"
|
|
||||||
integrity sha512-lWxtSYddAQOpbAO8UhYhHLcK6425eWoSjb5JDvZU3ePHEPF6A3eUr51WKaFy4PccU19JRxUG6wEU3KdhtKfvpg==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=3.4.0 <4.0.0"
|
|
||||||
|
|
||||||
bootstrap-daterangepicker@^3.1.0:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz#632e6fb2de4b6360c5c0a9d5f6adb9aace051fe8"
|
|
||||||
integrity sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.10"
|
|
||||||
moment "^2.9.0"
|
|
||||||
|
|
||||||
bootstrap@^5.3.3:
|
|
||||||
version "5.3.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.8.tgz#6401a10057a22752d21f4e19055508980656aeed"
|
|
||||||
integrity sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==
|
|
||||||
|
|
||||||
datatables.net-bs5@^2.0.8:
|
|
||||||
version "2.3.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-2.3.3.tgz#8bf3aec484a69e373f6007038eaac0cc0ef4ee15"
|
|
||||||
integrity sha512-IPtC57k3KyZaLzIYTHies23Cm2zqaKfD6lkxy/aOAUUAtsg35l53VqNY9y84AEySYG3YLghMHVBvl2ckUhvm0A==
|
|
||||||
dependencies:
|
|
||||||
datatables.net "2.3.3"
|
|
||||||
jquery ">=1.7"
|
|
||||||
|
|
||||||
datatables.net@2.3.3, datatables.net@^2.0.8:
|
|
||||||
version "2.3.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.3.3.tgz#fe4f96bdbc4cf47c8d11162a7af525ca6a3683d2"
|
|
||||||
integrity sha512-SWL3za6nheY6gdoiLgCc++tYmxbwrmv2bjrEiII9rXBWXXSbOZct6pjR3FueMVRM5jmt7pQcXiGovfuFDnutQg==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.7"
|
|
||||||
|
|
||||||
jquery-form@^4.3.0:
|
|
||||||
version "4.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery-form/-/jquery-form-4.3.0.tgz#7d3961c314a1f2d15298f4af1d3943f54f4149c6"
|
|
||||||
integrity sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.7.2"
|
|
||||||
|
|
||||||
jquery-mousewheel@>=3.0.6:
|
|
||||||
version "3.2.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.2.2.tgz#48c833f6260ee0c46d438a999e7d0060ec9eed0b"
|
|
||||||
integrity sha512-JP71xTAg08ZY3hcs9ZbYUZ5i+dkSsz4yRl/zpWkAmtzc+kMs5EfPkpkINSidiLYMaR0MTo3DfFGF9WIezMsFQQ==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.2.6"
|
|
||||||
|
|
||||||
jquery-validation-unobtrusive@^4.0.0:
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz#dfcf25a558496a2c883db6021d10f5398d15f99d"
|
|
||||||
integrity sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ==
|
|
||||||
dependencies:
|
|
||||||
jquery "^3.6.0"
|
|
||||||
jquery-validation ">=1.19"
|
|
||||||
|
|
||||||
jquery-validation@>=1.19, jquery-validation@^1.20.1:
|
|
||||||
version "1.21.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.21.0.tgz#78fc05ab76020912a246af3661b3f54a438bca93"
|
|
||||||
integrity sha512-xNot0rlUIgu7duMcQ5qb6MGkGL/Z1PQaRJQoZAURW9+a/2PGOUxY36o/WyNeP2T9R6jvWB8Z9lUVvvQWI/Zs5w==
|
|
||||||
|
|
||||||
jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.2.6, "jquery@>=1.5.0 <4.0", jquery@>=1.7, jquery@>=1.7.2, "jquery@>=3.4.0 <4.0.0", jquery@^3.6.0, jquery@~3.7.1:
|
|
||||||
version "3.7.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de"
|
|
||||||
integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==
|
|
||||||
|
|
||||||
just-compare@^2.3.0:
|
|
||||||
version "2.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/just-compare/-/just-compare-2.3.0.tgz#a2adcc1d1940536263275f5a1ef1298bcacfeda7"
|
|
||||||
integrity sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==
|
|
||||||
|
|
||||||
lodash@^4.17.21:
|
|
||||||
version "4.17.21"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
|
||||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
|
||||||
|
|
||||||
luxon@^3.4.4:
|
|
||||||
version "3.7.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.7.2.tgz#d697e48f478553cca187a0f8436aff468e3ba0ba"
|
|
||||||
integrity sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==
|
|
||||||
|
|
||||||
malihu-custom-scrollbar-plugin@^3.1.5:
|
|
||||||
version "3.1.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz#310cecc5e59415a1c29e9dfb5d2b6e01d66a29ef"
|
|
||||||
integrity sha512-lwW3LgI+CNDMPnP4ED2la6oYxWMkCXlnhex+s2wuOLhFDFGnGmQuTQVdRK9bvDLpxs10sGlfErVufJy9ztfgJQ==
|
|
||||||
dependencies:
|
|
||||||
jquery-mousewheel ">=3.0.6"
|
|
||||||
|
|
||||||
moment@^2.30.1, moment@^2.9.0:
|
|
||||||
version "2.30.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
|
|
||||||
integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
|
|
||||||
|
|
||||||
select2@^4.0.13:
|
|
||||||
version "4.0.13"
|
|
||||||
resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d"
|
|
||||||
integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==
|
|
||||||
|
|
||||||
sweetalert2@^11.3.6:
|
|
||||||
version "11.23.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.23.0.tgz#ba8a051b1e94215c762af08692171b7b4611c4c1"
|
|
||||||
integrity sha512-cKzzbC3C1sIs7o9XAMw4E8F9kBtGXsBDUsd2JZ8JM/dqa+nzWwSGM+9LLYILZWzWHzX9W+HJNHyBlbHPVS/krw==
|
|
||||||
|
|
||||||
timeago@^1.6.7:
|
|
||||||
version "1.6.7"
|
|
||||||
resolved "https://registry.yarnpkg.com/timeago/-/timeago-1.6.7.tgz#afd467c29a911e697fc22a81888c7c3022783cb5"
|
|
||||||
integrity sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.5.0 <4.0"
|
|
||||||
|
|
||||||
toastr@^2.1.4:
|
|
||||||
version "2.1.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/toastr/-/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181"
|
|
||||||
integrity sha512-LIy77F5n+sz4tefMmFOntcJ6HL0Fv3k1TDnNmFZ0bU/GcvIIfy6eG2v7zQmMiYgaalAiUv75ttFrPn5s0gyqlA==
|
|
||||||
dependencies:
|
|
||||||
jquery ">=1.12.0"
|
|
||||||
@ -1,7 +1,5 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
@ -13,21 +11,16 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" Version="8.3.4" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.4" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.4" />
|
||||||
|
<PackageReference Include="DistributedLock.Redis" Version="1.0.2" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.DistributedLocking" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Account.Web.OpenIddict" Version="8.3.4" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="3.2.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Payment.Application\KonSoft.Payment.Application.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Payment.EntityFrameworkCore\KonSoft.Payment.EntityFrameworkCore.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Payment.HttpApi\KonSoft.Payment.HttpApi.csproj" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
using Microsoft.Extensions.Localization;
|
|
||||||
using KonSoft.Payment.Localization;
|
|
||||||
using Volo.Abp.DependencyInjection;
|
|
||||||
using Volo.Abp.Ui.Branding;
|
|
||||||
|
|
||||||
namespace KonSoft.Payment;
|
|
||||||
|
|
||||||
[Dependency(ReplaceServices = true)]
|
|
||||||
public class PaymentBrandingProvider : DefaultBrandingProvider
|
|
||||||
{
|
|
||||||
private IStringLocalizer<PaymentResource> _localizer;
|
|
||||||
|
|
||||||
public PaymentBrandingProvider(IStringLocalizer<PaymentResource> localizer)
|
|
||||||
{
|
|
||||||
_localizer = localizer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string AppName => _localizer["AppName"];
|
|
||||||
}
|
|
||||||
@ -2,32 +2,34 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Medallion.Threading;
|
||||||
|
using Medallion.Threading.Redis;
|
||||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Cors;
|
using Microsoft.AspNetCore.Cors;
|
||||||
using Microsoft.AspNetCore.Extensions.DependencyInjection;
|
using Microsoft.AspNetCore.DataProtection;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using KonSoft.Payment.EntityFrameworkCore;
|
using KonSoft.Payment.EntityFrameworkCore;
|
||||||
using KonSoft.Payment.MultiTenancy;
|
using KonSoft.Payment.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite;
|
using StackExchange.Redis;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling;
|
|
||||||
using Microsoft.OpenApi.Models;
|
using Microsoft.OpenApi.Models;
|
||||||
using OpenIddict.Validation.AspNetCore;
|
|
||||||
using Volo.Abp;
|
using Volo.Abp;
|
||||||
using Volo.Abp.Account;
|
using Volo.Abp.AspNetCore.Authentication.JwtBearer;
|
||||||
using Volo.Abp.Account.Web;
|
|
||||||
using Volo.Abp.AspNetCore.MultiTenancy;
|
|
||||||
using Volo.Abp.AspNetCore.Mvc;
|
using Volo.Abp.AspNetCore.Mvc;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
|
using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
|
|
||||||
using Volo.Abp.AspNetCore.Serilog;
|
using Volo.Abp.AspNetCore.Serilog;
|
||||||
using Volo.Abp.Autofac;
|
using Volo.Abp.Autofac;
|
||||||
|
using Volo.Abp.Caching;
|
||||||
|
using Volo.Abp.Caching.StackExchangeRedis;
|
||||||
|
using Volo.Abp.DistributedLocking;
|
||||||
|
using Volo.Abp.Identity;
|
||||||
using Volo.Abp.Localization;
|
using Volo.Abp.Localization;
|
||||||
using Volo.Abp.Modularity;
|
using Volo.Abp.Modularity;
|
||||||
using Volo.Abp.Security.Claims;
|
using Volo.Abp.Security.Claims;
|
||||||
using Volo.Abp.Swashbuckle;
|
using Volo.Abp.Swashbuckle;
|
||||||
using Volo.Abp.UI.Navigation.Urls;
|
|
||||||
using Volo.Abp.VirtualFileSystem;
|
using Volo.Abp.VirtualFileSystem;
|
||||||
|
|
||||||
namespace KonSoft.Payment;
|
namespace KonSoft.Payment;
|
||||||
@ -35,76 +37,35 @@ namespace KonSoft.Payment;
|
|||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(PaymentHttpApiModule),
|
typeof(PaymentHttpApiModule),
|
||||||
typeof(AbpAutofacModule),
|
typeof(AbpAutofacModule),
|
||||||
typeof(AbpAspNetCoreMultiTenancyModule),
|
typeof(AbpCachingStackExchangeRedisModule),
|
||||||
|
typeof(AbpDistributedLockingModule),
|
||||||
|
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
|
||||||
|
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
|
||||||
typeof(PaymentApplicationModule),
|
typeof(PaymentApplicationModule),
|
||||||
typeof(PaymentEntityFrameworkCoreModule),
|
typeof(PaymentEntityFrameworkCoreModule),
|
||||||
typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule),
|
|
||||||
typeof(AbpAccountWebOpenIddictModule),
|
|
||||||
typeof(AbpAspNetCoreSerilogModule),
|
typeof(AbpAspNetCoreSerilogModule),
|
||||||
typeof(AbpSwashbuckleModule)
|
typeof(AbpSwashbuckleModule)
|
||||||
)]
|
)]
|
||||||
public class PaymentHttpApiHostModule : AbpModule
|
public class PaymentHttpApiHostModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void PreConfigureServices(ServiceConfigurationContext context)
|
|
||||||
{
|
|
||||||
PreConfigure<OpenIddictBuilder>(builder =>
|
|
||||||
{
|
|
||||||
builder.AddValidation(options =>
|
|
||||||
{
|
|
||||||
options.AddAudiences("Payment");
|
|
||||||
options.UseLocalServer();
|
|
||||||
options.UseAspNetCore();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
var configuration = context.Services.GetConfiguration();
|
var configuration = context.Services.GetConfiguration();
|
||||||
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
||||||
|
|
||||||
ConfigureAuthentication(context);
|
|
||||||
ConfigureBundles();
|
|
||||||
ConfigureUrls(configuration);
|
|
||||||
ConfigureConventionalControllers();
|
ConfigureConventionalControllers();
|
||||||
|
ConfigureAuthentication(context, configuration);
|
||||||
|
ConfigureCache(configuration);
|
||||||
ConfigureVirtualFileSystem(context);
|
ConfigureVirtualFileSystem(context);
|
||||||
|
ConfigureDataProtection(context, configuration, hostingEnvironment);
|
||||||
|
ConfigureDistributedLocking(context, configuration);
|
||||||
ConfigureCors(context, configuration);
|
ConfigureCors(context, configuration);
|
||||||
ConfigureSwaggerServices(context, configuration);
|
ConfigureSwaggerServices(context, configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureAuthentication(ServiceConfigurationContext context)
|
private void ConfigureCache(IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme);
|
Configure<AbpDistributedCacheOptions>(options => { options.KeyPrefix = "Payment:"; });
|
||||||
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
|
||||||
{
|
|
||||||
options.IsDynamicClaimsEnabled = true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureBundles()
|
|
||||||
{
|
|
||||||
Configure<AbpBundlingOptions>(options =>
|
|
||||||
{
|
|
||||||
options.StyleBundles.Configure(
|
|
||||||
LeptonXLiteThemeBundles.Styles.Global,
|
|
||||||
bundle =>
|
|
||||||
{
|
|
||||||
bundle.AddFiles("/global-styles.css");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureUrls(IConfiguration configuration)
|
|
||||||
{
|
|
||||||
Configure<AppUrlOptions>(options =>
|
|
||||||
{
|
|
||||||
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
|
|
||||||
options.RedirectAllowedUrls.AddRange(configuration["App:RedirectAllowedUrls"]?.Split(',') ?? Array.Empty<string>());
|
|
||||||
|
|
||||||
options.Applications["Angular"].RootUrl = configuration["App:ClientUrl"];
|
|
||||||
options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password";
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
||||||
@ -139,6 +100,22 @@ public class PaymentHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||||
|
.AddAbpJwtBearer(options =>
|
||||||
|
{
|
||||||
|
options.Authority = configuration["AuthServer:Authority"];
|
||||||
|
options.RequireHttpsMetadata = configuration.GetValue<bool>("AuthServer:RequireHttpsMetadata");
|
||||||
|
options.Audience = "Payment";
|
||||||
|
});
|
||||||
|
|
||||||
|
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
||||||
|
{
|
||||||
|
options.IsDynamicClaimsEnabled = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddAbpSwaggerGenWithOAuth(
|
context.Services.AddAbpSwaggerGenWithOAuth(
|
||||||
@ -155,6 +132,30 @@ public class PaymentHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureDataProtection(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration,
|
||||||
|
IWebHostEnvironment hostingEnvironment)
|
||||||
|
{
|
||||||
|
var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("Payment");
|
||||||
|
if (!hostingEnvironment.IsDevelopment())
|
||||||
|
{
|
||||||
|
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "Payment-Protection-Keys");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConfigureDistributedLocking(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddSingleton<IDistributedLockProvider>(sp =>
|
||||||
|
{
|
||||||
|
var connection = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
return new RedisDistributedSynchronizationProvider(connection.GetDatabase());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddCors(options =>
|
context.Services.AddCors(options =>
|
||||||
@ -186,35 +187,29 @@ public class PaymentHttpApiHostModule : AbpModule
|
|||||||
}
|
}
|
||||||
|
|
||||||
app.UseAbpRequestLocalization();
|
app.UseAbpRequestLocalization();
|
||||||
|
|
||||||
if (!env.IsDevelopment())
|
|
||||||
{
|
|
||||||
app.UseErrorPage();
|
|
||||||
}
|
|
||||||
|
|
||||||
app.UseCorrelationId();
|
app.UseCorrelationId();
|
||||||
app.UseStaticFiles();
|
app.UseStaticFiles();
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
app.UseCors();
|
app.UseCors();
|
||||||
app.UseAuthentication();
|
app.UseAuthentication();
|
||||||
app.UseAbpOpenIddictValidation();
|
|
||||||
|
|
||||||
if (MultiTenancyConsts.IsEnabled)
|
if (MultiTenancyConsts.IsEnabled)
|
||||||
{
|
{
|
||||||
app.UseMultiTenancy();
|
app.UseMultiTenancy();
|
||||||
}
|
}
|
||||||
|
|
||||||
app.UseUnitOfWork();
|
app.UseUnitOfWork();
|
||||||
app.UseDynamicClaims();
|
app.UseDynamicClaims();
|
||||||
app.UseAuthorization();
|
app.UseAuthorization();
|
||||||
|
|
||||||
app.UseSwagger();
|
app.UseSwagger();
|
||||||
app.UseAbpSwaggerUI(c =>
|
app.UseAbpSwaggerUI(options =>
|
||||||
{
|
{
|
||||||
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Payment API");
|
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Payment API");
|
||||||
|
|
||||||
var configuration = context.ServiceProvider.GetRequiredService<IConfiguration>();
|
var configuration = context.GetConfiguration();
|
||||||
c.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
||||||
c.OAuthScopes("Payment");
|
options.OAuthScopes("Payment");
|
||||||
});
|
});
|
||||||
|
|
||||||
app.UseAuditing();
|
app.UseAuditing();
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
"windowsAuthentication": false,
|
"windowsAuthentication": false,
|
||||||
"anonymousAuthentication": true,
|
"anonymousAuthentication": true,
|
||||||
"iisExpress": {
|
"iisExpress": {
|
||||||
"applicationUrl": "https://localhost:44355",
|
"applicationUrl": "https://localhost:44326",
|
||||||
"sslPort": 44355
|
"sslPort": 44326
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profiles": {
|
"profiles": {
|
||||||
@ -18,7 +18,7 @@
|
|||||||
"KonSoft.Payment.HttpApi.Host": {
|
"KonSoft.Payment.HttpApi.Host": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"applicationUrl": "https://localhost:44355",
|
"applicationUrl": "https://localhost:44326",
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
aliases: {
|
|
||||||
|
|
||||||
},
|
|
||||||
clean: [
|
|
||||||
|
|
||||||
],
|
|
||||||
mappings: {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@ -1,18 +1,19 @@
|
|||||||
{
|
{
|
||||||
"App": {
|
"App": {
|
||||||
"SelfUrl": "https://localhost:44355",
|
"CorsOrigins": "https://*.Payment.com,https://localhost:44361"
|
||||||
"CorsOrigins": "https://*.Payment.com",
|
|
||||||
"RedirectAllowedUrls": ""
|
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"Default": "Host=localhost;Port=5432;Database=Payment;User ID=root;Password=myPassword;"
|
"Default": "Host=localhost;Port=5432;Database=Payment;User ID=root;Password=myPassword;"
|
||||||
},
|
},
|
||||||
|
"Redis": {
|
||||||
|
"Configuration": "127.0.0.1"
|
||||||
|
},
|
||||||
"AuthServer": {
|
"AuthServer": {
|
||||||
"Authority": "https://localhost:44355",
|
"Authority": "https://localhost:44317",
|
||||||
"RequireHttpsMetadata": false,
|
"RequireHttpsMetadata": true,
|
||||||
"SwaggerClientId": "Payment_Swagger"
|
"SwaggerClientId": "Payment_Swagger"
|
||||||
},
|
},
|
||||||
"StringEncryption": {
|
"StringEncryption": {
|
||||||
"DefaultPassPhrase": "ex1X6Pe2UOTsR6Tv"
|
"DefaultPassPhrase": "X8BiQDb1AVYqDATC"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "1.0.0",
|
|
||||||
"name": "my-app",
|
|
||||||
"private": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.4"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
/* Your Global Styles */
|
|
||||||
|
|
||||||
:root .lpx-brand-logo {
|
|
||||||
--lpx-logo: url('/images/logo/leptonx/logo-light.png');
|
|
||||||
--lpx-logo-icon: url('/images/logo/leptonx/logo-light-thumbnail.png');
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@ -1,7 +1,5 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
@ -13,21 +11,16 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" Version="8.3.4" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.4" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.4" />
|
||||||
|
<PackageReference Include="DistributedLock.Redis" Version="1.0.2" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.DistributedLocking" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Account.Web.OpenIddict" Version="8.3.4" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="3.2.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Report.Application\KonSoft.Report.Application.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Report.EntityFrameworkCore\KonSoft.Report.EntityFrameworkCore.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Report.HttpApi\KonSoft.Report.HttpApi.csproj" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
"windowsAuthentication": false,
|
"windowsAuthentication": false,
|
||||||
"anonymousAuthentication": true,
|
"anonymousAuthentication": true,
|
||||||
"iisExpress": {
|
"iisExpress": {
|
||||||
"applicationUrl": "https://localhost:44340",
|
"applicationUrl": "https://localhost:44320",
|
||||||
"sslPort": 44340
|
"sslPort": 44320
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profiles": {
|
"profiles": {
|
||||||
@ -18,7 +18,7 @@
|
|||||||
"KonSoft.Report.HttpApi.Host": {
|
"KonSoft.Report.HttpApi.Host": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"applicationUrl": "https://localhost:44340",
|
"applicationUrl": "https://localhost:44320",
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
using Microsoft.Extensions.Localization;
|
|
||||||
using KonSoft.Report.Localization;
|
|
||||||
using Volo.Abp.DependencyInjection;
|
|
||||||
using Volo.Abp.Ui.Branding;
|
|
||||||
|
|
||||||
namespace KonSoft.Report;
|
|
||||||
|
|
||||||
[Dependency(ReplaceServices = true)]
|
|
||||||
public class ReportBrandingProvider : DefaultBrandingProvider
|
|
||||||
{
|
|
||||||
private IStringLocalizer<ReportResource> _localizer;
|
|
||||||
|
|
||||||
public ReportBrandingProvider(IStringLocalizer<ReportResource> localizer)
|
|
||||||
{
|
|
||||||
_localizer = localizer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string AppName => _localizer["AppName"];
|
|
||||||
}
|
|
||||||
@ -2,32 +2,34 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Medallion.Threading;
|
||||||
|
using Medallion.Threading.Redis;
|
||||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Cors;
|
using Microsoft.AspNetCore.Cors;
|
||||||
using Microsoft.AspNetCore.Extensions.DependencyInjection;
|
using Microsoft.AspNetCore.DataProtection;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using KonSoft.Report.EntityFrameworkCore;
|
using KonSoft.Report.EntityFrameworkCore;
|
||||||
using KonSoft.Report.MultiTenancy;
|
using KonSoft.Report.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite;
|
using StackExchange.Redis;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling;
|
|
||||||
using Microsoft.OpenApi.Models;
|
using Microsoft.OpenApi.Models;
|
||||||
using OpenIddict.Validation.AspNetCore;
|
|
||||||
using Volo.Abp;
|
using Volo.Abp;
|
||||||
using Volo.Abp.Account;
|
using Volo.Abp.AspNetCore.Authentication.JwtBearer;
|
||||||
using Volo.Abp.Account.Web;
|
|
||||||
using Volo.Abp.AspNetCore.MultiTenancy;
|
|
||||||
using Volo.Abp.AspNetCore.Mvc;
|
using Volo.Abp.AspNetCore.Mvc;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
|
using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
|
|
||||||
using Volo.Abp.AspNetCore.Serilog;
|
using Volo.Abp.AspNetCore.Serilog;
|
||||||
using Volo.Abp.Autofac;
|
using Volo.Abp.Autofac;
|
||||||
|
using Volo.Abp.Caching;
|
||||||
|
using Volo.Abp.Caching.StackExchangeRedis;
|
||||||
|
using Volo.Abp.DistributedLocking;
|
||||||
|
using Volo.Abp.Identity;
|
||||||
using Volo.Abp.Localization;
|
using Volo.Abp.Localization;
|
||||||
using Volo.Abp.Modularity;
|
using Volo.Abp.Modularity;
|
||||||
using Volo.Abp.Security.Claims;
|
using Volo.Abp.Security.Claims;
|
||||||
using Volo.Abp.Swashbuckle;
|
using Volo.Abp.Swashbuckle;
|
||||||
using Volo.Abp.UI.Navigation.Urls;
|
|
||||||
using Volo.Abp.VirtualFileSystem;
|
using Volo.Abp.VirtualFileSystem;
|
||||||
|
|
||||||
namespace KonSoft.Report;
|
namespace KonSoft.Report;
|
||||||
@ -35,76 +37,35 @@ namespace KonSoft.Report;
|
|||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(ReportHttpApiModule),
|
typeof(ReportHttpApiModule),
|
||||||
typeof(AbpAutofacModule),
|
typeof(AbpAutofacModule),
|
||||||
typeof(AbpAspNetCoreMultiTenancyModule),
|
typeof(AbpCachingStackExchangeRedisModule),
|
||||||
|
typeof(AbpDistributedLockingModule),
|
||||||
|
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
|
||||||
|
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
|
||||||
typeof(ReportApplicationModule),
|
typeof(ReportApplicationModule),
|
||||||
typeof(ReportEntityFrameworkCoreModule),
|
typeof(ReportEntityFrameworkCoreModule),
|
||||||
typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule),
|
|
||||||
typeof(AbpAccountWebOpenIddictModule),
|
|
||||||
typeof(AbpAspNetCoreSerilogModule),
|
typeof(AbpAspNetCoreSerilogModule),
|
||||||
typeof(AbpSwashbuckleModule)
|
typeof(AbpSwashbuckleModule)
|
||||||
)]
|
)]
|
||||||
public class ReportHttpApiHostModule : AbpModule
|
public class ReportHttpApiHostModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void PreConfigureServices(ServiceConfigurationContext context)
|
|
||||||
{
|
|
||||||
PreConfigure<OpenIddictBuilder>(builder =>
|
|
||||||
{
|
|
||||||
builder.AddValidation(options =>
|
|
||||||
{
|
|
||||||
options.AddAudiences("Report");
|
|
||||||
options.UseLocalServer();
|
|
||||||
options.UseAspNetCore();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
var configuration = context.Services.GetConfiguration();
|
var configuration = context.Services.GetConfiguration();
|
||||||
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
||||||
|
|
||||||
ConfigureAuthentication(context);
|
|
||||||
ConfigureBundles();
|
|
||||||
ConfigureUrls(configuration);
|
|
||||||
ConfigureConventionalControllers();
|
ConfigureConventionalControllers();
|
||||||
|
ConfigureAuthentication(context, configuration);
|
||||||
|
ConfigureCache(configuration);
|
||||||
ConfigureVirtualFileSystem(context);
|
ConfigureVirtualFileSystem(context);
|
||||||
|
ConfigureDataProtection(context, configuration, hostingEnvironment);
|
||||||
|
ConfigureDistributedLocking(context, configuration);
|
||||||
ConfigureCors(context, configuration);
|
ConfigureCors(context, configuration);
|
||||||
ConfigureSwaggerServices(context, configuration);
|
ConfigureSwaggerServices(context, configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureAuthentication(ServiceConfigurationContext context)
|
private void ConfigureCache(IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme);
|
Configure<AbpDistributedCacheOptions>(options => { options.KeyPrefix = "Report:"; });
|
||||||
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
|
||||||
{
|
|
||||||
options.IsDynamicClaimsEnabled = true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureBundles()
|
|
||||||
{
|
|
||||||
Configure<AbpBundlingOptions>(options =>
|
|
||||||
{
|
|
||||||
options.StyleBundles.Configure(
|
|
||||||
LeptonXLiteThemeBundles.Styles.Global,
|
|
||||||
bundle =>
|
|
||||||
{
|
|
||||||
bundle.AddFiles("/global-styles.css");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureUrls(IConfiguration configuration)
|
|
||||||
{
|
|
||||||
Configure<AppUrlOptions>(options =>
|
|
||||||
{
|
|
||||||
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
|
|
||||||
options.RedirectAllowedUrls.AddRange(configuration["App:RedirectAllowedUrls"]?.Split(',') ?? Array.Empty<string>());
|
|
||||||
|
|
||||||
options.Applications["Angular"].RootUrl = configuration["App:ClientUrl"];
|
|
||||||
options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password";
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
||||||
@ -139,6 +100,22 @@ public class ReportHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||||
|
.AddAbpJwtBearer(options =>
|
||||||
|
{
|
||||||
|
options.Authority = configuration["AuthServer:Authority"];
|
||||||
|
options.RequireHttpsMetadata = configuration.GetValue<bool>("AuthServer:RequireHttpsMetadata");
|
||||||
|
options.Audience = "Report";
|
||||||
|
});
|
||||||
|
|
||||||
|
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
||||||
|
{
|
||||||
|
options.IsDynamicClaimsEnabled = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddAbpSwaggerGenWithOAuth(
|
context.Services.AddAbpSwaggerGenWithOAuth(
|
||||||
@ -155,6 +132,30 @@ public class ReportHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureDataProtection(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration,
|
||||||
|
IWebHostEnvironment hostingEnvironment)
|
||||||
|
{
|
||||||
|
var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("Report");
|
||||||
|
if (!hostingEnvironment.IsDevelopment())
|
||||||
|
{
|
||||||
|
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "Report-Protection-Keys");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConfigureDistributedLocking(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddSingleton<IDistributedLockProvider>(sp =>
|
||||||
|
{
|
||||||
|
var connection = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
return new RedisDistributedSynchronizationProvider(connection.GetDatabase());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddCors(options =>
|
context.Services.AddCors(options =>
|
||||||
@ -186,35 +187,29 @@ public class ReportHttpApiHostModule : AbpModule
|
|||||||
}
|
}
|
||||||
|
|
||||||
app.UseAbpRequestLocalization();
|
app.UseAbpRequestLocalization();
|
||||||
|
|
||||||
if (!env.IsDevelopment())
|
|
||||||
{
|
|
||||||
app.UseErrorPage();
|
|
||||||
}
|
|
||||||
|
|
||||||
app.UseCorrelationId();
|
app.UseCorrelationId();
|
||||||
app.UseStaticFiles();
|
app.UseStaticFiles();
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
app.UseCors();
|
app.UseCors();
|
||||||
app.UseAuthentication();
|
app.UseAuthentication();
|
||||||
app.UseAbpOpenIddictValidation();
|
|
||||||
|
|
||||||
if (MultiTenancyConsts.IsEnabled)
|
if (MultiTenancyConsts.IsEnabled)
|
||||||
{
|
{
|
||||||
app.UseMultiTenancy();
|
app.UseMultiTenancy();
|
||||||
}
|
}
|
||||||
|
|
||||||
app.UseUnitOfWork();
|
app.UseUnitOfWork();
|
||||||
app.UseDynamicClaims();
|
app.UseDynamicClaims();
|
||||||
app.UseAuthorization();
|
app.UseAuthorization();
|
||||||
|
|
||||||
app.UseSwagger();
|
app.UseSwagger();
|
||||||
app.UseAbpSwaggerUI(c =>
|
app.UseAbpSwaggerUI(options =>
|
||||||
{
|
{
|
||||||
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Report API");
|
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Report API");
|
||||||
|
|
||||||
var configuration = context.ServiceProvider.GetRequiredService<IConfiguration>();
|
var configuration = context.GetConfiguration();
|
||||||
c.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
||||||
c.OAuthScopes("Report");
|
options.OAuthScopes("Report");
|
||||||
});
|
});
|
||||||
|
|
||||||
app.UseAuditing();
|
app.UseAuditing();
|
||||||
|
|||||||
@ -1,11 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
aliases: {
|
|
||||||
|
|
||||||
},
|
|
||||||
clean: [
|
|
||||||
|
|
||||||
],
|
|
||||||
mappings: {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@ -1,18 +1,19 @@
|
|||||||
{
|
{
|
||||||
"App": {
|
"App": {
|
||||||
"SelfUrl": "https://localhost:44340",
|
"CorsOrigins": "https://*.Report.com,https://localhost:44387"
|
||||||
"CorsOrigins": "https://*.Report.com",
|
|
||||||
"RedirectAllowedUrls": ""
|
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"Default": "Host=localhost;Port=5432;Database=Report;User ID=root;Password=myPassword;"
|
"Default": "Host=localhost;Port=5432;Database=Report;User ID=root;Password=myPassword;"
|
||||||
},
|
},
|
||||||
|
"Redis": {
|
||||||
|
"Configuration": "127.0.0.1"
|
||||||
|
},
|
||||||
"AuthServer": {
|
"AuthServer": {
|
||||||
"Authority": "https://localhost:44340",
|
"Authority": "https://localhost:44379",
|
||||||
"RequireHttpsMetadata": false,
|
"RequireHttpsMetadata": true,
|
||||||
"SwaggerClientId": "Report_Swagger"
|
"SwaggerClientId": "Report_Swagger"
|
||||||
},
|
},
|
||||||
"StringEncryption": {
|
"StringEncryption": {
|
||||||
"DefaultPassPhrase": "aRnRGh9BVWKdfQXb"
|
"DefaultPassPhrase": "CnofoVnefiZOTqgF"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "1.0.0",
|
|
||||||
"name": "my-app",
|
|
||||||
"private": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.4"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
/* Your Global Styles */
|
|
||||||
|
|
||||||
:root .lpx-brand-logo {
|
|
||||||
--lpx-logo: url('/images/logo/leptonx/logo-light.png');
|
|
||||||
--lpx-logo-icon: url('/images/logo/leptonx/logo-light-thumbnail.png');
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@ -1,7 +1,5 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
@ -13,21 +11,16 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" Version="8.3.4" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.4" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.4" />
|
||||||
|
<PackageReference Include="DistributedLock.Redis" Version="1.0.2" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" Version="8.3.4" />
|
||||||
|
<PackageReference Include="Volo.Abp.DistributedLocking" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Swashbuckle" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Account.Web.OpenIddict" Version="8.3.4" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="3.2.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.TenantManagement.Application\KonSoft.TenantManagement.Application.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.TenantManagement.EntityFrameworkCore\KonSoft.TenantManagement.EntityFrameworkCore.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.TenantManagement.HttpApi\KonSoft.TenantManagement.HttpApi.csproj" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
"windowsAuthentication": false,
|
"windowsAuthentication": false,
|
||||||
"anonymousAuthentication": true,
|
"anonymousAuthentication": true,
|
||||||
"iisExpress": {
|
"iisExpress": {
|
||||||
"applicationUrl": "https://localhost:44316",
|
"applicationUrl": "https://localhost:44348",
|
||||||
"sslPort": 44316
|
"sslPort": 44348
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profiles": {
|
"profiles": {
|
||||||
@ -18,7 +18,7 @@
|
|||||||
"KonSoft.TenantManagement.HttpApi.Host": {
|
"KonSoft.TenantManagement.HttpApi.Host": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"applicationUrl": "https://localhost:44316",
|
"applicationUrl": "https://localhost:44348",
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
using Microsoft.Extensions.Localization;
|
|
||||||
using KonSoft.TenantManagement.Localization;
|
|
||||||
using Volo.Abp.DependencyInjection;
|
|
||||||
using Volo.Abp.Ui.Branding;
|
|
||||||
|
|
||||||
namespace KonSoft.TenantManagement;
|
|
||||||
|
|
||||||
[Dependency(ReplaceServices = true)]
|
|
||||||
public class TenantManagementBrandingProvider : DefaultBrandingProvider
|
|
||||||
{
|
|
||||||
private IStringLocalizer<TenantManagementResource> _localizer;
|
|
||||||
|
|
||||||
public TenantManagementBrandingProvider(IStringLocalizer<TenantManagementResource> localizer)
|
|
||||||
{
|
|
||||||
_localizer = localizer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string AppName => _localizer["AppName"];
|
|
||||||
}
|
|
||||||
@ -2,32 +2,34 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Medallion.Threading;
|
||||||
|
using Medallion.Threading.Redis;
|
||||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Cors;
|
using Microsoft.AspNetCore.Cors;
|
||||||
using Microsoft.AspNetCore.Extensions.DependencyInjection;
|
using Microsoft.AspNetCore.DataProtection;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using KonSoft.TenantManagement.EntityFrameworkCore;
|
using KonSoft.TenantManagement.EntityFrameworkCore;
|
||||||
using KonSoft.TenantManagement.MultiTenancy;
|
using KonSoft.TenantManagement.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite;
|
using StackExchange.Redis;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling;
|
|
||||||
using Microsoft.OpenApi.Models;
|
using Microsoft.OpenApi.Models;
|
||||||
using OpenIddict.Validation.AspNetCore;
|
|
||||||
using Volo.Abp;
|
using Volo.Abp;
|
||||||
using Volo.Abp.Account;
|
using Volo.Abp.AspNetCore.Authentication.JwtBearer;
|
||||||
using Volo.Abp.Account.Web;
|
|
||||||
using Volo.Abp.AspNetCore.MultiTenancy;
|
|
||||||
using Volo.Abp.AspNetCore.Mvc;
|
using Volo.Abp.AspNetCore.Mvc;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
|
using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy;
|
||||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
|
|
||||||
using Volo.Abp.AspNetCore.Serilog;
|
using Volo.Abp.AspNetCore.Serilog;
|
||||||
using Volo.Abp.Autofac;
|
using Volo.Abp.Autofac;
|
||||||
|
using Volo.Abp.Caching;
|
||||||
|
using Volo.Abp.Caching.StackExchangeRedis;
|
||||||
|
using Volo.Abp.DistributedLocking;
|
||||||
|
using Volo.Abp.Identity;
|
||||||
using Volo.Abp.Localization;
|
using Volo.Abp.Localization;
|
||||||
using Volo.Abp.Modularity;
|
using Volo.Abp.Modularity;
|
||||||
using Volo.Abp.Security.Claims;
|
using Volo.Abp.Security.Claims;
|
||||||
using Volo.Abp.Swashbuckle;
|
using Volo.Abp.Swashbuckle;
|
||||||
using Volo.Abp.UI.Navigation.Urls;
|
|
||||||
using Volo.Abp.VirtualFileSystem;
|
using Volo.Abp.VirtualFileSystem;
|
||||||
|
|
||||||
namespace KonSoft.TenantManagement;
|
namespace KonSoft.TenantManagement;
|
||||||
@ -35,76 +37,35 @@ namespace KonSoft.TenantManagement;
|
|||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(TenantManagementHttpApiModule),
|
typeof(TenantManagementHttpApiModule),
|
||||||
typeof(AbpAutofacModule),
|
typeof(AbpAutofacModule),
|
||||||
typeof(AbpAspNetCoreMultiTenancyModule),
|
typeof(AbpCachingStackExchangeRedisModule),
|
||||||
|
typeof(AbpDistributedLockingModule),
|
||||||
|
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
|
||||||
|
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
|
||||||
typeof(TenantManagementApplicationModule),
|
typeof(TenantManagementApplicationModule),
|
||||||
typeof(TenantManagementEntityFrameworkCoreModule),
|
typeof(TenantManagementEntityFrameworkCoreModule),
|
||||||
typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule),
|
|
||||||
typeof(AbpAccountWebOpenIddictModule),
|
|
||||||
typeof(AbpAspNetCoreSerilogModule),
|
typeof(AbpAspNetCoreSerilogModule),
|
||||||
typeof(AbpSwashbuckleModule)
|
typeof(AbpSwashbuckleModule)
|
||||||
)]
|
)]
|
||||||
public class TenantManagementHttpApiHostModule : AbpModule
|
public class TenantManagementHttpApiHostModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void PreConfigureServices(ServiceConfigurationContext context)
|
|
||||||
{
|
|
||||||
PreConfigure<OpenIddictBuilder>(builder =>
|
|
||||||
{
|
|
||||||
builder.AddValidation(options =>
|
|
||||||
{
|
|
||||||
options.AddAudiences("TenantManagement");
|
|
||||||
options.UseLocalServer();
|
|
||||||
options.UseAspNetCore();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
var configuration = context.Services.GetConfiguration();
|
var configuration = context.Services.GetConfiguration();
|
||||||
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
var hostingEnvironment = context.Services.GetHostingEnvironment();
|
||||||
|
|
||||||
ConfigureAuthentication(context);
|
|
||||||
ConfigureBundles();
|
|
||||||
ConfigureUrls(configuration);
|
|
||||||
ConfigureConventionalControllers();
|
ConfigureConventionalControllers();
|
||||||
|
ConfigureAuthentication(context, configuration);
|
||||||
|
ConfigureCache(configuration);
|
||||||
ConfigureVirtualFileSystem(context);
|
ConfigureVirtualFileSystem(context);
|
||||||
|
ConfigureDataProtection(context, configuration, hostingEnvironment);
|
||||||
|
ConfigureDistributedLocking(context, configuration);
|
||||||
ConfigureCors(context, configuration);
|
ConfigureCors(context, configuration);
|
||||||
ConfigureSwaggerServices(context, configuration);
|
ConfigureSwaggerServices(context, configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureAuthentication(ServiceConfigurationContext context)
|
private void ConfigureCache(IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme);
|
Configure<AbpDistributedCacheOptions>(options => { options.KeyPrefix = "TenantManagement:"; });
|
||||||
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
|
||||||
{
|
|
||||||
options.IsDynamicClaimsEnabled = true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureBundles()
|
|
||||||
{
|
|
||||||
Configure<AbpBundlingOptions>(options =>
|
|
||||||
{
|
|
||||||
options.StyleBundles.Configure(
|
|
||||||
LeptonXLiteThemeBundles.Styles.Global,
|
|
||||||
bundle =>
|
|
||||||
{
|
|
||||||
bundle.AddFiles("/global-styles.css");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfigureUrls(IConfiguration configuration)
|
|
||||||
{
|
|
||||||
Configure<AppUrlOptions>(options =>
|
|
||||||
{
|
|
||||||
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
|
|
||||||
options.RedirectAllowedUrls.AddRange(configuration["App:RedirectAllowedUrls"]?.Split(',') ?? Array.Empty<string>());
|
|
||||||
|
|
||||||
options.Applications["Angular"].RootUrl = configuration["App:ClientUrl"];
|
|
||||||
options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password";
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
|
||||||
@ -139,6 +100,22 @@ public class TenantManagementHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||||
|
.AddAbpJwtBearer(options =>
|
||||||
|
{
|
||||||
|
options.Authority = configuration["AuthServer:Authority"];
|
||||||
|
options.RequireHttpsMetadata = configuration.GetValue<bool>("AuthServer:RequireHttpsMetadata");
|
||||||
|
options.Audience = "TenantManagement";
|
||||||
|
});
|
||||||
|
|
||||||
|
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
|
||||||
|
{
|
||||||
|
options.IsDynamicClaimsEnabled = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddAbpSwaggerGenWithOAuth(
|
context.Services.AddAbpSwaggerGenWithOAuth(
|
||||||
@ -155,6 +132,30 @@ public class TenantManagementHttpApiHostModule : AbpModule
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureDataProtection(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration,
|
||||||
|
IWebHostEnvironment hostingEnvironment)
|
||||||
|
{
|
||||||
|
var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("TenantManagement");
|
||||||
|
if (!hostingEnvironment.IsDevelopment())
|
||||||
|
{
|
||||||
|
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "TenantManagement-Protection-Keys");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConfigureDistributedLocking(
|
||||||
|
ServiceConfigurationContext context,
|
||||||
|
IConfiguration configuration)
|
||||||
|
{
|
||||||
|
context.Services.AddSingleton<IDistributedLockProvider>(sp =>
|
||||||
|
{
|
||||||
|
var connection = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!);
|
||||||
|
return new RedisDistributedSynchronizationProvider(connection.GetDatabase());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
context.Services.AddCors(options =>
|
context.Services.AddCors(options =>
|
||||||
@ -186,35 +187,29 @@ public class TenantManagementHttpApiHostModule : AbpModule
|
|||||||
}
|
}
|
||||||
|
|
||||||
app.UseAbpRequestLocalization();
|
app.UseAbpRequestLocalization();
|
||||||
|
|
||||||
if (!env.IsDevelopment())
|
|
||||||
{
|
|
||||||
app.UseErrorPage();
|
|
||||||
}
|
|
||||||
|
|
||||||
app.UseCorrelationId();
|
app.UseCorrelationId();
|
||||||
app.UseStaticFiles();
|
app.UseStaticFiles();
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
app.UseCors();
|
app.UseCors();
|
||||||
app.UseAuthentication();
|
app.UseAuthentication();
|
||||||
app.UseAbpOpenIddictValidation();
|
|
||||||
|
|
||||||
if (MultiTenancyConsts.IsEnabled)
|
if (MultiTenancyConsts.IsEnabled)
|
||||||
{
|
{
|
||||||
app.UseMultiTenancy();
|
app.UseMultiTenancy();
|
||||||
}
|
}
|
||||||
|
|
||||||
app.UseUnitOfWork();
|
app.UseUnitOfWork();
|
||||||
app.UseDynamicClaims();
|
app.UseDynamicClaims();
|
||||||
app.UseAuthorization();
|
app.UseAuthorization();
|
||||||
|
|
||||||
app.UseSwagger();
|
app.UseSwagger();
|
||||||
app.UseAbpSwaggerUI(c =>
|
app.UseAbpSwaggerUI(options =>
|
||||||
{
|
{
|
||||||
c.SwaggerEndpoint("/swagger/v1/swagger.json", "TenantManagement API");
|
options.SwaggerEndpoint("/swagger/v1/swagger.json", "TenantManagement API");
|
||||||
|
|
||||||
var configuration = context.ServiceProvider.GetRequiredService<IConfiguration>();
|
var configuration = context.GetConfiguration();
|
||||||
c.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
|
||||||
c.OAuthScopes("TenantManagement");
|
options.OAuthScopes("TenantManagement");
|
||||||
});
|
});
|
||||||
|
|
||||||
app.UseAuditing();
|
app.UseAuditing();
|
||||||
|
|||||||
@ -1,11 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
aliases: {
|
|
||||||
|
|
||||||
},
|
|
||||||
clean: [
|
|
||||||
|
|
||||||
],
|
|
||||||
mappings: {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@ -1,18 +1,19 @@
|
|||||||
{
|
{
|
||||||
"App": {
|
"App": {
|
||||||
"SelfUrl": "https://localhost:44316",
|
"CorsOrigins": "https://*.TenantManagement.com,https://localhost:44332"
|
||||||
"CorsOrigins": "https://*.TenantManagement.com",
|
|
||||||
"RedirectAllowedUrls": ""
|
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"Default": "Host=localhost;Port=5432;Database=TenantManagement;User ID=root;Password=myPassword;"
|
"Default": "Host=localhost;Port=5432;Database=TenantManagement;User ID=root;Password=myPassword;"
|
||||||
},
|
},
|
||||||
|
"Redis": {
|
||||||
|
"Configuration": "127.0.0.1"
|
||||||
|
},
|
||||||
"AuthServer": {
|
"AuthServer": {
|
||||||
"Authority": "https://localhost:44316",
|
"Authority": "https://localhost:44316",
|
||||||
"RequireHttpsMetadata": false,
|
"RequireHttpsMetadata": true,
|
||||||
"SwaggerClientId": "TenantManagement_Swagger"
|
"SwaggerClientId": "TenantManagement_Swagger"
|
||||||
},
|
},
|
||||||
"StringEncryption": {
|
"StringEncryption": {
|
||||||
"DefaultPassPhrase": "FUFDAYrpYDaw4Tsl"
|
"DefaultPassPhrase": "NR0sazB47i10Gw6H"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "1.0.0",
|
|
||||||
"name": "my-app",
|
|
||||||
"private": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.4"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
/* Your Global Styles */
|
|
||||||
|
|
||||||
:root .lpx-brand-logo {
|
|
||||||
--lpx-logo: url('/images/logo/leptonx/logo-light.png');
|
|
||||||
--lpx-logo-icon: url('/images/logo/leptonx/logo-light-thumbnail.png');
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@ -1,6 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
@ -8,10 +6,6 @@
|
|||||||
<RootNamespace>KonSoft.Admin</RootNamespace>
|
<RootNamespace>KonSoft.Admin</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Domain.Shared\KonSoft.Admin.Domain.Shared.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Volo.Abp.ObjectExtending" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.ObjectExtending" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="8.3.4" />
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
@ -8,11 +6,6 @@
|
|||||||
<RootNamespace>KonSoft.Admin</RootNamespace>
|
<RootNamespace>KonSoft.Admin</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Domain\KonSoft.Admin.Domain.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Application.Contracts\KonSoft.Admin.Application.Contracts.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Volo.Abp.Account.Application" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Account.Application" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Identity.Application" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Identity.Application" Version="8.3.4" />
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
@ -8,10 +6,6 @@
|
|||||||
<RootNamespace>KonSoft.Admin</RootNamespace>
|
<RootNamespace>KonSoft.Admin</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Domain.Shared\KonSoft.Admin.Domain.Shared.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Volo.Abp.Emailing" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Emailing" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Identity.Domain" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Identity.Domain" Version="8.3.4" />
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
@ -9,7 +7,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Domain\KonSoft.Admin.Domain.csproj" />
|
|
||||||
<PackageReference Include="Volo.Abp.EntityFrameworkCore.PostgreSql" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.EntityFrameworkCore.PostgreSql" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="8.3.4" />
|
||||||
|
|||||||
@ -1,17 +1,11 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<RootNamespace>KonSoft.Admin</RootNamespace>
|
<RootNamespace>KonSoft.Admin</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Application.Contracts\KonSoft.Admin.Application.Contracts.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Volo.Abp.Account.HttpApi.Client" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Account.HttpApi.Client" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="8.3.4" />
|
||||||
|
|||||||
@ -1,17 +1,11 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<RootNamespace>KonSoft.Admin</RootNamespace>
|
<RootNamespace>KonSoft.Admin</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Application.Contracts\KonSoft.Admin.Application.Contracts.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Identity.HttpApi" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Identity.HttpApi" Version="8.3.4" />
|
||||||
|
|||||||
@ -1,18 +1,11 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<RootNamespace>KonSoft.Admin</RootNamespace>
|
<RootNamespace>KonSoft.Admin</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\src\KonSoft.Admin.Application\KonSoft.Admin.Application.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Domain.Tests\KonSoft.Admin.Domain.Tests.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
@ -12,9 +10,4 @@
|
|||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\src\KonSoft.Admin.Domain\KonSoft.Admin.Domain.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.TestBase\KonSoft.Admin.TestBase.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
@ -9,8 +7,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\src\KonSoft.Admin.EntityFrameworkCore\KonSoft.Admin.EntityFrameworkCore.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Admin.Application.Tests\KonSoft.Admin.Application.Tests.csproj" />
|
|
||||||
<PackageReference Include="Volo.Abp.EntityFrameworkCore.Sqlite" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.EntityFrameworkCore.Sqlite" Version="8.3.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,6 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Volo.Abp.Http.Client.IdentityModel" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Http.Client.IdentityModel" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
||||||
<ProjectReference Include="..\..\src\KonSoft.Admin.HttpApi.Client\KonSoft.Admin.HttpApi.Client.csproj" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
|
|||||||
@ -1,17 +1,11 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<RootNamespace>KonSoft.Dispatch</RootNamespace>
|
<RootNamespace>KonSoft.Dispatch</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Dispatch.Domain.Shared\KonSoft.Dispatch.Domain.Shared.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Volo.Abp.ObjectExtending" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.ObjectExtending" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="8.3.4" />
|
||||||
|
|||||||
@ -1,18 +1,11 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<RootNamespace>KonSoft.Dispatch</RootNamespace>
|
<RootNamespace>KonSoft.Dispatch</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\KonSoft.Dispatch.Domain\KonSoft.Dispatch.Domain.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Dispatch.Application.Contracts\KonSoft.Dispatch.Application.Contracts.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Volo.Abp.Account.Application" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Account.Application" Version="8.3.4" />
|
||||||
<PackageReference Include="Volo.Abp.Identity.Application" Version="8.3.4" />
|
<PackageReference Include="Volo.Abp.Identity.Application" Version="8.3.4" />
|
||||||
|
|||||||
@ -1,51 +0,0 @@
|
|||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
using Microsoft.Extensions.Hosting;
|
|
||||||
using KonSoft.Dispatch.Data;
|
|
||||||
using Serilog;
|
|
||||||
using Volo.Abp;
|
|
||||||
using Volo.Abp.Data;
|
|
||||||
|
|
||||||
namespace KonSoft.Dispatch.DbMigrator;
|
|
||||||
|
|
||||||
public class DbMigratorHostedService : IHostedService
|
|
||||||
{
|
|
||||||
private readonly IHostApplicationLifetime _hostApplicationLifetime;
|
|
||||||
private readonly IConfiguration _configuration;
|
|
||||||
|
|
||||||
public DbMigratorHostedService(IHostApplicationLifetime hostApplicationLifetime, IConfiguration configuration)
|
|
||||||
{
|
|
||||||
_hostApplicationLifetime = hostApplicationLifetime;
|
|
||||||
_configuration = configuration;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task StartAsync(CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
using (var application = await AbpApplicationFactory.CreateAsync<DispatchDbMigratorModule>(options =>
|
|
||||||
{
|
|
||||||
options.Services.ReplaceConfiguration(_configuration);
|
|
||||||
options.UseAutofac();
|
|
||||||
options.Services.AddLogging(c => c.AddSerilog());
|
|
||||||
options.AddDataMigrationEnvironment();
|
|
||||||
}))
|
|
||||||
{
|
|
||||||
await application.InitializeAsync();
|
|
||||||
|
|
||||||
await application
|
|
||||||
.ServiceProvider
|
|
||||||
.GetRequiredService<DispatchDbMigrationService>()
|
|
||||||
.MigrateAsync();
|
|
||||||
|
|
||||||
await application.ShutdownAsync();
|
|
||||||
|
|
||||||
_hostApplicationLifetime.StopApplication();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Task StopAsync(CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
using KonSoft.Dispatch.EntityFrameworkCore;
|
|
||||||
using Volo.Abp.Autofac;
|
|
||||||
using Volo.Abp.Caching;
|
|
||||||
using Volo.Abp.Caching.StackExchangeRedis;
|
|
||||||
using Volo.Abp.Modularity;
|
|
||||||
|
|
||||||
namespace KonSoft.Dispatch.DbMigrator;
|
|
||||||
|
|
||||||
[DependsOn(
|
|
||||||
typeof(AbpAutofacModule),
|
|
||||||
typeof(AbpCachingStackExchangeRedisModule),
|
|
||||||
typeof(DispatchEntityFrameworkCoreModule),
|
|
||||||
typeof(DispatchApplicationContractsModule)
|
|
||||||
)]
|
|
||||||
public class DispatchDbMigratorModule : AbpModule
|
|
||||||
{
|
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
|
||||||
{
|
|
||||||
Configure<AbpDistributedCacheOptions>(options => { options.KeyPrefix = "Dispatch:"; });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,46 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<Import Project="..\..\common.props" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Remove="appsettings.json" />
|
|
||||||
<Content Include="appsettings.json">
|
|
||||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<None Remove="appsettings.secrets.json" />
|
|
||||||
<Content Include="appsettings.secrets.json">
|
|
||||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
|
|
||||||
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
|
|
||||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
|
||||||
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.0" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Volo.Abp.Autofac" Version="8.3.4" />
|
|
||||||
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" Version="8.3.4" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Dispatch.Application.Contracts\KonSoft.Dispatch.Application.Contracts.csproj" />
|
|
||||||
<ProjectReference Include="..\KonSoft.Dispatch.EntityFrameworkCore\KonSoft.Dispatch.EntityFrameworkCore.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Remove="Logs\**" />
|
|
||||||
<Content Remove="Logs\**" />
|
|
||||||
<EmbeddedResource Remove="Logs\**" />
|
|
||||||
<None Remove="Logs\**" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
using System.IO;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
using Microsoft.Extensions.Hosting;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Serilog;
|
|
||||||
using Serilog.Events;
|
|
||||||
|
|
||||||
namespace KonSoft.Dispatch.DbMigrator;
|
|
||||||
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
static async Task Main(string[] args)
|
|
||||||
{
|
|
||||||
Log.Logger = new LoggerConfiguration()
|
|
||||||
.MinimumLevel.Information()
|
|
||||||
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
|
|
||||||
.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning)
|
|
||||||
#if DEBUG
|
|
||||||
.MinimumLevel.Override("KonSoft.Dispatch", LogEventLevel.Debug)
|
|
||||||
#else
|
|
||||||
.MinimumLevel.Override("KonSoft.Dispatch", LogEventLevel.Information)
|
|
||||||
#endif
|
|
||||||
.Enrich.FromLogContext()
|
|
||||||
.WriteTo.Async(c => c.File("Logs/logs.txt"))
|
|
||||||
.WriteTo.Async(c => c.Console())
|
|
||||||
.CreateLogger();
|
|
||||||
|
|
||||||
await CreateHostBuilder(args).RunConsoleAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
|
||||||
Host.CreateDefaultBuilder(args)
|
|
||||||
.AddAppSettingsSecretsJson()
|
|
||||||
.ConfigureLogging((context, logging) => logging.ClearProviders())
|
|
||||||
.ConfigureServices((hostContext, services) =>
|
|
||||||
{
|
|
||||||
services.AddHostedService<DbMigratorHostedService>();
|
|
||||||
});
|
|
||||||
}
|
|
||||||