mirror of
https://github.com/nsnail/NetAdmin.git
synced 2025-04-24 07:02:51 +08:00
refactor: ♻️ 框架&业务代码分离 (#185)
Co-authored-by: tk <fiyne1a@dingtalk.com>
This commit is contained in:
parent
072cc1e491
commit
13ba536df2
1
.github/workflows/README.md
vendored
Normal file
1
.github/workflows/README.md
vendored
Normal file
@ -0,0 +1 @@
|
||||
github workflows
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -397,6 +397,7 @@ FodyWeavers.xsd
|
||||
# JetBrains Rider
|
||||
*.sln.iml
|
||||
.idea/
|
||||
!src/backend/CloudCode.DataGrip/.idea
|
||||
|
||||
# User Define
|
||||
dist/
|
||||
|
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -1,6 +1,6 @@
|
||||
[submodule "refs/Furion"]
|
||||
path = refs/Furion
|
||||
url = https://github.com/nsnail/Furion.git
|
||||
[submodule "refs/Gurion"]
|
||||
path = refs/Gurion
|
||||
url = https://github.com/nsnail/Gurion.git
|
||||
[submodule "refs/ns-ext"]
|
||||
path = refs/ns-ext
|
||||
url = https://github.com/nsnail/ns-ext.git
|
||||
|
@ -1,6 +1,7 @@
|
||||
<!-- 注意此文件名大小写不可变更 -->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<DefineConstants>DBTYPE_SQLITE</DefineConstants>
|
||||
<SolutionDir>$(MSBuildThisFileDirectory)</SolutionDir>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)/build/minver.targets" />
|
||||
|
45
NetAdmin.sln
45
NetAdmin.sln
@ -31,6 +31,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{BB0B
|
||||
1.git.pull.request.ps1 = scripts/1.git.pull.request.ps1
|
||||
2.git.release.ps1 = scripts/2.git.release.ps1
|
||||
3.git.recreate.branch.ps1 = scripts/3.git.recreate.branch.ps1
|
||||
4.git.del.obsolete.tags.ps1 = scripts/4.git.del.obsolete.tags.ps1
|
||||
clean.ln.csx = scripts/clean.ln.csx
|
||||
code.clean.csx = scripts/code.clean.csx
|
||||
code.clean.ps1 = scripts/code.clean.ps1
|
||||
@ -39,13 +40,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{BB0B
|
||||
gen.id.linq = scripts/gen.id.linq
|
||||
gen.ln.cmd = scripts/gen.ln.cmd
|
||||
gen.resx.tt = scripts/gen.resx.tt
|
||||
git.del.obsolete.tags.ps1 = scripts/git.del.obsolete.tags.ps1
|
||||
image.optimize.csx = scripts/image.optimize.csx
|
||||
install.as.tpl.ps1 = scripts/install.as.tpl.ps1
|
||||
rename.csx = scripts/rename.csx
|
||||
resharper.full.ps1 = scripts/resharper.full.ps1
|
||||
switcher.freesql.json = scripts/switcher.freesql.json
|
||||
switcher.furion.json = scripts/switcher.furion.json
|
||||
switcher.gurion.json = scripts/switcher.gurion.json
|
||||
switcher.nsext.json = scripts/switcher.nsext.json
|
||||
switcher.ps1 = scripts/switcher.ps1
|
||||
sync.sln.files.csx = scripts/sync.sln.files.csx
|
||||
@ -57,6 +57,7 @@ EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{3C6F049E-3EE8-4D66-9AFF-E8A369032487}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
nightly-build.yml = .github/workflows/nightly-build.yml
|
||||
README.md = .github/workflows/README.md
|
||||
release.yml = .github/workflows/release.yml
|
||||
EndProjectSection
|
||||
EndProject
|
||||
@ -99,10 +100,25 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "01.frameworks", "01.framewo
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "04.tests", "04.tests", "{89260294-80FC-49F1-8D73-AECD39AFF2B7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.AdmServer.Tests", "src\backend\NetAdmin.AdmServer.Tests\NetAdmin.AdmServer.Tests.csproj", "{C7F27698-DA05-4ACD-B0D7-4791B3972002}"
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "05.tools", "05.tools", "{79409163-5006-405D-AC96-406FA0AD77B7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "src\backend\UnitTests\UnitTests.csproj", "{C7F27698-DA05-4ACD-B0D7-4791B3972002}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.Tests", "src\backend\NetAdmin.Tests\NetAdmin.Tests.csproj", "{00604162-C444-478B-B773-3AB23C856CA7}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{E80A1018-C354-4A26-9029-8847BB9DA864}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
README.md = docker/README.md
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.SysComponent.Domain", "src\backend\NetAdmin.SysComponent.Domain\NetAdmin.SysComponent.Domain.csproj", "{51D6E603-0749-4A11-A78C-9E5BB127E03A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.AdmServer.Domain", "src\backend\NetAdmin.AdmServer.Domain\NetAdmin.AdmServer.Domain.csproj", "{932520DF-D312-415A-A128-1117F8221D68}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.AdmServer.Infrastructure", "src\backend\NetAdmin.AdmServer.Infrastructure\NetAdmin.AdmServer.Infrastructure.csproj", "{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.SysComponent.Infrastructure", "src\backend\NetAdmin.SysComponent.Infrastructure\NetAdmin.SysComponent.Infrastructure.csproj", "{48EE6FC4-B64A-40D3-B889-36837E067880}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -164,6 +180,22 @@ Global
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{932520DF-D312-415A-A128-1117F8221D68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{932520DF-D312-415A-A128-1117F8221D68}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{932520DF-D312-415A-A128-1117F8221D68}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{932520DF-D312-415A-A128-1117F8221D68}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{48EE6FC4-B64A-40D3-B889-36837E067880}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{48EE6FC4-B64A-40D3-B889-36837E067880}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{48EE6FC4-B64A-40D3-B889-36837E067880}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{48EE6FC4-B64A-40D3-B889-36837E067880}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{4DAF9366-855F-46BB-AE4C-660C92FA0697} = {C84EB5A0-37AD-4B17-A51E-E36888C4441E}
|
||||
@ -180,10 +212,15 @@ Global
|
||||
{CE895E44-EEC3-4ECE-A56A-8A82E7D863E3} = {12AE5B4B-CB1A-498E-83B8-04E201E31D86}
|
||||
{89260294-80FC-49F1-8D73-AECD39AFF2B7} = {4DAF9366-855F-46BB-AE4C-660C92FA0697}
|
||||
{C7F27698-DA05-4ACD-B0D7-4791B3972002} = {89260294-80FC-49F1-8D73-AECD39AFF2B7}
|
||||
{3C6F049E-3EE8-4D66-9AFF-E8A369032487} = {1129FE25-466B-4F4F-85FC-3752664245E1}
|
||||
{00604162-C444-478B-B773-3AB23C856CA7} = {D9C3EF66-2757-473D-A26B-54FD08DA203F}
|
||||
{34650E82-D257-46DA-BD6B-DE307113347B} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
||||
{19872A4C-3C9A-4C62-A33B-74F5B8D6F77C} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
||||
{C2CC1596-3BEE-43EA-A9BE-4EDE5716296C} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
||||
{79409163-5006-405D-AC96-406FA0AD77B7} = {4DAF9366-855F-46BB-AE4C-660C92FA0697}
|
||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
||||
{932520DF-D312-415A-A128-1117F8221D68} = {12AE5B4B-CB1A-498E-83B8-04E201E31D86}
|
||||
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA} = {12AE5B4B-CB1A-498E-83B8-04E201E31D86}
|
||||
{48EE6FC4-B64A-40D3-B889-36837E067880} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
||||
{3C6F049E-3EE8-4D66-9AFF-E8A369032487} = {1129FE25-466B-4F4F-85FC-3752664245E1}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
@ -27,6 +27,256 @@
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_ACCESSOR_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_RECORD_FIELD_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AD/@EntryIndexedValue">AD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AE/@EntryIndexedValue">AE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AF/@EntryIndexedValue">AF</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AG/@EntryIndexedValue">AG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AI/@EntryIndexedValue">AI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AL/@EntryIndexedValue">AL</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AM/@EntryIndexedValue">AM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AO/@EntryIndexedValue">AO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AQ/@EntryIndexedValue">AQ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AR/@EntryIndexedValue">AR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AS/@EntryIndexedValue">AS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AT/@EntryIndexedValue">AT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AU/@EntryIndexedValue">AU</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AW/@EntryIndexedValue">AW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AX/@EntryIndexedValue">AX</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=AZ/@EntryIndexedValue">AZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BA/@EntryIndexedValue">BA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BB/@EntryIndexedValue">BB</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BD/@EntryIndexedValue">BD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BE/@EntryIndexedValue">BE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BF/@EntryIndexedValue">BF</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BG/@EntryIndexedValue">BG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BH/@EntryIndexedValue">BH</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BI/@EntryIndexedValue">BI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BJ/@EntryIndexedValue">BJ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BL/@EntryIndexedValue">BL</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BM/@EntryIndexedValue">BM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BN/@EntryIndexedValue">BN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BO/@EntryIndexedValue">BO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BQ/@EntryIndexedValue">BQ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BR/@EntryIndexedValue">BR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BS/@EntryIndexedValue">BS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BT/@EntryIndexedValue">BT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BV/@EntryIndexedValue">BV</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BW/@EntryIndexedValue">BW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BY/@EntryIndexedValue">BY</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BZ/@EntryIndexedValue">BZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CA/@EntryIndexedValue">CA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CC/@EntryIndexedValue">CC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CD/@EntryIndexedValue">CD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CF/@EntryIndexedValue">CF</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CG/@EntryIndexedValue">CG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CH/@EntryIndexedValue">CH</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CI/@EntryIndexedValue">CI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CK/@EntryIndexedValue">CK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CL/@EntryIndexedValue">CL</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CM/@EntryIndexedValue">CM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CN/@EntryIndexedValue">CN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CO/@EntryIndexedValue">CO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CR/@EntryIndexedValue">CR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CU/@EntryIndexedValue">CU</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CV/@EntryIndexedValue">CV</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CW/@EntryIndexedValue">CW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CX/@EntryIndexedValue">CX</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CY/@EntryIndexedValue">CY</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CZ/@EntryIndexedValue">CZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DE/@EntryIndexedValue">DE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DJ/@EntryIndexedValue">DJ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DK/@EntryIndexedValue">DK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DM/@EntryIndexedValue">DM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DO/@EntryIndexedValue">DO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DZ/@EntryIndexedValue">DZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=EC/@EntryIndexedValue">EC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=EE/@EntryIndexedValue">EE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=EG/@EntryIndexedValue">EG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=EH/@EntryIndexedValue">EH</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ER/@EntryIndexedValue">ER</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ES/@EntryIndexedValue">ES</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ET/@EntryIndexedValue">ET</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FI/@EntryIndexedValue">FI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FJ/@EntryIndexedValue">FJ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FK/@EntryIndexedValue">FK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FM/@EntryIndexedValue">FM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FO/@EntryIndexedValue">FO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FR/@EntryIndexedValue">FR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GA/@EntryIndexedValue">GA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GB/@EntryIndexedValue">GB</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GD/@EntryIndexedValue">GD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GE/@EntryIndexedValue">GE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GF/@EntryIndexedValue">GF</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GG/@EntryIndexedValue">GG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GH/@EntryIndexedValue">GH</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GI/@EntryIndexedValue">GI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GL/@EntryIndexedValue">GL</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GM/@EntryIndexedValue">GM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GN/@EntryIndexedValue">GN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GP/@EntryIndexedValue">GP</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GQ/@EntryIndexedValue">GQ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GR/@EntryIndexedValue">GR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GS/@EntryIndexedValue">GS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GT/@EntryIndexedValue">GT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GU/@EntryIndexedValue">GU</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GW/@EntryIndexedValue">GW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GY/@EntryIndexedValue">GY</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HK/@EntryIndexedValue">HK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HM/@EntryIndexedValue">HM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HN/@EntryIndexedValue">HN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HR/@EntryIndexedValue">HR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HT/@EntryIndexedValue">HT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HU/@EntryIndexedValue">HU</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ID/@EntryIndexedValue">ID</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IE/@EntryIndexedValue">IE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IL/@EntryIndexedValue">IL</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IM/@EntryIndexedValue">IM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IN/@EntryIndexedValue">IN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IO/@EntryIndexedValue">IO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IQ/@EntryIndexedValue">IQ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IR/@EntryIndexedValue">IR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IS/@EntryIndexedValue">IS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IT/@EntryIndexedValue">IT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=JE/@EntryIndexedValue">JE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=JM/@EntryIndexedValue">JM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=JO/@EntryIndexedValue">JO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=JP/@EntryIndexedValue">JP</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KE/@EntryIndexedValue">KE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KG/@EntryIndexedValue">KG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KH/@EntryIndexedValue">KH</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KI/@EntryIndexedValue">KI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KM/@EntryIndexedValue">KM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KN/@EntryIndexedValue">KN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KP/@EntryIndexedValue">KP</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KR/@EntryIndexedValue">KR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KW/@EntryIndexedValue">KW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KY/@EntryIndexedValue">KY</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KZ/@EntryIndexedValue">KZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LA/@EntryIndexedValue">LA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LB/@EntryIndexedValue">LB</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LC/@EntryIndexedValue">LC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LI/@EntryIndexedValue">LI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LK/@EntryIndexedValue">LK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LR/@EntryIndexedValue">LR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LS/@EntryIndexedValue">LS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LT/@EntryIndexedValue">LT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LU/@EntryIndexedValue">LU</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LV/@EntryIndexedValue">LV</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=LY/@EntryIndexedValue">LY</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MA/@EntryIndexedValue">MA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MC/@EntryIndexedValue">MC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MD/@EntryIndexedValue">MD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ME/@EntryIndexedValue">ME</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MF/@EntryIndexedValue">MF</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MG/@EntryIndexedValue">MG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MH/@EntryIndexedValue">MH</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MK/@EntryIndexedValue">MK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ML/@EntryIndexedValue">ML</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MM/@EntryIndexedValue">MM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MN/@EntryIndexedValue">MN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MO/@EntryIndexedValue">MO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MP/@EntryIndexedValue">MP</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MQ/@EntryIndexedValue">MQ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MR/@EntryIndexedValue">MR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MS/@EntryIndexedValue">MS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MT/@EntryIndexedValue">MT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MU/@EntryIndexedValue">MU</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MV/@EntryIndexedValue">MV</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MW/@EntryIndexedValue">MW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MX/@EntryIndexedValue">MX</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MY/@EntryIndexedValue">MY</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MZ/@EntryIndexedValue">MZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NA/@EntryIndexedValue">NA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NC/@EntryIndexedValue">NC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NE/@EntryIndexedValue">NE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NF/@EntryIndexedValue">NF</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NG/@EntryIndexedValue">NG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NI/@EntryIndexedValue">NI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NL/@EntryIndexedValue">NL</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NO/@EntryIndexedValue">NO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NP/@EntryIndexedValue">NP</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NR/@EntryIndexedValue">NR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NU/@EntryIndexedValue">NU</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NZ/@EntryIndexedValue">NZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=OM/@EntryIndexedValue">OM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=OTP/@EntryIndexedValue">OTP</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PA/@EntryIndexedValue">PA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PE/@EntryIndexedValue">PE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PF/@EntryIndexedValue">PF</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PG/@EntryIndexedValue">PG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PH/@EntryIndexedValue">PH</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PK/@EntryIndexedValue">PK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PL/@EntryIndexedValue">PL</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PM/@EntryIndexedValue">PM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PN/@EntryIndexedValue">PN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PR/@EntryIndexedValue">PR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PS/@EntryIndexedValue">PS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PT/@EntryIndexedValue">PT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PW/@EntryIndexedValue">PW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PY/@EntryIndexedValue">PY</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=QA/@EntryIndexedValue">QA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RE/@EntryIndexedValue">RE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RO/@EntryIndexedValue">RO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RS/@EntryIndexedValue">RS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RU/@EntryIndexedValue">RU</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RW/@EntryIndexedValue">RW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SA/@EntryIndexedValue">SA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SB/@EntryIndexedValue">SB</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SC/@EntryIndexedValue">SC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SD/@EntryIndexedValue">SD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SE/@EntryIndexedValue">SE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SG/@EntryIndexedValue">SG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SH/@EntryIndexedValue">SH</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SI/@EntryIndexedValue">SI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SJ/@EntryIndexedValue">SJ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SK/@EntryIndexedValue">SK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SL/@EntryIndexedValue">SL</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SM/@EntryIndexedValue">SM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SN/@EntryIndexedValue">SN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SO/@EntryIndexedValue">SO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SR/@EntryIndexedValue">SR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SS/@EntryIndexedValue">SS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ST/@EntryIndexedValue">ST</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SV/@EntryIndexedValue">SV</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SX/@EntryIndexedValue">SX</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SY/@EntryIndexedValue">SY</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SZ/@EntryIndexedValue">SZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TC/@EntryIndexedValue">TC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TD/@EntryIndexedValue">TD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TF/@EntryIndexedValue">TF</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TG/@EntryIndexedValue">TG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TH/@EntryIndexedValue">TH</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TJ/@EntryIndexedValue">TJ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TK/@EntryIndexedValue">TK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TL/@EntryIndexedValue">TL</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TM/@EntryIndexedValue">TM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TN/@EntryIndexedValue">TN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TO/@EntryIndexedValue">TO</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TR/@EntryIndexedValue">TR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TT/@EntryIndexedValue">TT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TV/@EntryIndexedValue">TV</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TW/@EntryIndexedValue">TW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TZ/@EntryIndexedValue">TZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=UA/@EntryIndexedValue">UA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=UG/@EntryIndexedValue">UG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=UM/@EntryIndexedValue">UM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=US/@EntryIndexedValue">US</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=UY/@EntryIndexedValue">UY</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=UZ/@EntryIndexedValue">UZ</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VA/@EntryIndexedValue">VA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VC/@EntryIndexedValue">VC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VE/@EntryIndexedValue">VE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VG/@EntryIndexedValue">VG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VI/@EntryIndexedValue">VI</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VN/@EntryIndexedValue">VN</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VU/@EntryIndexedValue">VU</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=WF/@EntryIndexedValue">WF</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=WS/@EntryIndexedValue">WS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=YE/@EntryIndexedValue">YE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=YT/@EntryIndexedValue">YT</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ZA/@EntryIndexedValue">ZA</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ZM/@EntryIndexedValue">ZM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ZW/@EntryIndexedValue">ZW</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=15b5b1f1_002D457c_002D4ca6_002Db278_002D5615aedc07d3/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static readonly fields (private)"><ElementKinds><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy></s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=236f7aa5_002D7b06_002D43ca_002Dbf2a_002D9b31bfcff09a/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Private" Description="Constant fields (private)"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="AA_BB" /></Policy></s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=669e5282_002Dfb4b_002D4e90_002D91e7_002D07d269d04b60/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Constant fields (not private)"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /></Policy></s:String>
|
||||
|
249
assets/res/CountryCodes.ln
Normal file
249
assets/res/CountryCodes.ln
Normal file
@ -0,0 +1,249 @@
|
||||
不丹
|
||||
东帝汶
|
||||
中国
|
||||
中非
|
||||
丹麦
|
||||
乌克兰
|
||||
乌兹别克斯坦
|
||||
乌干达
|
||||
乌拉圭
|
||||
乍得
|
||||
也门
|
||||
亚美尼亚
|
||||
以色列
|
||||
伊拉克
|
||||
伊朗
|
||||
伯利兹
|
||||
佛得角
|
||||
俄罗斯
|
||||
保加利亚
|
||||
克罗地亚
|
||||
关岛
|
||||
冈比亚
|
||||
冰岛
|
||||
几内亚
|
||||
几内亚比绍
|
||||
列支敦士登
|
||||
刚果共和国
|
||||
刚果民主共和国
|
||||
利比亚
|
||||
利比里亚
|
||||
加拿大
|
||||
加纳
|
||||
加蓬
|
||||
匈牙利
|
||||
北马其顿
|
||||
北马里亚纳群岛
|
||||
南乔治亚和南桑威奇群岛
|
||||
南极洲
|
||||
南苏丹
|
||||
南非
|
||||
博茨瓦纳
|
||||
卡塔尔
|
||||
卢旺达
|
||||
卢森堡
|
||||
印度
|
||||
印度尼西亚
|
||||
危地马拉
|
||||
厄瓜多尔
|
||||
厄立特里亚
|
||||
叙利亚
|
||||
古巴
|
||||
台湾
|
||||
吉尔吉斯斯坦
|
||||
吉布提
|
||||
哈萨克斯坦
|
||||
哥伦比亚
|
||||
哥斯达黎加
|
||||
喀麦隆
|
||||
图瓦卢
|
||||
土库曼斯坦
|
||||
土耳其
|
||||
圣卢西亚
|
||||
圣基茨和尼维斯
|
||||
圣多美和普林西比
|
||||
圣巴泰勒米
|
||||
圣文森特和格林纳丁斯
|
||||
圣皮埃尔和密克隆
|
||||
圣诞岛
|
||||
圣赫勒拿
|
||||
圣马力诺
|
||||
圭亚那
|
||||
坦桑尼亚
|
||||
埃及
|
||||
埃塞俄比亚
|
||||
基里巴斯
|
||||
塔吉克斯坦
|
||||
塞内加尔
|
||||
塞尔维亚
|
||||
塞拉利昂
|
||||
塞浦路斯
|
||||
塞舌尔
|
||||
墨西哥
|
||||
多哥
|
||||
多米尼克
|
||||
多米尼加
|
||||
奥兰
|
||||
奥地利
|
||||
委内瑞拉
|
||||
孟加拉国
|
||||
安哥拉
|
||||
安圭拉
|
||||
安提瓜和巴布达
|
||||
安道尔
|
||||
密克罗尼西亚联邦
|
||||
尼加拉瓜
|
||||
尼日利亚
|
||||
尼日尔
|
||||
尼泊尔
|
||||
巴勒斯坦
|
||||
巴哈马
|
||||
巴基斯坦
|
||||
巴巴多斯
|
||||
巴布亚新几内亚
|
||||
巴拉圭
|
||||
巴拿马
|
||||
巴林
|
||||
巴西
|
||||
布基纳法索
|
||||
布隆迪
|
||||
布韦岛
|
||||
希腊
|
||||
帕劳
|
||||
库克群岛
|
||||
库拉索
|
||||
开曼群岛
|
||||
德国
|
||||
意大利
|
||||
所罗门群岛
|
||||
托克劳
|
||||
拉脱维亚
|
||||
挪威
|
||||
捷克
|
||||
摩尔多瓦
|
||||
摩洛哥
|
||||
摩纳哥
|
||||
文莱
|
||||
斐济
|
||||
斯威士兰
|
||||
斯洛伐克
|
||||
斯洛文尼亚
|
||||
斯瓦尔巴和扬马延
|
||||
斯里兰卡
|
||||
新加坡
|
||||
新喀里多尼亚
|
||||
新西兰
|
||||
日本
|
||||
智利
|
||||
朝鲜
|
||||
柬埔寨
|
||||
根西
|
||||
格林纳达
|
||||
格陵兰
|
||||
格鲁吉亚
|
||||
梵蒂冈
|
||||
比利时
|
||||
毛里塔尼亚
|
||||
毛里求斯
|
||||
汤加
|
||||
沙特阿拉伯
|
||||
法国
|
||||
法属南部和南极领地
|
||||
法属圣马丁
|
||||
法属圭亚那
|
||||
法属波利尼西亚
|
||||
法罗群岛
|
||||
波兰
|
||||
波多黎各
|
||||
波黑
|
||||
泰国
|
||||
泽西
|
||||
津巴布韦
|
||||
洪都拉斯
|
||||
海地
|
||||
澳大利亚
|
||||
澳门
|
||||
爱尔兰
|
||||
爱沙尼亚
|
||||
牙买加
|
||||
特克斯和凯科斯群岛
|
||||
特立尼达和多巴哥
|
||||
玻利维亚
|
||||
瑙鲁
|
||||
瑞典
|
||||
瑞士
|
||||
瓜德罗普
|
||||
瓦利斯和富图纳
|
||||
瓦努阿图
|
||||
留尼汪
|
||||
白俄罗斯
|
||||
百慕大
|
||||
皮特凯恩群岛
|
||||
直布罗陀
|
||||
福克兰群岛
|
||||
科威特
|
||||
科摩罗
|
||||
科特迪瓦
|
||||
科科斯基林群岛
|
||||
秘鲁
|
||||
突尼斯
|
||||
立陶宛
|
||||
索马里
|
||||
约旦
|
||||
纳米比亚
|
||||
纽埃
|
||||
缅甸
|
||||
罗马尼亚
|
||||
美国
|
||||
美国本土外小岛屿
|
||||
美属维尔京群岛
|
||||
美属萨摩亚
|
||||
老挝
|
||||
肯尼亚
|
||||
芬兰
|
||||
苏丹
|
||||
苏里南
|
||||
英国
|
||||
英属印度洋领地
|
||||
英属维尔京群岛
|
||||
荷兰
|
||||
荷兰加勒比区
|
||||
荷属圣马丁
|
||||
莫桑比克
|
||||
莱索托
|
||||
菲律宾
|
||||
萨尔瓦多
|
||||
萨摩亚
|
||||
葡萄牙
|
||||
蒙古
|
||||
蒙特塞拉特
|
||||
西撒哈拉
|
||||
西班牙
|
||||
诺福克岛
|
||||
贝宁
|
||||
赞比亚
|
||||
赤道几内亚
|
||||
赫德岛和麦克唐纳群岛
|
||||
越南
|
||||
阿塞拜疆
|
||||
阿富汗
|
||||
阿尔及利亚
|
||||
阿尔巴尼亚
|
||||
阿曼
|
||||
阿根廷
|
||||
阿联酋
|
||||
阿鲁巴
|
||||
韩国
|
||||
香港
|
||||
马尔代夫
|
||||
马恩岛
|
||||
马拉维
|
||||
马提尼克
|
||||
马来西亚
|
||||
马约特
|
||||
马绍尔群岛
|
||||
马耳他
|
||||
马达加斯加
|
||||
马里
|
||||
黎巴嫩
|
||||
黑山
|
0
assets/res/NetAdmin.AdmServer.Fields.ln
Normal file
0
assets/res/NetAdmin.AdmServer.Fields.ln
Normal file
0
assets/res/NetAdmin.AdmServer.Statements.ln
Normal file
0
assets/res/NetAdmin.AdmServer.Statements.ln
Normal file
70
assets/res/NetAdmin.Fields.ln
Normal file
70
assets/res/NetAdmin.Fields.ln
Normal file
@ -0,0 +1,70 @@
|
||||
不为其中之一
|
||||
不以什么开始
|
||||
不以什么结束
|
||||
不包含
|
||||
不排序
|
||||
不等于
|
||||
丧偶
|
||||
中专
|
||||
中共党员
|
||||
为其中之一
|
||||
以什么开始
|
||||
以什么结束
|
||||
保密
|
||||
保密
|
||||
信息
|
||||
倒序排序
|
||||
共青团员
|
||||
出生证
|
||||
初中
|
||||
包含
|
||||
博士
|
||||
博士后
|
||||
同步数据库结构
|
||||
外国人居留证
|
||||
外部错误
|
||||
大专
|
||||
大于
|
||||
大于等于
|
||||
女
|
||||
女
|
||||
宕机
|
||||
小于
|
||||
小于等于
|
||||
小学
|
||||
已婚
|
||||
并且
|
||||
成功
|
||||
或者
|
||||
护照
|
||||
插入种子数据
|
||||
无效操作
|
||||
无效输入
|
||||
日期范围
|
||||
未处理异常
|
||||
未婚
|
||||
本科
|
||||
比较数据库结构
|
||||
港澳台通行证
|
||||
男
|
||||
男
|
||||
硕士
|
||||
示例导出
|
||||
离异
|
||||
等于
|
||||
等于
|
||||
等于
|
||||
管理模块
|
||||
系统模块
|
||||
结果非预期
|
||||
群众
|
||||
自定义
|
||||
范围
|
||||
警告
|
||||
调试
|
||||
跟踪
|
||||
身份证
|
||||
错误
|
||||
随机排序
|
||||
顺序排序
|
||||
高中
|
21
assets/res/NetAdmin.Statements.ln
Normal file
21
assets/res/NetAdmin.Statements.ln
Normal file
@ -0,0 +1,21 @@
|
||||
6位数字
|
||||
8位以上数字字母组合
|
||||
XML注释文件不存在
|
||||
中文姓名
|
||||
事务已回滚
|
||||
事务已提交
|
||||
区号电话号码分机号
|
||||
参数格式不正确
|
||||
开始事务
|
||||
支付宝账号
|
||||
数据库同步开始
|
||||
数据库结构同步完成
|
||||
无效端口号
|
||||
无效证件号码
|
||||
时间表达式
|
||||
用户名不能是手机号码
|
||||
用户名长度4位以上
|
||||
请求对象不能为空
|
||||
邀请码不正确
|
||||
配置文件初始化完毕
|
||||
非JSON字符串
|
@ -2,66 +2,29 @@
|
||||
上次执行状态
|
||||
上次执行耗时
|
||||
下次执行时间
|
||||
不为其中之一
|
||||
不以什么开始
|
||||
不以什么结束
|
||||
不包含
|
||||
不排序
|
||||
不等于
|
||||
丧偶
|
||||
中专
|
||||
中共党员
|
||||
为其中之一
|
||||
人工审核
|
||||
以什么开始
|
||||
以什么结束
|
||||
作业名称
|
||||
作业状态
|
||||
保密
|
||||
信息
|
||||
倒序排序
|
||||
全部数据
|
||||
公告
|
||||
共青团员
|
||||
出生证
|
||||
创建时间
|
||||
初中
|
||||
删除
|
||||
包含
|
||||
博士
|
||||
博士后
|
||||
发送失败
|
||||
同步数据库结构
|
||||
响应体
|
||||
响应状态码
|
||||
唯一编码
|
||||
备注
|
||||
外国人居留证
|
||||
外部错误
|
||||
大专
|
||||
大于
|
||||
大于等于
|
||||
女
|
||||
字典内容导出
|
||||
宕机
|
||||
客户端IP
|
||||
小于
|
||||
小于等于
|
||||
小学
|
||||
已发送
|
||||
已婚
|
||||
已校验
|
||||
已读
|
||||
并且
|
||||
成功
|
||||
或者
|
||||
所属角色
|
||||
所属部门
|
||||
手机
|
||||
手机号
|
||||
执行耗时
|
||||
执行计划
|
||||
护照
|
||||
指定部门数据
|
||||
按钮
|
||||
排序
|
||||
@ -69,66 +32,41 @@
|
||||
接口导出
|
||||
接口描述
|
||||
接口路径
|
||||
插入种子数据
|
||||
操作系统
|
||||
数据范围
|
||||
无效操作
|
||||
无效输入
|
||||
无限权限
|
||||
日期范围
|
||||
是否启用
|
||||
显示仪表板
|
||||
最后登录时间
|
||||
未处理异常
|
||||
未婚
|
||||
未读
|
||||
本人数据
|
||||
本科
|
||||
本部门和下级部门数据
|
||||
本部门数据
|
||||
框架
|
||||
比较数据库结构
|
||||
注册
|
||||
消息主题
|
||||
消息摘要
|
||||
消息类型
|
||||
港澳台通行证
|
||||
用户代理
|
||||
用户名
|
||||
用户导出
|
||||
电子邮箱
|
||||
男
|
||||
登录
|
||||
登录名
|
||||
登录日志导出
|
||||
硕士
|
||||
示例导出
|
||||
离异
|
||||
空闲
|
||||
站内信导出
|
||||
等于
|
||||
等待发送
|
||||
管理模块
|
||||
系统模块
|
||||
绑定手机号码
|
||||
结果非预期
|
||||
群众
|
||||
自定义
|
||||
范围
|
||||
菜单
|
||||
角色名称
|
||||
角色导出
|
||||
解绑手机号码
|
||||
警告
|
||||
计划作业导出
|
||||
计划作业执行记录导出
|
||||
请求方式
|
||||
请求日志导出
|
||||
调试
|
||||
跟踪
|
||||
跟踪标识
|
||||
跟踪编号
|
||||
身份证
|
||||
运行
|
||||
通知
|
||||
邮箱号
|
||||
@ -137,11 +75,7 @@
|
||||
配置导出
|
||||
重设密码
|
||||
链接
|
||||
错误
|
||||
随机排序
|
||||
项值
|
||||
项名
|
||||
顺序排序
|
||||
高中
|
||||
默认角色
|
||||
默认部门
|
@ -1,17 +1,9 @@
|
||||
1分钟内只能发送1次
|
||||
6位数字
|
||||
8位以上数字字母组合
|
||||
XML注释文件不存在
|
||||
中文姓名
|
||||
事务已回滚
|
||||
事务已提交
|
||||
人机校验请求不能为空
|
||||
人机验证未通过
|
||||
作业名称不能为空
|
||||
允许的文件大小
|
||||
允许的文件格式
|
||||
区号电话号码分机号
|
||||
参数格式不正确
|
||||
唯一编码不能为空
|
||||
图标代码不能为空
|
||||
图标名称不能为空
|
||||
@ -19,55 +11,61 @@ XML注释文件不存在
|
||||
字典名称不能为空
|
||||
字典目录不存在
|
||||
字典目录编号不能为空
|
||||
字典目录编号不能为空
|
||||
字典编码不能为空
|
||||
学历不正确
|
||||
密码不能为空
|
||||
密码不能为空
|
||||
密码不能为空
|
||||
密码不能为空
|
||||
已处理完毕
|
||||
已处理完毕
|
||||
已处理完毕
|
||||
并发冲突_请稍后重试
|
||||
开始事务
|
||||
性别不正确
|
||||
手机号码不正确
|
||||
手机号码不能为空
|
||||
接口编码不存在
|
||||
支付宝账号
|
||||
政治面貌不正确
|
||||
数据库同步开始
|
||||
数据库服务器时钟偏移
|
||||
数据库结构同步完成
|
||||
文件不能为空
|
||||
新密码不能为空
|
||||
新手机号码验证码不正确
|
||||
无效端口号
|
||||
无效证件号码
|
||||
旧密码不正确
|
||||
旧密码不能为空
|
||||
旧手机号码不正确
|
||||
旧手机号码验证码不正确
|
||||
时间表达式
|
||||
时间计划不能为空
|
||||
未指定部门
|
||||
未获取到待执行任务
|
||||
模块名称不能为空
|
||||
模块类型不能为空
|
||||
模块说明不能为空
|
||||
此节点已下线
|
||||
此节点已下线
|
||||
民族不正确
|
||||
消息主题不能为空
|
||||
消息内容不能为空
|
||||
父节点不存在
|
||||
用户不存在
|
||||
用户名不能为空
|
||||
用户名不能是手机号码
|
||||
用户名不能为空
|
||||
用户名不能为空
|
||||
用户名或密码错误
|
||||
用户名长度4位以上
|
||||
用户头像不能为空
|
||||
用户编号不存在
|
||||
目标设备不能为空
|
||||
目标设备不能为空
|
||||
短信验证请求不能为空
|
||||
短信验证请求不能为空
|
||||
短信验证请求不能为空
|
||||
站内信不存在
|
||||
站内信状态不正确
|
||||
站内信类型不正确
|
||||
缓存键不能为空
|
||||
网络地址不正确
|
||||
网络地址不正确
|
||||
网络地址不正确
|
||||
菜单名称不能为空
|
||||
菜单标题不能为空
|
||||
菜单类型不正确
|
||||
@ -83,21 +81,19 @@ XML注释文件不存在
|
||||
该部门下存在子部门
|
||||
该部门下存在用户
|
||||
请求地址不能为空
|
||||
请求对象不能为空
|
||||
请求方法不正确
|
||||
请稍后重试
|
||||
请联系管理员激活账号
|
||||
读取用户令牌出错
|
||||
账号不能为空
|
||||
邀请码不正确
|
||||
邮箱验证码不正确
|
||||
部门不存在
|
||||
部门名称不能为空
|
||||
配置文件初始化完毕
|
||||
键值不能为空
|
||||
键名称不能为空
|
||||
键名称不能为空
|
||||
随机延时结束时间不正确
|
||||
随机延时起始时间不正确
|
||||
非JSON字符串
|
||||
验证数据不能为空
|
||||
验证码不正确
|
||||
验证码不能为空
|
@ -9,22 +9,4 @@
|
||||
Command="dotnet t4 ./gen.cs.tt -o ../dist/backend/$(ProjectName)/Ln.cs"
|
||||
StdOutEncoding="utf-8" />
|
||||
</Target>
|
||||
<ItemGroup>
|
||||
<None Include="$(SolutionDir)/assets/res/Statements.ln">
|
||||
<Link>Languages/Statements.ln</Link>
|
||||
</None>
|
||||
<None Include="$(SolutionDir)/assets/res/Nations.ln">
|
||||
<Link>Languages/Nations.ln</Link>
|
||||
</None>
|
||||
<None Include="$(SolutionDir)/assets/res/Fields.ln">
|
||||
<Link>Languages/Fields.ln</Link>
|
||||
</None>
|
||||
<EmbeddedResource Include="$(SolutionDir)/assets/res/Ln.resx">
|
||||
<Link>Languages/Ln.resx</Link>
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="$(SolutionDir)/dist/backend/$(ProjectName)/Ln.Designer.cs">
|
||||
<Link>Languages/Ln.Designer.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
1
docker/README.md
Normal file
1
docker/README.md
Normal file
@ -0,0 +1 @@
|
||||
docker
|
@ -1 +0,0 @@
|
||||
Subproject commit d23c7cca552e9b1b1365349741139a012e2bc955
|
@ -20,8 +20,10 @@ git tag -d $tag
|
||||
git tag $tag
|
||||
git push --tags origin release
|
||||
Start-Process -FilePath "https://github.com/nsnail/NetAdmin/compare/main...release"
|
||||
Write-Host "按『Enter』回到主分支,『Ctrl+C』退出"
|
||||
Write-Host "按『Enter』回到tk分支,『Ctrl+C』退出"
|
||||
Pause
|
||||
git checkout main
|
||||
git pull
|
||||
git branch -D release
|
||||
git branch -D tk
|
||||
git checkout -b tk
|
@ -1,6 +1,7 @@
|
||||
<#@ template language="C#" #>
|
||||
<#@ output encoding="utf-8" extension="resx" #>
|
||||
<#@ import namespace="System.IO" #>
|
||||
<#@ import namespace="System.Linq" #>
|
||||
<#@ import namespace="System.Text.RegularExpressions" #>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
@ -28,14 +29,11 @@
|
||||
</resheader>
|
||||
<#
|
||||
var regex = new Regex(@"^\d", RegexOptions.Compiled);
|
||||
foreach (var file in Directory.GetFiles("../assets/res/", "*.ln"))
|
||||
{
|
||||
foreach (var line in File.ReadLines(file))
|
||||
foreach (var line in Directory.GetFiles("../assets/res/", "*.ln").SelectMany(x => File.ReadLines(x)).Distinct())
|
||||
{
|
||||
#>
|
||||
<data name="<#= regex.IsMatch(line) ? "_" : "" #><#= line #>" xml:space="preserve"><value><#= line #></value></data>
|
||||
<#
|
||||
}
|
||||
}
|
||||
#>
|
||||
</root>
|
@ -1,15 +1,15 @@
|
||||
{
|
||||
"solution": "NetAdmin.sln",
|
||||
"mappings": {
|
||||
"Furion.Pure.NS": "../refs/Furion/framework/Furion.Pure/Furion.Pure.csproj"
|
||||
"Gurion": "../refs/Gurion/src/Gurion.csproj"
|
||||
},
|
||||
"restore": [
|
||||
{
|
||||
"name": "NetAdmin.Infrastructure",
|
||||
"packages": [
|
||||
{
|
||||
"packageName": "Furion.Pure.NS",
|
||||
"version": "4.9.5.8-ns1"
|
||||
"packageName": "Gurion",
|
||||
"version": "1.1.0"
|
||||
}
|
||||
]
|
||||
}
|
@ -17,6 +17,20 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{5198A03D-0
|
||||
"""
|
||||
);
|
||||
|
||||
content = Regex.Replace(
|
||||
content,
|
||||
"Project\\(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\"\\) = \"docker\", \"docker\", \"{E80A1018-C354-4A26-9029-8847BB9DA864}\"(?:.|\n)*?EndProject",
|
||||
$$"""
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{E80A1018-C354-4A26-9029-8847BB9DA864}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../docker", "*")
|
||||
.Select(x=>$" {Path.GetFileName(x)} = docker/{Path.GetFileName(x)}")
|
||||
)}}
|
||||
EndProject
|
||||
"""
|
||||
);
|
||||
|
||||
content = Regex.Replace(
|
||||
content,
|
||||
"Project\\(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\"\\) = \"workflows\", \"workflows\", \"{3C6F049E-3EE8-4D66-9AFF-E8A369032487}\"(?:.|\n)*?EndProject",
|
||||
|
@ -25,16 +25,16 @@ global using FreeSql;
|
||||
global using FreeSql.Aop;
|
||||
global using FreeSql.DataAnnotations;
|
||||
global using FreeSql.Internal.Model;
|
||||
global using Furion;
|
||||
global using Furion.Authorization;
|
||||
global using Furion.ConfigurableOptions;
|
||||
global using Furion.DataEncryption;
|
||||
global using Furion.DataValidation;
|
||||
global using Furion.DependencyInjection;
|
||||
global using Furion.DynamicApiController;
|
||||
global using Furion.EventBus;
|
||||
global using Furion.SpecificationDocument;
|
||||
global using Furion.UnifyResult;
|
||||
global using Gurion;
|
||||
global using Gurion.Authorization;
|
||||
global using Gurion.ConfigurableOptions;
|
||||
global using Gurion.DataEncryption;
|
||||
global using Gurion.DataValidation;
|
||||
global using Gurion.DependencyInjection;
|
||||
global using Gurion.DynamicApiController;
|
||||
global using Gurion.EventBus;
|
||||
global using Gurion.SpecificationDocument;
|
||||
global using Gurion.UnifyResult;
|
||||
global using Mapster;
|
||||
global using Microsoft.AspNetCore.Authorization;
|
||||
global using Microsoft.AspNetCore.Builder;
|
||||
|
@ -1,9 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<DefineConstants>DBTYPE_SQLITE</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)/build/code.quality.props"/>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../NetAdmin.AdmServer.Domain/NetAdmin.AdmServer.Domain.csproj"/>
|
||||
<ProjectReference Include="../NetAdmin.SysComponent.Application/NetAdmin.SysComponent.Application.csproj"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MailKit" Version="4.8.0"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,2 +0,0 @@
|
||||
<wpf:ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xml:space="preserve">
|
||||
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=services_005Cadm_005Cpartial/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="$(SolutionDir)/build/code.quality.props"/>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../NetAdmin.SysComponent.Cache/NetAdmin.SysComponent.Cache.csproj"/>
|
||||
<ProjectReference Include="../NetAdmin.AdmServer.Application/NetAdmin.AdmServer.Application.csproj"/>
|
||||
<ProjectReference Include="../NetAdmin.SysComponent.Cache/NetAdmin.SysComponent.Cache.csproj"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="$(SolutionDir)/build/code.quality.props"/>
|
||||
<ItemGroup>
|
||||
<Content Include="$(SolutionDir)/assets/seed-data/Adm_*.json" LinkBase="SeedData" CopyToOutputDirectory="PreserveNewest"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../NetAdmin.AdmServer.Infrastructure/NetAdmin.AdmServer.Infrastructure.csproj"/>
|
||||
<ProjectReference Include="../NetAdmin.SysComponent.Domain/NetAdmin.SysComponent.Domain.csproj"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,8 +1,8 @@
|
||||
using NetAdmin.AdmServer.Host.Filters;
|
||||
using NetAdmin.Domain.Contexts;
|
||||
using NetAdmin.Domain.DbMaps.Dependency.Fields;
|
||||
using NetAdmin.Domain.Enums.Sys;
|
||||
using NetAdmin.Host.Extensions;
|
||||
using NetAdmin.SysComponent.Domain.Contexts;
|
||||
using NetAdmin.SysComponent.Domain.Enums.Sys;
|
||||
using NetAdmin.SysComponent.Host.Extensions;
|
||||
|
||||
namespace NetAdmin.AdmServer.Host.Extensions;
|
||||
|
||||
|
@ -1,17 +1,11 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Import Project="$(SolutionDir)/build/code.quality.props"/>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="$(SolutionDir)/assets/captcha/**" LinkBase="Assets/Captcha"/>
|
||||
<EmbeddedResource Include="$(SolutionDir)/CHANGELOG.md" LogicalName="CHANGELOG.md"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../NetAdmin.SysComponent.Host/NetAdmin.SysComponent.Host.csproj"/>
|
||||
<ProjectReference Include="../NetAdmin.AdmServer.Cache/NetAdmin.AdmServer.Cache.csproj"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Update="*.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<ProjectReference Include="../NetAdmin.SysComponent.Host/NetAdmin.SysComponent.Host.csproj"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(Configuration)' != 'Debug'">
|
||||
<EmbeddedResource Include="../../../dist/frontend/admin/**/*" LinkBase="UI"/>
|
||||
|
@ -91,7 +91,8 @@ namespace NetAdmin.AdmServer.Host
|
||||
.AddFreeSqlWithArgs() // 添加 freeSql
|
||||
.AddRemoteRequest() // 添加远程请求
|
||||
.AddCorsAccessor() // 添加支持跨域访问
|
||||
.AddContextUser() // 添加上下文用户
|
||||
.AddContextUserToken() // 添加上下文用户令牌
|
||||
.AddContextUserInfo() // 添加上下文用户信息
|
||||
.AddRedisCache() // 添加 Redis 缓存
|
||||
.AddSchedules() // 添加计划任务
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{}
|
@ -1 +0,0 @@
|
||||
{}
|
@ -1,45 +0,0 @@
|
||||
{
|
||||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
|
||||
"SpecificationDocumentSettings": {
|
||||
"GroupOpenApiInfos": [
|
||||
{
|
||||
"Group": "Sys",
|
||||
"Title": "系统组件",
|
||||
"Description": "NetAdmin - 系统组件",
|
||||
},
|
||||
{
|
||||
"Group": "Adm",
|
||||
"Title": "管理服务",
|
||||
"Description": "NetAdmin - 管理服务",
|
||||
},
|
||||
{
|
||||
"Group": "Tpl",
|
||||
"Visible": false,
|
||||
},
|
||||
{
|
||||
"Group": "Probe",
|
||||
"Visible": false,
|
||||
}
|
||||
],
|
||||
"SecurityDefinitions": [
|
||||
{
|
||||
"Id": "Bearer",
|
||||
"Type": "ApiKey",
|
||||
"Name": "Authorization",
|
||||
"Description": "JWT Authorization header using the Bearer scheme.",
|
||||
"BearerFormat": "JWT",
|
||||
"Scheme": "bearer",
|
||||
"In": "Header",
|
||||
"Requirement": {
|
||||
"Scheme": {
|
||||
"Reference": {
|
||||
"Id": "Bearer",
|
||||
"Type": "SecurityScheme"
|
||||
},
|
||||
"Accesses": []
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"Microsoft.AspNetCore": "Debug",
|
||||
"System.Logging.EventBusService": "Debug"
|
||||
},
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"Microsoft.AspNetCore": "Debug",
|
||||
"System.Logging.EventBusService": "Debug"
|
||||
},
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"Microsoft.AspNetCore": "Debug",
|
||||
"System.Logging.EventBusService": "Debug"
|
||||
},
|
||||
}
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
{
|
||||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
|
||||
// Swagger文档配置 ------------------------------------------------------------------------------
|
||||
"SpecificationDocumentSettings": {
|
||||
"GroupOpenApiInfos": [
|
||||
{
|
||||
"Group": "Sys",
|
||||
"Title": "系统组件",
|
||||
"Description": "NetAdmin - 系统组件"
|
||||
},
|
||||
{
|
||||
"Group": "Adm",
|
||||
"Title": "管理服务",
|
||||
"Description": "NetAdmin - 管理服务"
|
||||
},
|
||||
{
|
||||
"Group": "Tpl",
|
||||
"Visible": false
|
||||
},
|
||||
{
|
||||
"Group": "Probe",
|
||||
"Visible": false
|
||||
}
|
||||
],
|
||||
"XmlComments": [
|
||||
"NetAdmin.AdmServer.Application.xml",
|
||||
"NetAdmin.AdmServer.Cache.xml",
|
||||
"NetAdmin.AdmServer.Domain.xml",
|
||||
"NetAdmin.AdmServer.Host.xml",
|
||||
"NetAdmin.AdmServer.Infrastructure.xml",
|
||||
"FreeSql.xml",
|
||||
"NetAdmin.Application.xml",
|
||||
"NetAdmin.Cache.xml",
|
||||
"NetAdmin.Domain.xml",
|
||||
"NetAdmin.Host.xml",
|
||||
"NetAdmin.Infrastructure.xml",
|
||||
"NetAdmin.SysComponent.Application.xml",
|
||||
"NetAdmin.SysComponent.Cache.xml",
|
||||
"NetAdmin.SysComponent.Domain.xml",
|
||||
"NetAdmin.SysComponent.Host.xml",
|
||||
"NetAdmin.SysComponent.Infrastructure.xml"
|
||||
]
|
||||
},
|
||||
// 数据库配置 --------------------------------------------------------------------------------------------------------
|
||||
"Database": {
|
||||
"DbType": "Sqlite",
|
||||
"ConnStr": "data source=NetAdmin.db",
|
||||
"SeedDataRelativePath": "SeedData"
|
||||
},
|
||||
// JWT鉴权配置 -------------------------------------------------------------------------------------------------------
|
||||
"JWTSettings": {
|
||||
"ValidateIssuerSigningKey": true,
|
||||
"IssuerSigningKey": "bO0BCAGxpxYnm6AE4XpgO25T27NayFzjGgfDqBuzUzD6ROpFiZUi3KjVg93bdGek",
|
||||
"ValidateIssuer": true,
|
||||
"ValidIssuer": "签发方",
|
||||
"ValidateAudience": true,
|
||||
"ValidAudience": "签收方",
|
||||
"ValidateLifetime": true,
|
||||
"ExpiredTime": 5256000,
|
||||
"ClockSkew": 5,
|
||||
"Algorithm": "HS256"
|
||||
},
|
||||
// 日志配置 ----------------------------------------------------------------------------------------------------------
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning",
|
||||
"System.Logging.EventBusService": "Error"
|
||||
}
|
||||
},
|
||||
// Redis配置 --------------------------------------------------------------------------------------------------------
|
||||
"Redis": {
|
||||
"Instances": [
|
||||
{
|
||||
"Name": "DataCache",
|
||||
"ConnStr": "localhost:6379,abortConnect=false",
|
||||
"DataBase": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
// 文件上传配置 -------------------------------------------------------------------------------------------------------
|
||||
"Upload": {
|
||||
"ContentTypes": [
|
||||
"image/jpg",
|
||||
"image/png",
|
||||
"image/jpeg",
|
||||
"image/gif"
|
||||
],
|
||||
"MaxSize": 1073741824,
|
||||
"Minio": {
|
||||
"ServerAddress": "vm-ubt-1:9000",
|
||||
"AccessKey": "nVMM0gSqwyIjM8iZ",
|
||||
"SecretKey": "F8OZngGrNsZSYn4MP9swwMSf5rfm61EC",
|
||||
"BucketName": "cloud-code",
|
||||
"AccessUrl": "http://vm-ubt-1:9000",
|
||||
"Secure": false
|
||||
}
|
||||
},
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="$(SolutionDir)/build/code.quality.props"/>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="$(SolutionDir)/assets/res/NetAdmin.AdmServer.Statements.ln">
|
||||
<Link>Languages/NetAdmin.AdmServer.Statements.ln</Link>
|
||||
</None>
|
||||
<None Include="$(SolutionDir)/assets/res/NetAdmin.AdmServer.Fields.ln">
|
||||
<Link>Languages/NetAdmin.AdmServer.Fields.ln</Link>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Update="*.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,6 +1,7 @@
|
||||
using NetAdmin.Domain.Dto.Dependency;
|
||||
using NetAdmin.Domain.Dto.Tpl.Example;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Tpl;
|
||||
namespace NetAdmin.Application.Modules.Tpl;
|
||||
|
||||
/// <summary>
|
||||
/// 示例模块
|
@ -1,7 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<DefineConstants>DBTYPE_SQLITE</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)/build/code.quality.props"/>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../NetAdmin.Domain/NetAdmin.Domain.csproj"/>
|
||||
|
@ -0,0 +1,8 @@
|
||||
using NetAdmin.Application.Modules.Tpl;
|
||||
|
||||
namespace NetAdmin.Application.Services.Tpl.Dependency;
|
||||
|
||||
/// <summary>
|
||||
/// 示例服务
|
||||
/// </summary>
|
||||
public interface IExampleService : IService, IExampleModule;
|
@ -1,8 +1,10 @@
|
||||
using NetAdmin.Application.Repositories;
|
||||
using NetAdmin.Application.Services.Tpl.Dependency;
|
||||
using NetAdmin.Domain.DbMaps.Tpl;
|
||||
using NetAdmin.Domain.Dto.Dependency;
|
||||
using NetAdmin.Domain.Dto.Tpl.Example;
|
||||
using NetAdmin.SysComponent.Application.Services.Tpl.Dependency;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Services.Tpl;
|
||||
namespace NetAdmin.Application.Services.Tpl;
|
||||
|
||||
/// <inheritdoc cref="IExampleService" />
|
||||
public sealed class ExampleService(BasicRepository<Tpl_Example, long> rpo) //
|
@ -0,0 +1,9 @@
|
||||
using NetAdmin.Application.Modules.Tpl;
|
||||
using NetAdmin.Application.Services.Tpl.Dependency;
|
||||
|
||||
namespace NetAdmin.Cache.Tpl.Dependency;
|
||||
|
||||
/// <summary>
|
||||
/// 示例缓存
|
||||
/// </summary>
|
||||
public interface IExampleCache : ICache<IDistributedCache, IExampleService>, IExampleModule;
|
@ -1,8 +1,9 @@
|
||||
using NetAdmin.Application.Services.Tpl.Dependency;
|
||||
using NetAdmin.Cache.Tpl.Dependency;
|
||||
using NetAdmin.Domain.Dto.Dependency;
|
||||
using NetAdmin.Domain.Dto.Tpl.Example;
|
||||
using NetAdmin.SysComponent.Application.Services.Tpl.Dependency;
|
||||
using NetAdmin.SysComponent.Cache.Tpl.Dependency;
|
||||
|
||||
namespace NetAdmin.SysComponent.Cache.Tpl;
|
||||
namespace NetAdmin.Cache.Tpl;
|
||||
|
||||
/// <inheritdoc cref="IExampleCache" />
|
||||
public sealed class ExampleCache(IDistributedCache cache, IExampleService service)
|
@ -1,5 +1,3 @@
|
||||
using NetAdmin.Domain.Dto.Sys.User;
|
||||
|
||||
namespace NetAdmin.Domain.Contexts;
|
||||
|
||||
/// <summary>
|
||||
@ -43,9 +41,9 @@ public sealed record ContextUserToken : DataAbstraction
|
||||
/// <summary>
|
||||
/// 从 QueryUserRsp 创建上下文用户
|
||||
/// </summary>
|
||||
public static ContextUserToken Create(QueryUserRsp user)
|
||||
public static ContextUserToken Create(long id, Guid token, string userName, long deptId)
|
||||
{
|
||||
return new ContextUserToken { Id = user.Id, Token = user.Token, UserName = user.UserName, DeptId = user.DeptId };
|
||||
return new ContextUserToken { Id = id, Token = token, UserName = userName, DeptId = deptId };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -1,7 +1,7 @@
|
||||
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
|
||||
|
||||
/// <summary>
|
||||
/// 更新用户字段接口
|
||||
/// 修改用户字段接口
|
||||
/// </summary>
|
||||
public interface IFieldModifiedUser
|
||||
{
|
||||
|
@ -1,12 +1,12 @@
|
||||
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
|
||||
|
||||
/// <summary>
|
||||
/// 描述字段接口
|
||||
/// 备注字段接口
|
||||
/// </summary>
|
||||
public interface IFieldSummary
|
||||
{
|
||||
/// <summary>
|
||||
/// 描述
|
||||
/// 备注
|
||||
/// </summary>
|
||||
string Summary { get; init; }
|
||||
}
|
@ -3,7 +3,9 @@ namespace NetAdmin.Domain.DbMaps.Dependency;
|
||||
/// <inheritdoc />
|
||||
public abstract record ImmutableEntity : ImmutableEntity<long>
|
||||
{
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
[Snowflake]
|
||||
@ -17,19 +19,25 @@ public abstract record ImmutableEntity : ImmutableEntity<long>
|
||||
public abstract record ImmutableEntity<T> : LiteImmutableEntity<T>, IFieldCreatedUser
|
||||
where T : IEquatable<T>
|
||||
{
|
||||
/// <inheritdoc cref="IFieldCreatedUser.CreatedUserId" />
|
||||
/// <summary>
|
||||
/// 创建者编号
|
||||
/// </summary>
|
||||
[Column(CanUpdate = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
public long? CreatedUserId { get; init; }
|
||||
|
||||
/// <inheritdoc cref="IFieldCreatedUser.CreatedUserName" />
|
||||
/// <summary>
|
||||
/// 创建者用户名
|
||||
/// </summary>
|
||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanUpdate = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
public virtual string CreatedUserName { get; init; }
|
||||
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
public override T Id { get; init; }
|
||||
|
@ -3,7 +3,9 @@ namespace NetAdmin.Domain.DbMaps.Dependency;
|
||||
/// <inheritdoc />
|
||||
public abstract record LiteImmutableEntity : LiteImmutableEntity<long>
|
||||
{
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
[Snowflake]
|
||||
@ -17,13 +19,17 @@ public abstract record LiteImmutableEntity : LiteImmutableEntity<long>
|
||||
public abstract record LiteImmutableEntity<T> : EntityBase<T>, IFieldCreatedTime
|
||||
where T : IEquatable<T>
|
||||
{
|
||||
/// <inheritdoc cref="IFieldCreatedTime.CreatedTime" />
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(ServerTime = DateTimeKind.Local, CanUpdate = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
public virtual DateTime CreatedTime { get; init; }
|
||||
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
|
@ -3,7 +3,9 @@ namespace NetAdmin.Domain.DbMaps.Dependency;
|
||||
/// <inheritdoc />
|
||||
public abstract record LiteMutableEntity : LiteMutableEntity<long>
|
||||
{
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
[Snowflake]
|
||||
@ -16,12 +18,16 @@ public abstract record LiteMutableEntity : LiteMutableEntity<long>
|
||||
public abstract record LiteMutableEntity<T> : LiteImmutableEntity<T>, IFieldModifiedTime
|
||||
where T : IEquatable<T>
|
||||
{
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
public override T Id { get; init; }
|
||||
|
||||
/// <inheritdoc cref="IFieldModifiedTime.ModifiedTime" />
|
||||
/// <summary>
|
||||
/// 修改时间
|
||||
/// </summary>
|
||||
[Column(ServerTime = DateTimeKind.Local, CanInsert = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
|
@ -3,7 +3,9 @@ namespace NetAdmin.Domain.DbMaps.Dependency;
|
||||
/// <inheritdoc />
|
||||
public abstract record LiteVersionEntity : LiteVersionEntity<long>
|
||||
{
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
[Snowflake]
|
||||
@ -16,13 +18,17 @@ public abstract record LiteVersionEntity : LiteVersionEntity<long>
|
||||
public abstract record LiteVersionEntity<T> : LiteMutableEntity<T>, IFieldVersion
|
||||
where T : IEquatable<T>
|
||||
{
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
[Snowflake]
|
||||
public override T Id { get; init; }
|
||||
|
||||
/// <inheritdoc cref="IFieldVersion.Version" />
|
||||
/// <summary>
|
||||
/// 数据版本
|
||||
/// </summary>
|
||||
[Column(IsVersion = true, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
|
@ -3,7 +3,9 @@ namespace NetAdmin.Domain.DbMaps.Dependency;
|
||||
/// <inheritdoc />
|
||||
public abstract record MutableEntity : MutableEntity<long>
|
||||
{
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
[Snowflake]
|
||||
@ -16,30 +18,40 @@ public abstract record MutableEntity : MutableEntity<long>
|
||||
public abstract record MutableEntity<T> : LiteMutableEntity<T>, IFieldCreatedUser, IFieldModifiedUser
|
||||
where T : IEquatable<T>
|
||||
{
|
||||
/// <inheritdoc />
|
||||
/// <summary>
|
||||
/// 创建者编号
|
||||
/// </summary>
|
||||
[Column(CanUpdate = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
public virtual long? CreatedUserId { get; init; }
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>
|
||||
/// 创建者用户名
|
||||
/// </summary>
|
||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanUpdate = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
public virtual string CreatedUserName { get; init; }
|
||||
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
public override T Id { get; init; }
|
||||
|
||||
/// <inheritdoc cref="IFieldModifiedUser.ModifiedUserId" />
|
||||
/// <summary>
|
||||
/// 修改者编号
|
||||
/// </summary>
|
||||
[Column(CanInsert = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
public long? ModifiedUserId { get; init; }
|
||||
|
||||
/// <inheritdoc cref="IFieldModifiedUser.ModifiedUserName" />
|
||||
/// <summary>
|
||||
/// 修改者用户名
|
||||
/// </summary>
|
||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanInsert = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
|
@ -3,7 +3,9 @@ namespace NetAdmin.Domain.DbMaps.Dependency;
|
||||
/// <inheritdoc />
|
||||
public abstract record SimpleEntity : SimpleEntity<long>
|
||||
{
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
[Snowflake]
|
||||
|
@ -3,7 +3,9 @@ namespace NetAdmin.Domain.DbMaps.Dependency;
|
||||
/// <inheritdoc />
|
||||
public abstract record VersionEntity : VersionEntity<long>
|
||||
{
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
[Snowflake]
|
||||
@ -16,30 +18,40 @@ public abstract record VersionEntity : VersionEntity<long>
|
||||
public abstract record VersionEntity<T> : LiteVersionEntity<T>, IFieldModifiedUser, IFieldCreatedUser
|
||||
where T : IEquatable<T>
|
||||
{
|
||||
/// <inheritdoc />
|
||||
/// <summary>
|
||||
/// 创建者编号
|
||||
/// </summary>
|
||||
[Column(CanUpdate = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
public virtual long? CreatedUserId { get; init; }
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>
|
||||
/// 创建者用户名
|
||||
/// </summary>
|
||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanUpdate = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
public virtual string CreatedUserName { get; init; }
|
||||
|
||||
/// <inheritdoc cref="EntityBase{T}.Id" />
|
||||
/// <summary>
|
||||
/// 唯一编码
|
||||
/// </summary>
|
||||
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
|
||||
[CsvIgnore]
|
||||
public override T Id { get; init; }
|
||||
|
||||
/// <inheritdoc cref="IFieldModifiedUser.ModifiedUserId" />
|
||||
/// <summary>
|
||||
/// 修改者编号
|
||||
/// </summary>
|
||||
[Column(CanInsert = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
public virtual long? ModifiedUserId { get; init; }
|
||||
|
||||
/// <inheritdoc cref="IFieldModifiedUser.ModifiedUserName" />
|
||||
/// <summary>
|
||||
/// 修改者用户名
|
||||
/// </summary>
|
||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanInsert = false, Position = -1)]
|
||||
[CsvIgnore]
|
||||
[JsonIgnore]
|
||||
|
@ -8,6 +8,7 @@ public record RestfulInfo<T> : DataAbstraction
|
||||
/// <summary>
|
||||
/// 代码
|
||||
/// </summary>
|
||||
/// <example>succeed</example>
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||
public ErrorCodes Code { get; init; }
|
||||
|
||||
@ -17,7 +18,8 @@ public record RestfulInfo<T> : DataAbstraction
|
||||
public T Data { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 消息
|
||||
/// 字符串:"消息内容",或数组:[{"参数名1":"消息内容1"},{"参数名2":"消息内容2"}]
|
||||
/// </summary>
|
||||
/// <example>请求成功</example>
|
||||
public object Msg { get; init; }
|
||||
}
|
@ -1,11 +1,5 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<DefineConstants>DBTYPE_SQLITE</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)/build/code.quality.props"/>
|
||||
<ItemGroup>
|
||||
<Content Include="$(SolutionDir)/assets/seed-data/**" LinkBase="SeedData" CopyToOutputDirectory="PreserveNewest"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj"/>
|
||||
</ItemGroup>
|
||||
|
@ -1,13 +1,5 @@
|
||||
global using NetAdmin.Domain.Attributes;
|
||||
global using NetAdmin.Domain.Attributes.DataValidation;
|
||||
global using NetAdmin.Domain.Attributes;
|
||||
global using NetAdmin.Domain.DbMaps.Dependency;
|
||||
global using NetAdmin.Domain.DbMaps.Dependency.Fields;
|
||||
global using NetAdmin.Domain.DbMaps.Sys;
|
||||
global using NetAdmin.Domain.Dto.Dependency;
|
||||
global using NetAdmin.Domain.Enums.Sys;
|
||||
global using CsvIgnore = CsvHelper.Configuration.Attributes.IgnoreAttribute;
|
||||
global using CsvIndex = CsvHelper.Configuration.Attributes.IndexAttribute;
|
||||
global using CsvName = CsvHelper.Configuration.Attributes.NameAttribute;
|
||||
global using DynamicFilterOperators = NetAdmin.Domain.Enums.DynamicFilterOperators;
|
||||
global using HttpMethods = NetAdmin.Domain.Enums.HttpMethods;
|
||||
global using SqlIndex = FreeSql.DataAnnotations.IndexAttribute;
|
@ -1,9 +1,11 @@
|
||||
using NetAdmin.Application.Modules.Tpl;
|
||||
using NetAdmin.Application.Services.Tpl.Dependency;
|
||||
using NetAdmin.Cache.Tpl.Dependency;
|
||||
using NetAdmin.Domain.Dto.Dependency;
|
||||
using NetAdmin.Domain.Dto.Tpl.Example;
|
||||
using NetAdmin.SysComponent.Application.Modules.Tpl;
|
||||
using NetAdmin.SysComponent.Application.Services.Tpl.Dependency;
|
||||
using NetAdmin.SysComponent.Cache.Tpl.Dependency;
|
||||
using NetAdmin.Host.Attributes;
|
||||
|
||||
namespace NetAdmin.SysComponent.Host.Controllers.Tpl;
|
||||
namespace NetAdmin.Host.Controllers.Tpl;
|
||||
|
||||
/// <summary>
|
||||
/// 示例服务
|
@ -1,12 +1,7 @@
|
||||
using Furion.Logging;
|
||||
using Gurion.Logging;
|
||||
using NetAdmin.Domain.Contexts;
|
||||
using NetAdmin.Domain.Events;
|
||||
using NetAdmin.Host.Filters;
|
||||
using NetAdmin.Host.Utils;
|
||||
using StackExchange.Redis;
|
||||
using Yitter.IdGenerator;
|
||||
using FreeSqlBuilder = NetAdmin.Infrastructure.Utils.FreeSqlBuilder;
|
||||
|
||||
#if DEBUG
|
||||
using Spectre.Console;
|
||||
#endif
|
||||
@ -83,7 +78,7 @@ public static class ServiceCollectionExtensions
|
||||
this IServiceCollection me)
|
||||
{
|
||||
var optionsTypes
|
||||
= from type in App.EffectiveTypes.Where(x => !x.IsAbstract && !x.FullName!.Contains(nameof(Furion)) &&
|
||||
= from type in App.EffectiveTypes.Where(x => !x.IsAbstract && !x.FullName!.Contains(nameof(Gurion)) &&
|
||||
x.GetInterfaces().Contains(typeof(IConfigurableOptions)))
|
||||
select type;
|
||||
|
||||
@ -126,12 +121,11 @@ public static class ServiceCollectionExtensions
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加上下文用户
|
||||
/// 添加上下文用户令牌
|
||||
/// </summary>
|
||||
public static IServiceCollection AddContextUser(this IServiceCollection me)
|
||||
public static IServiceCollection AddContextUserToken(this IServiceCollection me)
|
||||
{
|
||||
return me.AddScoped(typeof(ContextUserToken), _ => ContextUserToken.Create())
|
||||
.AddScoped(typeof(ContextUserInfo), _ => ContextUserInfo.Create());
|
||||
return me.AddScoped(typeof(ContextUserToken), _ => ContextUserToken.Create());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -142,42 +136,6 @@ public static class ServiceCollectionExtensions
|
||||
return me.AddEventBus(builder => builder.AddSubscribers(App.Assemblies.ToArray()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加 freeSql orm工具
|
||||
/// </summary>
|
||||
public static IServiceCollection AddFreeSql( //
|
||||
this IServiceCollection me, FreeSqlInitMethods initMethods = FreeSqlInitMethods.None, Action<IFreeSql> freeSqlConfig = null)
|
||||
{
|
||||
// // 非调试模式下禁止同步数据库
|
||||
// #if !DEBUG
|
||||
// initOptions = FreeSqlInitOptions.None;
|
||||
// #endif
|
||||
var dbOptions = App.GetOptions<DatabaseOptions>();
|
||||
var fSql = new FreeSqlBuilder(dbOptions).Build(initMethods);
|
||||
_ = me.AddSingleton(fSql);
|
||||
|
||||
fSql.Aop.AuditValue += SqlAuditor.DataAuditHandler; // Insert/Update自动值处理
|
||||
var eventPublisher = App.GetService<IEventPublisher>();
|
||||
|
||||
#pragma warning disable VSTHRD110
|
||||
|
||||
// AOP事件发布(异步)
|
||||
fSql.Aop.CommandBefore += (_, e) => eventPublisher.PublishAsync(new SqlCommandBeforeEvent(e)); // 增删查改,执行命令之前触发
|
||||
fSql.Aop.CommandAfter += (_, e) => eventPublisher.PublishAsync(new SqlCommandAfterEvent(e)); // 增删查改,执行命令完成后触发
|
||||
|
||||
fSql.Aop.SyncStructureBefore += (_, e) => eventPublisher.PublishAsync(new SyncStructureBeforeEvent(e)); // CodeFirst迁移,执行之前触发
|
||||
|
||||
fSql.Aop.SyncStructureAfter += (_, e) => eventPublisher.PublishAsync(new SyncStructureAfterEvent(e)); // CodeFirst迁移,执行完成触发
|
||||
#pragma warning restore VSTHRD110
|
||||
|
||||
// 全局过滤器设置
|
||||
freeSqlConfig?.Invoke(fSql);
|
||||
|
||||
return me.AddScoped<UnitOfWorkManager>() // 注入工作单元管理器
|
||||
.AddFreeRepository(null, App.Assemblies.ToArray()) // 批量注入 Repository
|
||||
.AddMvcFilter<TransactionInterceptor>(); // 注入事务拦截器
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加内存缓存
|
||||
/// </summary>
|
||||
|
@ -1,4 +1,4 @@
|
||||
using Furion.FriendlyException;
|
||||
using Gurion.FriendlyException;
|
||||
using NetAdmin.Domain.Dto;
|
||||
|
||||
namespace NetAdmin.Host.Filters;
|
||||
|
@ -1,4 +1,4 @@
|
||||
using Furion.FriendlyException;
|
||||
using Gurion.FriendlyException;
|
||||
using NetAdmin.Domain.Dto;
|
||||
|
||||
namespace NetAdmin.Host.Filters;
|
||||
|
@ -1,8 +1,8 @@
|
||||
using Furion.FriendlyException;
|
||||
using Gurion.FriendlyException;
|
||||
|
||||
namespace NetAdmin.Host.Filters;
|
||||
|
||||
/// <inheritdoc cref="Furion.FriendlyException.IGlobalExceptionHandler" />
|
||||
/// <inheritdoc cref="Gurion.FriendlyException.IGlobalExceptionHandler" />
|
||||
public sealed class GlobalExceptionHandler(ILogger<GlobalExceptionHandler> logger) : IGlobalExceptionHandler, ISingleton
|
||||
{
|
||||
/// <inheritdoc />
|
||||
|
@ -0,0 +1,56 @@
|
||||
namespace NetAdmin.Infrastructure.Attributes;
|
||||
|
||||
/// <summary>
|
||||
/// 国家信息特性
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// https://github.com/countries/countries
|
||||
/// </remarks>
|
||||
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Enum)]
|
||||
public sealed class CountryAttribute : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// 三个字母的国家代码
|
||||
/// </summary>
|
||||
public string Alpha3 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 国际电话呼号
|
||||
/// </summary>
|
||||
public int CallingCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 国际电话子呼号(区分同一呼号不同国家)
|
||||
/// </summary>
|
||||
public string CallingSubCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 货币代码
|
||||
/// </summary>
|
||||
public string CurrencyCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当命中多个国家时的首选国家
|
||||
/// </summary>
|
||||
public bool IsPreferred { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 官方语言代码
|
||||
/// </summary>
|
||||
public string Languages { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 国家全称
|
||||
/// </summary>
|
||||
public string LongName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 国家简称
|
||||
/// </summary>
|
||||
public string ShortName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 非正式名称
|
||||
/// </summary>
|
||||
public string UnofficialNames { get; set; }
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
namespace NetAdmin.Infrastructure.Attributes;
|
||||
|
||||
/// <summary>
|
||||
/// 域名特性
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Enum)]
|
||||
public sealed class DomainAttribute : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// 主机名称
|
||||
/// </summary>
|
||||
public string HostName { get; init; }
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
namespace NetAdmin.Infrastructure.Configuration.Dependency;
|
||||
|
||||
/// <summary>
|
||||
/// API客户端基础选项
|
||||
/// </summary>
|
||||
public abstract record ApiClientOptions : OptionAbstraction
|
||||
{
|
||||
/// <summary>
|
||||
/// 网关地址
|
||||
/// </summary>
|
||||
public string Gateway { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 密钥
|
||||
/// </summary>
|
||||
public string Token { get; set; }
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
namespace NetAdmin.Infrastructure.Configuration.Options;
|
||||
namespace NetAdmin.Infrastructure.Configuration.Dependency;
|
||||
|
||||
/// <summary>
|
||||
/// 选项抽象基类
|
@ -1,3 +1,5 @@
|
||||
using NetAdmin.Infrastructure.Configuration.Dependency;
|
||||
|
||||
namespace NetAdmin.Infrastructure.Configuration.Options;
|
||||
|
||||
/// <summary>
|
||||
|
@ -1,3 +1,4 @@
|
||||
using NetAdmin.Infrastructure.Configuration.Dependency;
|
||||
using DataType = FreeSql.DataType;
|
||||
|
||||
namespace NetAdmin.Infrastructure.Configuration.Options;
|
||||
|
@ -1,3 +1,5 @@
|
||||
using NetAdmin.Infrastructure.Configuration.Dependency;
|
||||
|
||||
namespace NetAdmin.Infrastructure.Configuration.Options;
|
||||
|
||||
/// <summary>
|
||||
|
@ -1,3 +1,5 @@
|
||||
using NetAdmin.Infrastructure.Configuration.Dependency;
|
||||
|
||||
namespace NetAdmin.Infrastructure.Configuration.Options;
|
||||
|
||||
/// <summary>
|
||||
|
@ -74,14 +74,10 @@ public static class Chars
|
||||
public const string FLG_HTTP_METHOD_PUT = "PUT";
|
||||
public const string FLG_HTTP_METHOD_TRACE = "TRACE";
|
||||
public const string FLG_PATH_API_METRICS = "metrics";
|
||||
|
||||
public const string FLG_PATH_API_RPOBE = "api/probe";
|
||||
public const string FLG_PATH_API_SYS_USER_LOGIN_BY_PWD = "api/sys/user/login.by.pwd";
|
||||
public const string FLG_PATH_WEBSOCKET_PREFIX = "ws";
|
||||
public const string FLG_RANDOM_UNAME_PWD = "VcXlp7WY";
|
||||
public const string FLG_REDIS_INSTANCE_DATA_CACHE = "DataCache";
|
||||
public const string FLG_SNOWFLAKE_WORK_ID = "SNOWFLAKE_WORK_ID";
|
||||
public const string FLG_SYSTEM_PREFIX = "sc_";
|
||||
|
||||
public const string FLGL_HTTP_HEADER_VALUE_UA_MOBILE
|
||||
= "Mozilla/5.0 (Linux; Android 9; Redmi Note 8 Pro Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.96 Mobile Safari/537.36";
|
||||
|
@ -10,26 +10,14 @@ namespace NetAdmin.Infrastructure.Constant;
|
||||
/// </remarks>
|
||||
public static class Numbers
|
||||
{
|
||||
public const int DEF_PAGE_SIZE_QUERY = 20; // 分页查询默认的页容量
|
||||
public const long DEF_SORT_VAL = 100; // 排序默认值
|
||||
|
||||
public const int HTTP_STATUS_BIZ_FAIL = 900; // Http状态码-业务异常
|
||||
public const long ID_DIC_CATALOG_GEO_AREA = 379794295185413; // 唯一编号:字典目录-行政区划字典
|
||||
|
||||
public const int DEF_PAGE_SIZE_QUERY = 20; // 默认值:分页查询页容量
|
||||
public const int HTTP_STATUS_BIZ_FAIL = 900; // HTTP状态码:业务异常
|
||||
public const int MAX_LIMIT_BULK_REQ = 100; // 最大限制:批量请求数
|
||||
public const int MAX_LIMIT_EXPORT = 10000; // 最大限制:导出为CSV文件的条数
|
||||
public const int MAX_LIMIT_EXPORT = 50000; // 最大限制:导出为CSV文件的条数
|
||||
public const int MAX_LIMIT_QUERY = 1000; // 最大限制:非分页查询条数
|
||||
public const int MAX_LIMIT_QUERY_PAGE_NO = 10000; // 最大限制:分页查询页码
|
||||
public const int MAX_LIMIT_QUERY_PAGE_SIZE = 100; // 最大限制:分页查询页容量
|
||||
public const int MAX_LIMIT_RETRY_CNT_REDIS_LOCK = 10; // 最大限制:Redis锁重试次数
|
||||
public const int REQUEST_LOG_BUFF_SIZE = 10; // 请求日志缓冲区大小
|
||||
public const int SCHEDULED_JOB_PARALLEL_NUM = 5; // 计划作业并发数
|
||||
public const int SECS_CACHE_CHART = 300; // 秒:缓存时间-仪表
|
||||
public const int SECS_CACHE_DEFAULT = 60; // 秒:缓存时间-默认
|
||||
public const int SECS_CACHE_DIC_CATALOG_CODE = 300; // 秒:缓存时间-字典配置-目录代码
|
||||
public const int SECS_CACHE_LOGIN_BY_USER_ID = 3600 * 24 * 30; // 秒:缓存时间-通过用户编号登录的用户信息
|
||||
public const int SECS_REDIS_LOCK_EXPIRY = 60; // 秒:Redis锁过期时间
|
||||
public const int SECS_REDIS_LOCK_RETRY_DELAY = 1; // 秒:Redis锁重试间隔
|
||||
public const int SECS_TIMEOUT_HTTP_CLIENT = 15; // 秒:超时时间-默认HTTP客户端
|
||||
public const int SECS_TIMEOUT_JOB = 600; // 秒:超时时间-作业
|
||||
}
|
2581
src/backend/NetAdmin.Infrastructure/Enums/Countries.cs
Normal file
2581
src/backend/NetAdmin.Infrastructure/Enums/Countries.cs
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,5 @@
|
||||
// ReSharper disable IdentifierTypo
|
||||
// ReSharper disable UnusedMember.Global
|
||||
|
||||
namespace NetAdmin.Infrastructure.Enums;
|
||||
|
||||
|
@ -35,11 +35,6 @@ public static class GlobalStatic
|
||||
/// </summary>
|
||||
public static DateTime LatestLogTime => LogCounterOff ? DateTime.MinValue : Volatile.Read(ref _latestLogTime).Time();
|
||||
|
||||
/// <summary>
|
||||
/// 日志记录器忽略的API编号
|
||||
/// </summary>
|
||||
public static string[] LoggerIgnoreApiIds => ["api/adm/tools/query.es.log", "api/probe/health.check", "api/probe/is.system.safety.stopped"];
|
||||
|
||||
/// <summary>
|
||||
/// 系统内部密钥
|
||||
/// </summary>
|
||||
|
@ -5,16 +5,36 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="FreeSql.DbContext.NS" Version="3.2.833-ns4"/>
|
||||
<PackageReference Include="FreeSql.Provider.Sqlite.NS" Version="3.2.833-ns4"/>
|
||||
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.5.8"/>
|
||||
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster.NS" Version="4.9.5.8-ns1"/>
|
||||
<PackageReference Include="Furion.Pure.NS" Version="4.9.5.8-ns1"/>
|
||||
<PackageReference Include="Gurion" Version="1.1.0"/>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.11.0"/>
|
||||
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="9.0.0-rc.2.24474.3"/>
|
||||
<PackageReference Include="Minio" Version="6.0.3"/>
|
||||
<PackageReference Include="NSExt" Version="2.2.0"/>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3"/>
|
||||
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.4"/>
|
||||
<PackageReference Include="System.Drawing.Common" Version="9.0.0-rc.2.24474.1"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="$(SolutionDir)/assets/res/NetAdmin.Statements.ln">
|
||||
<Link>Languages/NetAdmin.Statements.ln</Link>
|
||||
</None>
|
||||
<None Include="$(SolutionDir)/assets/res/Nations.ln">
|
||||
<Link>Languages/Nations.ln</Link>
|
||||
</None>
|
||||
<None Include="$(SolutionDir)/assets/res/NetAdmin.Fields.ln">
|
||||
<Link>Languages/NetAdmin.Fields.ln</Link>
|
||||
</None>
|
||||
<None Include="$(SolutionDir)/assets/res/CountryCodes.ln">
|
||||
<Link>Languages/CountryCodes.ln</Link>
|
||||
</None>
|
||||
<EmbeddedResource Include="$(SolutionDir)/assets/res/Ln.resx">
|
||||
<Link>Languages/Ln.resx</Link>
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="$(SolutionDir)/dist/backend/$(ProjectName)/Ln.Designer.cs">
|
||||
<Link>Languages/Ln.Designer.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Update="*.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
|
@ -3,13 +3,5 @@
|
||||
"AppSettings": {
|
||||
"InjectSpecificationDocument": true,
|
||||
"InjectMiniProfiler": true
|
||||
},
|
||||
"JWTSettings": {
|
||||
"ExpiredTime": 20000
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
},
|
||||
}
|
||||
}
|
@ -3,13 +3,5 @@
|
||||
"AppSettings": {
|
||||
"InjectSpecificationDocument": true,
|
||||
"InjectMiniProfiler": true
|
||||
},
|
||||
"JWTSettings": {
|
||||
"ExpiredTime": 20000
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
|
||||
"AppSettings": {
|
||||
"InjectSpecificationDocument": true,
|
||||
"InjectMiniProfiler": true
|
||||
}
|
||||
}
|
143
src/backend/NetAdmin.Infrastructure/NetAdminSettings.json
Normal file
143
src/backend/NetAdmin.Infrastructure/NetAdminSettings.json
Normal file
@ -0,0 +1,143 @@
|
||||
{
|
||||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
|
||||
// App基本配置
|
||||
"AppSettings": {
|
||||
"InjectSpecificationDocument": false,
|
||||
"InjectMiniProfiler": false
|
||||
},
|
||||
// Swagger文档配置 ------------------------------------------------------------------------------
|
||||
"SpecificationDocumentSettings": {
|
||||
"EnableEnumSchemaFilter": false,
|
||||
"EnableAuthorized": false,
|
||||
"RoutePrefix": "swagger",
|
||||
"SecurityDefinitions": [
|
||||
{
|
||||
"Id": "Bearer",
|
||||
"Type": "ApiKey",
|
||||
"Name": "Authorization",
|
||||
"Description": "JWT Authorization header using the Bearer scheme.",
|
||||
"BearerFormat": "JWT",
|
||||
"Scheme": "bearer",
|
||||
"In": "Header",
|
||||
"Requirement": {
|
||||
"Scheme": {
|
||||
"Reference": {
|
||||
"Id": "Bearer",
|
||||
"Type": "SecurityScheme"
|
||||
},
|
||||
"Accesses": []
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
},
|
||||
// 验证码配置 --------------------------------------------------------------------------------------------------------
|
||||
"Captcha": {
|
||||
"ImageRelativePath": ".data/captcha",
|
||||
"SecretKey": "1Z?f(2)%v?:X5NYRl+]PSi.rDf7Ip#lB"
|
||||
},
|
||||
// 跨域配置 ----------------------------------------------------------------------------------------------------------
|
||||
"CorsAccessorSettings": {
|
||||
"WithExposedHeaders": [
|
||||
"access-token",
|
||||
"x-access-token",
|
||||
"content-disposition"
|
||||
]
|
||||
},
|
||||
// 动态webapi配置 ----------------------------------------------------------------------------------------------------
|
||||
"DynamicApiControllerSettings": {
|
||||
"VerbToHttpMethods": [
|
||||
[
|
||||
"post",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"add",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"create",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"insert",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"submit",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"get",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"find",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"fetch",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"query",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"getlist",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"getall",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"put",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"update",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"delete",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"remove",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"clear",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"patch",
|
||||
"POST"
|
||||
]
|
||||
],
|
||||
"CamelCaseSeparator": ".",
|
||||
"UrlParameterization": true,
|
||||
"KeepVerb": true,
|
||||
"AbandonControllerAffixes": [
|
||||
"Controller"
|
||||
]
|
||||
},
|
||||
// 友好异常配置 -------------------------------------------------------------------------------------------------------
|
||||
"FriendlyExceptionSettings": {
|
||||
"LogError": false
|
||||
},
|
||||
// 日志配置 ----------------------------------------------------------------------------------------------------------
|
||||
"Logging": {
|
||||
"Monitor": {
|
||||
"GlobalEnabled": false,
|
||||
"ReturnValueThreshold": 1000
|
||||
}
|
||||
},
|
||||
// UnifyResultSettings 规范化配置 ------------------------------------------------------------------------------------
|
||||
"UnifyResultSettings": {
|
||||
"Return200StatusCodes": [
|
||||
999
|
||||
]
|
||||
},
|
||||
}
|
@ -1 +1 @@
|
||||
global using Furion.RemoteRequest;
|
||||
global using Gurion.RemoteRequest;
|
@ -1,3 +1,6 @@
|
||||
#if DBTYPE_SQLSERVER
|
||||
using Microsoft.Data.SqlClient;
|
||||
#endif
|
||||
using Newtonsoft.Json;
|
||||
using DataType = FreeSql.DataType;
|
||||
|
||||
@ -13,7 +16,13 @@ public sealed class FreeSqlBuilder(DatabaseOptions databaseOptions)
|
||||
/// </summary>
|
||||
public IFreeSql Build(FreeSqlInitMethods initMethods)
|
||||
{
|
||||
var freeSql = new FreeSql.FreeSqlBuilder().UseConnectionString(databaseOptions.DbType, databaseOptions.ConnStr)
|
||||
var freeSql = new FreeSql.FreeSqlBuilder()
|
||||
#if DBTYPE_SQLSERVER
|
||||
.UseConnectionFactory(databaseOptions.DbType, () => new SqlConnection(databaseOptions.ConnStr))
|
||||
.UseAdoConnectionPool(true)
|
||||
#else
|
||||
.UseConnectionString(databaseOptions.DbType, databaseOptions.ConnStr)
|
||||
#endif
|
||||
.UseGenerateCommandParameterWithLambda(true)
|
||||
.UseAutoSyncStructure(initMethods.HasFlag(FreeSqlInitMethods.SyncStructure))
|
||||
.Build();
|
||||
|
@ -19,7 +19,7 @@ public sealed class XmlCommentReader : ISingleton
|
||||
var xmlComments = specificationDocumentSettings.Value.XmlComments //
|
||||
?? App.GetConfig<SpecificationDocumentSettingsOptions>(nameof(SpecificationDocumentSettingsOptions).TrimSuffixOptions())
|
||||
.XmlComments;
|
||||
foreach (var commentFile in xmlComments.Where(x => x.Contains(nameof(NetAdmin)))) {
|
||||
foreach (var commentFile in xmlComments) {
|
||||
var xmlDoc = new XmlDocument();
|
||||
var xmlFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, commentFile);
|
||||
if (!File.Exists(xmlFilePath)) {
|
||||
|
@ -1,332 +0,0 @@
|
||||
{
|
||||
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
|
||||
// App基本配置
|
||||
"AppSettings": {
|
||||
// AppSettings:配置根节点
|
||||
// InjectMiniProfiler:是否注入 MiniProfiler,bool 类型,默认 true,关闭 Swagger 左上角监听
|
||||
// InjectSpecificationDocument:是否启用 Swagger 文档,bool 类型,默认 true,生产环境可关闭
|
||||
// EnabledReferenceAssemblyScan:是否启用通过 dll 方式添加的引用程序集扫描,bool 类型,默认 false
|
||||
// ExternalAssemblies:配置外部程序集完整路径,支持动态加载,string[] 类型,默认 []
|
||||
// PrintDbConnectionInfo:是否打印数据库连接信息到 MiniProfiler 中,bool 类型,默认 true
|
||||
// SupportPackageNamePrefixs:配置支持的包前缀名,string[] 类型,默认 []
|
||||
// OutputOriginalSqlExecuteLog:是否输出原始 Sql 执行日志(ADO.NET),默认 true
|
||||
// VirtualPath:配置虚拟目录,必须以 / 开头
|
||||
"InjectSpecificationDocument": false,
|
||||
"InjectMiniProfiler": false
|
||||
},
|
||||
// Swagger文档配置 ------------------------------------------------------------------------------
|
||||
"SpecificationDocumentSettings": {
|
||||
// DocumentTitle:文档标题,string,默认 Specification Api Document
|
||||
// DefaultGroupName:默认分组名,string,默认 Default
|
||||
// EnableAuthorized:是否启用权限控制,bool,默认 true
|
||||
// FormatAsV2:采用 Swagger 2.0 版本,bool,默认 false 已弃用
|
||||
// RoutePrefix:规范化文档地址,string,默认 api,如果希望在首页,改为空字符串即可。
|
||||
// DocExpansionState:文档显示方式,DocExpansion,默认 List,取值:
|
||||
// List:列表式(展开子类),默认值
|
||||
// Full:完全展开
|
||||
// None:列表式(不展开子类)
|
||||
// XmlComments:程序集注释描述文件名(可带 .xml,string,默认 Furion.Application, Furion.Web.Entry, Furion.Web.Core
|
||||
// GroupOpenApiInfos:分组信息配置,SpecificationOpenApiInfo[],默认 { 'Group': 'Default'}
|
||||
// SecurityDefinitions:安全策略定义配置,SpecificationOpenApiSecurityScheme[],默认 []
|
||||
// Servers:配置 Server 下拉列表,OpenApiServer[] 类型,默认 [],如:{Servers:[ { Url:"地址", Description:"描述"} ]}
|
||||
// HideServers:是否隐藏 Server 下拉列表,bool 类型,默认 true
|
||||
// RouteTemplate:配置文档 swagger.json 路由模板,默认模板:swagger/{documentName}/swagger.json, {documentName} 代表分组名,必须保留原样
|
||||
// PackagesGroups:配置模块化内置分组名称,string[] 类型,默认 []
|
||||
// EnableEnumSchemaFilter:启用枚举 Schema 筛选器,bool 类型,默认 true
|
||||
// EnableTagsOrderDocumentFilter:启用标签排序筛选器,bool 类型,默认 true
|
||||
// ServerDir:配置 IIS 添加 Application 部署名,string 类型,默认空,仅在 Furion v3.2.0+` 有效
|
||||
// LoginInfo:配置 Swagger 是否需要登录才能访问,SpecificationLoginInfo 类型,默认 null,仅在 Furion v3.3.3+` 有效
|
||||
// Enabled:是否启用登录授权,默认 false
|
||||
// CheckUrl:检查登录状态的 Url 地址,该地址必须是 POST 请求,已授权返回 200,否则返回 401
|
||||
// SubmitUrl:提交登录的 Url 地址,该地址必须是 POST 请求且只有一个 SpecificationAuth 类型参数,成功登录返回 200,否则返回 401,支持相对地址,以 / 开头
|
||||
// EnableAllGroups:启用 Swagger 总分组功能,自动将所有分组的接口合并到 All Groups 中,bool 类型,默认 false,仅在 Furion v3.3.4+` 有效
|
||||
// 另外 SpecificationOpenApiInfo 内置配置如下:
|
||||
//
|
||||
// Group:分组唯一标识,string 类型,必填
|
||||
// Order:分组排序,int 类型,数字越大排前面,默认 0
|
||||
// Visible:配置分组是否可见,bool 类型,默认 true
|
||||
// Title:配置分组标题,string 类型
|
||||
// Description:配置分组描述,string 类型
|
||||
// Version:配置分组版本,默认 1.0
|
||||
// TermsOfService:配置相关链接地址,Uri 类型
|
||||
// Contact:配置联系方式,OpenApiContact 类型
|
||||
// License:配置协议,OpenApiLicense 类型
|
||||
"EnableEnumSchemaFilter": false,
|
||||
"EnableAuthorized": false,
|
||||
"RoutePrefix": "swagger",
|
||||
"XmlComments": [
|
||||
"FreeSql.xml",
|
||||
"NetAdmin.AdmServer.Application.xml",
|
||||
"NetAdmin.AdmServer.Cache.xml",
|
||||
"NetAdmin.AdmServer.Host.xml",
|
||||
"NetAdmin.Application.xml",
|
||||
"NetAdmin.Cache.xml",
|
||||
"NetAdmin.Domain.xml",
|
||||
"NetAdmin.Host.xml",
|
||||
"NetAdmin.Infrastructure.xml",
|
||||
"NetAdmin.ScheduledService.xml",
|
||||
"NetAdmin.SysComponent.Application.xml",
|
||||
"NetAdmin.SysComponent.Cache.xml",
|
||||
"NetAdmin.SysComponent.Host.xml",
|
||||
]
|
||||
},
|
||||
// 验证码配置 --------------------------------------------------------------------------------------------------------
|
||||
"Captcha": {
|
||||
"ImageRelativePath": ".data/captcha",
|
||||
"SecretKey": "1Z?f(2)%v?:X5NYRl+]PSi.rDf7Ip#lB"
|
||||
},
|
||||
// 跨域配置 ----------------------------------------------------------------------------------------------------------
|
||||
"CorsAccessorSettings": {
|
||||
// CorsAccessorSettings
|
||||
// PolicyName:跨域策略名,string 类型,必填,默认 App.Cors.Policy
|
||||
// WithOrigins:允许跨域的域名列表,string[] 类型,默认 *
|
||||
// WithHeaders:请求表头,没有配置则允许所有表头,string[] 类型
|
||||
// WithExposedHeaders:设置客户端可获取的响应标头,string[] 类型,默认 ["access-token", "x-access-token"]
|
||||
// WithMethods:设置跨域允许请求谓词,没有配置则允许所有,string[] 类型
|
||||
// AllowCredentials:是否允许跨域请求中的凭据,bool 类型,默认值 true
|
||||
// SetPreflightMaxAge:设置预检过期时间,int 类型,默认值 24小时
|
||||
// FixedClientToken:是否默认配置 WithExposedHeaders,bool 类型,默认 true
|
||||
// SignalRSupport:是否启用 SignalR 跨域支持,bool 类型,默认 false
|
||||
"WithExposedHeaders": [
|
||||
"access-token",
|
||||
"x-access-token",
|
||||
"content-disposition"
|
||||
]
|
||||
},
|
||||
// 数据库配置 --------------------------------------------------------------------------------------------------------
|
||||
"Database": {
|
||||
"DbType": "Sqlite",
|
||||
"ConnStr": "data source=NetAdmin.db",
|
||||
"SeedDataRelativePath": "SeedData"
|
||||
},
|
||||
// 动态webapi配置 ----------------------------------------------------------------------------------------------------
|
||||
"DynamicApiControllerSettings": {
|
||||
// 5.1.10 DynamicApiControllerSettings 配置
|
||||
// Furion 还提供动态 WebAPI 接口一些全局配置选项,如:
|
||||
//
|
||||
// DefaultRoutePrefix:默认路由前缀,string,默认 api
|
||||
// DefaultHttpMethod:默认请求谓词,string,默认:POST
|
||||
// DefaultModule:默认模块名称(区域),可用作接口版本,string,默认:v1
|
||||
// LowercaseRoute:小写路由格式,bool,默认:true
|
||||
// AsLowerCamelCase:启用小驼峰命名(首字母小写),默认 false
|
||||
// KeepVerb:是否保留动作谓词,bool,默认:false
|
||||
// KeepName:是否保留默认名称,bool,默认:fasle
|
||||
// CamelCaseSeparator:骆驼(驼峰)/帕斯卡命名分隔符,string,默认:-
|
||||
// VersionSeparator:版本分隔符,string,默认:@
|
||||
// ModelToQuery:GET/HEAD 请求将 类类型参数转查询参数,bool,默认 false
|
||||
// SupportedMvcController:是否支持 Mvc Controller 动态配置,bool,默认 false
|
||||
// UrlParameterization:路由参数采用 [FromQuery] 化,默认 false([FromRoute] 方式)
|
||||
// DefaultArea:配置默认区域,默认 null
|
||||
// ForceWithRoutePrefix:配置是否强制添加 DefaultRoutePrefix,当控制器自定义了 [Route] 有效,仅限 v3.4.1+版本有效
|
||||
// AbandonControllerAffixes:默认去除控制器名称前后缀列表名,string[],默认:
|
||||
// AppServices
|
||||
// AppService
|
||||
// ApiController
|
||||
// Controller
|
||||
// Services
|
||||
// Service
|
||||
// AbandonActionAffixes:默认去除动作方法名称前后缀列表名,string[],默认:
|
||||
// Async
|
||||
// VerbToHttpMethods:复写默认方法名转 [HttpMethod] 规则,string[][] 二维数组类型,内置匹配规则为:
|
||||
// ["post"] = "POST",
|
||||
// ["add"] = "POST",
|
||||
// ["create"] = "POST",
|
||||
// ["insert"] = "POST",
|
||||
// ["submit"] = "POST",
|
||||
// ["get"] = "GET",
|
||||
// ["find"] = "GET",
|
||||
// ["fetch"] = "GET",
|
||||
// ["query"] = "GET",
|
||||
// ["getlist"] = "GET",
|
||||
// ["getall"] = "GET",
|
||||
// ["put"] = "PUT",
|
||||
// ["update"] = "PUT",
|
||||
// ["delete"] = "DELETE",
|
||||
// ["remove"] = "DELETE",
|
||||
// ["clear"] = "DELETE",
|
||||
// ["patch"] = "PATCH"
|
||||
//
|
||||
// 复写示例
|
||||
// "DynamicApiControllerSettings": {
|
||||
// "VerbToHttpMethods": [
|
||||
// [ "getall", "HEAD" ], // => getall 会被复写为 `[HttpHead]`
|
||||
// [ "other", "PUT" ] // => 新增一条新规则,比如,一 `[other]` 开头会转换为 `[HttpPut]` 请求
|
||||
// ]
|
||||
// }
|
||||
// "DefaultRoutePrefix": "rest",
|
||||
"VerbToHttpMethods": [
|
||||
[
|
||||
"post",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"add",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"create",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"insert",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"submit",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"get",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"find",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"fetch",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"query",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"getlist",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"getall",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"put",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"update",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"delete",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"remove",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"clear",
|
||||
"POST"
|
||||
],
|
||||
[
|
||||
"patch",
|
||||
"POST"
|
||||
]
|
||||
],
|
||||
"CamelCaseSeparator": ".",
|
||||
"UrlParameterization": true,
|
||||
"KeepVerb": true,
|
||||
"AbandonControllerAffixes": [
|
||||
"Controller"
|
||||
],
|
||||
},
|
||||
// 友好异常配置 -------------------------------------------------------------------------------------------------------
|
||||
"FriendlyExceptionSettings": {
|
||||
// 7.15 FriendlyExceptionSettings 配置
|
||||
// HideErrorCode:隐藏错误码,bool 类型,默认 false
|
||||
// DefaultErrorCode:默认错误码,string 类型
|
||||
// DefaultErrorMessage:默认错误消息,string 类型
|
||||
// ThrowBah:是否将 Oops.Oh 默认抛出为业务异常,bool 类型,默认 false,设置 true 之后 Oops.Oh 默认进入 OnValidateFailed 处理,而不是 OnException
|
||||
// LogError:是否输出异常日志,bool 类型,默认 true
|
||||
"LogError": false
|
||||
},
|
||||
// JWT鉴权配置 -------------------------------------------------------------------------------------------------------
|
||||
"JWTSettings": {
|
||||
"ValidateIssuerSigningKey": true,
|
||||
// 是否验证密钥,bool 类型,默认true
|
||||
"IssuerSigningKey": "bO0BCAGxpxYnm6AE4XpgO25T27NayFzjGgfDqBuzUzD6ROpFiZUi3KjVg93bdGek",
|
||||
// 密钥,string 类型,必须是复杂密钥,长度大于16
|
||||
"ValidateIssuer": true,
|
||||
// 是否验证签发方,bool 类型,默认true
|
||||
"ValidIssuer": "签发方",
|
||||
// 签发方,string 类型
|
||||
"ValidateAudience": true,
|
||||
// 是否验证签收方,bool 类型,默认true
|
||||
"ValidAudience": "签收方",
|
||||
// 签收方,string 类型
|
||||
"ValidateLifetime": true,
|
||||
// 是否验证过期时间,bool 类型,默认true,建议true
|
||||
"ExpiredTime": 20,
|
||||
// 过期时间,long 类型,单位分钟,默认20分钟
|
||||
"ClockSkew": 5,
|
||||
// 过期时间容错值,long 类型,单位秒,默认 5秒
|
||||
"Algorithm": "HS256"
|
||||
// 加密算法,string 类型,默认 HS256
|
||||
},
|
||||
// 日志配置 ----------------------------------------------------------------------------------------------------------
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning",
|
||||
"System.Logging.EventBusService": "Error"
|
||||
},
|
||||
"Monitor": {
|
||||
"GlobalEnabled": false,
|
||||
// 是否启用全局拦截,默认 `false`
|
||||
// "IncludeOfMethods": [], // 是否指定拦截特定方法,当 GlobalEnabled: false 有效
|
||||
// "ExcludeOfMethods": [], // 是否指定排除特定方法,当 GlobalEnabled: true 有效
|
||||
// "BahLogLevel": "Information", // 配置 Oops.Oh 和 Oops.Bah 业务日志输出级别,默认 Information
|
||||
// "WithReturnValue": true, // 配置是否包含返回值,默认 `true`,Furion 4.3.9+ 有效
|
||||
"ReturnValueThreshold": 1000
|
||||
// 配置返回值字符串阈值,默认 0,全量输出,Furion 4.3.9+ 有效
|
||||
// "JsonBehavior": "None", // 配置 LoggingMonitor Json 输出行为,默认 None,Furion 4.5.2+ 有效
|
||||
// "MethodsSettings": [
|
||||
// // 配置被监视方法更多信息,Furion 4.3.9+ 有效
|
||||
// {
|
||||
// "FullName": "Furion.Application.TestLoggerServices.MethodName", // 方法完全限定名
|
||||
// "WithReturnValue": true, // 配置是否包含返回值,默认 `true`,Furion 4.3.9+ 有效
|
||||
// "ReturnValueThreshold": 0 // 配置返回值字符串阈值,默认 0,全量输出,Furion 4.3.9+ 有效
|
||||
// }
|
||||
// ]
|
||||
}
|
||||
},
|
||||
// Redis配置 --------------------------------------------------------------------------------------------------------
|
||||
"Redis": {
|
||||
"Instances": [
|
||||
// 数据缓存
|
||||
{
|
||||
"Name": "DataCache",
|
||||
"ConnStr": "localhost:6379,abortConnect=false",
|
||||
"DataBase": 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
// UnifyResultSettings 规范化配置 ------------------------------------------------------------------------------------
|
||||
"UnifyResultSettings": {
|
||||
// Return200StatusCodes:配置返回 200 状态码的请求,int[] 类型,只支持 400+(404除外) 状态码篡改
|
||||
// AdaptStatusCodes:配置篡改状态码规则,int[][] 类型,只支持 400+(404除外) 状态码篡改
|
||||
// SupportMvcController:是否支持 MVC 控制台规范化处理,bool 类型,默认 false
|
||||
"Return200StatusCodes": [
|
||||
999
|
||||
],
|
||||
},
|
||||
// 文件上传配置 -------------------------------------------------------------------------------------------------------
|
||||
"Upload": {
|
||||
"ContentTypes": [
|
||||
"image/jpg",
|
||||
"image/png",
|
||||
"image/jpeg",
|
||||
"image/gif"
|
||||
],
|
||||
"MaxSize": 1073741824,
|
||||
"Minio": {
|
||||
"ServerAddress": "vm-ubt-1:9000",
|
||||
"AccessKey": "nVMM0gSqwyIjM8iZ",
|
||||
"SecretKey": "F8OZngGrNsZSYn4MP9swwMSf5rfm61EC",
|
||||
"BucketName": "net-admin",
|
||||
"AccessUrl": "http://vm-ubt-1:9000",
|
||||
"Secure": false,
|
||||
}
|
||||
},
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Api;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Api;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Cache;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Cache;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Captcha;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Captcha;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Config;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Config;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Dept;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Dept;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Dev;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Dev;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Dic.Catalog;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Dic.Catalog;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Dic.Content;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Dic.Content;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Dic.Catalog;
|
||||
using NetAdmin.Domain.Dto.Sys.Dic.Content;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Dic.Catalog;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Dic.Content;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
using NetAdmin.Domain.Dto.Sys;
|
||||
using NetAdmin.Domain.Dto.Sys.Job;
|
||||
using NetAdmin.Domain.Dto.Sys.JobRecord;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Job;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.JobRecord;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.JobRecord;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.JobRecord;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.LoginLog;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.LoginLog;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Menu;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Menu;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.RequestLogDetail;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.RequestLogDetail;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys;
|
||||
using NetAdmin.Domain.Dto.Sys.RequestLog;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.RequestLog;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Role;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Role;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using NetAdmin.Domain.Dto.Sys.SiteMsgDept;
|
||||
using NetAdmin.SysComponent.Domain.Dto.Sys.SiteMsgDept;
|
||||
|
||||
namespace NetAdmin.SysComponent.Application.Modules.Sys;
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user