Browse Source

添加项目文件。

master
lvzb 1 year ago
commit
ad8b9ea143
  1. 1
      .gitattributes
  2. 262
      .gitignore
  3. 5
      .prettierrc
  4. 151
      API.sln
  5. 23
      API.sln.DotSettings
  6. 6
      NuGet.Config
  7. 38
      WinForm/App.config
  8. 72
      WinForm/Form1.Designer.cs
  9. 20
      WinForm/Form1.cs
  10. 120
      WinForm/Form1.resx
  11. 36
      WinForm/Program.cs
  12. 36
      WinForm/Properties/AssemblyInfo.cs
  13. 70
      WinForm/Properties/Resources.Designer.cs
  14. 117
      WinForm/Properties/Resources.resx
  15. 29
      WinForm/Properties/Settings.Designer.cs
  16. 7
      WinForm/Properties/Settings.settings
  17. 233
      WinForm/WinForm.csproj
  18. 58
      WinForm/WinFormModule.cs
  19. 44
      WinForm/packages.config
  20. 62
      WinFormsApp/Form1.Designer.cs
  21. 75
      WinFormsApp/Form1.cs
  22. 60
      WinFormsApp/Form1.resx
  23. 73
      WinFormsApp/Program.cs
  24. 65
      WinFormsApp/WinFormModule.cs
  25. 35
      WinFormsApp/WinFormsApp.csproj
  26. 22
      WinFormsApp/appsettings.json
  27. 36
      WindowsFormsControlLibrary1/Properties/AssemblyInfo.cs
  28. 38
      WindowsFormsControlLibrary1/UserControl1.Designer.cs
  29. 20
      WindowsFormsControlLibrary1/UserControl1.cs
  30. 62
      WindowsFormsControlLibrary1/WindowsFormsControlLibrary1.csproj
  31. 15
      common.props
  32. 18
      install-service.bat
  33. 24
      src/API.Application.Contracts/API.Application.Contracts.csproj
  34. 29
      src/API.Application.Contracts/APIApplicationContractsModule.cs
  35. 29
      src/API.Application.Contracts/APIDtoExtensions.cs
  36. 12
      src/API.Application.Contracts/IBackgroundJobManagerApplication.cs
  37. 21
      src/API.Application.Contracts/Permissions/APIPermissionDefinitionProvider.cs
  38. 10
      src/API.Application.Contracts/Permissions/APIPermissions.cs
  39. 15
      src/API.Application.Contracts/RequestDto.cs
  40. 24
      src/API.Application/API.Application.csproj
  41. 18
      src/API.Application/APIAppService.cs
  42. 16
      src/API.Application/APIApplicationAutoMapperProfile.cs
  43. 32
      src/API.Application/APIApplicationModule.cs
  44. 46
      src/API.Application/BackgroundJobManagerApplication.cs
  45. 15
      src/API.Application/JobArgs.cs
  46. 2
      src/API.Application/Properties/AssemblyInfo.cs
  47. 43
      src/API.DbMigrator/API.DbMigrator.csproj
  48. 20
      src/API.DbMigrator/APIDbMigratorModule.cs
  49. 47
      src/API.DbMigrator/DbMigratorHostedService.cs
  50. 45
      src/API.DbMigrator/Program.cs
  51. 29
      src/API.DbMigrator/appsettings.json
  52. 2
      src/API.DbMigrator/appsettings.secrets.json
  53. 13
      src/API.DbMigrator/tempkey.rsa
  54. 32
      src/API.Domain.Shared/API.Domain.Shared.csproj
  55. 7
      src/API.Domain.Shared/APIDomainErrorCodes.cs
  56. 59
      src/API.Domain.Shared/APIDomainSharedModule.cs
  57. 23
      src/API.Domain.Shared/APIGlobalFeatureConfigurator.cs
  58. 72
      src/API.Domain.Shared/APIModuleExtensionConfigurator.cs
  59. 36
      src/API.Domain.Shared/DataHelper.cs
  60. 19
      src/API.Domain.Shared/Enums/EnumCompanyType.cs
  61. 63
      src/API.Domain.Shared/Filter/EnumFilterAction.cs
  62. 18
      src/API.Domain.Shared/Filter/EnumFilterLogic.cs
  63. 43
      src/API.Domain.Shared/Filter/FilterCondition.cs
  64. 314
      src/API.Domain.Shared/Filter/FilterExtensions.cs
  65. 40
      src/API.Domain.Shared/JsonHelper.cs
  66. 8
      src/API.Domain.Shared/Localization/API/ar.json
  67. 8
      src/API.Domain.Shared/Localization/API/cs.json
  68. 8
      src/API.Domain.Shared/Localization/API/de-DE.json
  69. 8
      src/API.Domain.Shared/Localization/API/en-GB.json
  70. 8
      src/API.Domain.Shared/Localization/API/en.json
  71. 8
      src/API.Domain.Shared/Localization/API/es.json
  72. 8
      src/API.Domain.Shared/Localization/API/fi.json
  73. 8
      src/API.Domain.Shared/Localization/API/fr.json
  74. 8
      src/API.Domain.Shared/Localization/API/hi.json
  75. 8
      src/API.Domain.Shared/Localization/API/hu.json
  76. 8
      src/API.Domain.Shared/Localization/API/it.json
  77. 8
      src/API.Domain.Shared/Localization/API/nl.json
  78. 8
      src/API.Domain.Shared/Localization/API/pl-PL.json
  79. 8
      src/API.Domain.Shared/Localization/API/pt-BR.json
  80. 8
      src/API.Domain.Shared/Localization/API/ru.json
  81. 8
      src/API.Domain.Shared/Localization/API/sk.json
  82. 8
      src/API.Domain.Shared/Localization/API/sl.json
  83. 8
      src/API.Domain.Shared/Localization/API/tr.json
  84. 8
      src/API.Domain.Shared/Localization/API/vi.json
  85. 8
      src/API.Domain.Shared/Localization/API/zh-Hans.json
  86. 8
      src/API.Domain.Shared/Localization/API/zh-Hant.json
  87. 10
      src/API.Domain.Shared/Localization/APIResource.cs
  88. 11
      src/API.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs
  89. 50
      src/API.Domain.Shared/TD_DATA.cs
  90. 29
      src/API.Domain/API.Domain.csproj
  91. 9
      src/API.Domain/APIConsts.cs
  92. 18
      src/API.Domain/APIDbProperties.cs
  93. 46
      src/API.Domain/APIDomainModule.cs
  94. 92
      src/API.Domain/BudgetDataSources/JQ_LRB.cs
  95. 93
      src/API.Domain/BudgetDataSources/JQ_QJFYB.cs
  96. 101
      src/API.Domain/BudgetDataSources/JQ_SCCBB.cs
  97. 106
      src/API.Domain/BudgetDataSources/JQ_XJLLB.cs
  98. 92
      src/API.Domain/BudgetDataSources/JQ_ZCFZB.cs
  99. 92
      src/API.Domain/BudgetDataSources/JQ_ZZFYB.cs
  100. 72
      src/API.Domain/BudgetDataSources/TI_CBB04_BUDGET.cs

1
.gitattributes

@ -0,0 +1 @@
**/wwwroot/libs/** linguist-vendored

262
.gitignore

@ -0,0 +1,262 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# API
src/API.Web/Logs/*
src/API.Web.Host/Logs/*
src/API.IdentityServer/Logs/*
src/API.HttpApi.Host/Logs/*
src/API.HttpApi.HostWithIds/Logs/*
src/API.DbMigrator/Logs/*
src/API.Blazor.Server/Logs/*
src/API.Blazor.Server.Tiered/Logs/*

5
.prettierrc

@ -0,0 +1,5 @@
{
"singleQuote": true,
"useTabs": false,
"tabWidth": 4
}

151
API.sln

@ -0,0 +1,151 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29020.237
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Domain", "src\API.Domain\API.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Application", "src\API.Application\API.Application.csproj", "{1A94A50E-06DC-43C1-80B5-B662820EC3EB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.EntityFrameworkCore", "src\API.EntityFrameworkCore\API.EntityFrameworkCore.csproj", "{C956DD76-69C8-4A9C-83EA-D17DF83340FD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Web", "src\API.Web\API.Web.csproj", "{068855E8-9240-4F1A-910B-CF825794513B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CA9AC87F-097E-4F15-8393-4BC07735A5B0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{04DBDB01-70F4-4E06-B468-8F87850B22BE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Application.Tests", "test\API.Application.Tests\API.Application.Tests.csproj", "{50B2631D-129C-47B3-A587-029CCD6099BC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Web.Tests", "test\API.Web.Tests\API.Web.Tests.csproj", "{5F1B28C6-8D0C-4155-92D0-252F7EA5F674}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Domain.Shared", "src\API.Domain.Shared\API.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Application.Contracts", "src\API.Application.Contracts\API.Application.Contracts.csproj", "{520659C8-C734-4298-A3DA-B539DB9DFC0B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.HttpApi", "src\API.HttpApi\API.HttpApi.csproj", "{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.HttpApi.Client", "src\API.HttpApi.Client\API.HttpApi.Client.csproj", "{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.EntityFrameworkCore.Tests", "test\API.EntityFrameworkCore.Tests\API.EntityFrameworkCore.Tests.csproj", "{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.TestBase", "test\API.TestBase\API.TestBase.csproj", "{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.Domain.Tests", "test\API.Domain.Tests\API.Domain.Tests.csproj", "{E512F4D9-9375-480F-A2F6-A46509F9D824}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.HttpApi.Client.ConsoleTestApp", "test\API.HttpApi.Client.ConsoleTestApp\API.HttpApi.Client.ConsoleTestApp.csproj", "{EF480016-9127-4916-8735-D2466BDBC582}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API.DbMigrator", "src\API.DbMigrator\API.DbMigrator.csproj", "{AA94D832-1CCC-4715-95A9-A483F23A1A5D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsApp", "WinFormsApp\WinFormsApp.csproj", "{38E8D5E4-CAB6-442A-B5EB-196083564058}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfApp1", "src\WpfApp1\WpfApp1.csproj", "{310B6403-04A2-42C8-87AB-22C5BF73AEAA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AbpWindowsService", "src\AbpWindowsService\AbpWindowsService.csproj", "{DB081010-C3E1-4ECD-A39F-A8AA0A490F45}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.Build.0 = Release|Any CPU
{1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Release|Any CPU.Build.0 = Release|Any CPU
{C956DD76-69C8-4A9C-83EA-D17DF83340FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C956DD76-69C8-4A9C-83EA-D17DF83340FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C956DD76-69C8-4A9C-83EA-D17DF83340FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C956DD76-69C8-4A9C-83EA-D17DF83340FD}.Release|Any CPU.Build.0 = Release|Any CPU
{068855E8-9240-4F1A-910B-CF825794513B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{068855E8-9240-4F1A-910B-CF825794513B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{068855E8-9240-4F1A-910B-CF825794513B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{068855E8-9240-4F1A-910B-CF825794513B}.Release|Any CPU.Build.0 = Release|Any CPU
{50B2631D-129C-47B3-A587-029CCD6099BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{50B2631D-129C-47B3-A587-029CCD6099BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{50B2631D-129C-47B3-A587-029CCD6099BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{50B2631D-129C-47B3-A587-029CCD6099BC}.Release|Any CPU.Build.0 = Release|Any CPU
{5F1B28C6-8D0C-4155-92D0-252F7EA5F674}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5F1B28C6-8D0C-4155-92D0-252F7EA5F674}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F1B28C6-8D0C-4155-92D0-252F7EA5F674}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5F1B28C6-8D0C-4155-92D0-252F7EA5F674}.Release|Any CPU.Build.0 = Release|Any CPU
{42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.Build.0 = Debug|Any CPU
{42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.ActiveCfg = Release|Any CPU
{42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.Build.0 = Release|Any CPU
{520659C8-C734-4298-A3DA-B539DB9DFC0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{520659C8-C734-4298-A3DA-B539DB9DFC0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{520659C8-C734-4298-A3DA-B539DB9DFC0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{520659C8-C734-4298-A3DA-B539DB9DFC0B}.Release|Any CPU.Build.0 = Release|Any CPU
{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Release|Any CPU.Build.0 = Release|Any CPU
{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Release|Any CPU.Build.0 = Release|Any CPU
{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Release|Any CPU.Build.0 = Release|Any CPU
{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.Build.0 = Release|Any CPU
{E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.Build.0 = Release|Any CPU
{EF480016-9127-4916-8735-D2466BDBC582}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EF480016-9127-4916-8735-D2466BDBC582}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EF480016-9127-4916-8735-D2466BDBC582}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EF480016-9127-4916-8735-D2466BDBC582}.Release|Any CPU.Build.0 = Release|Any CPU
{AA94D832-1CCC-4715-95A9-A483F23A1A5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AA94D832-1CCC-4715-95A9-A483F23A1A5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AA94D832-1CCC-4715-95A9-A483F23A1A5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AA94D832-1CCC-4715-95A9-A483F23A1A5D}.Release|Any CPU.Build.0 = Release|Any CPU
{38E8D5E4-CAB6-442A-B5EB-196083564058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{38E8D5E4-CAB6-442A-B5EB-196083564058}.Debug|Any CPU.Build.0 = Debug|Any CPU
{38E8D5E4-CAB6-442A-B5EB-196083564058}.Release|Any CPU.ActiveCfg = Release|Any CPU
{38E8D5E4-CAB6-442A-B5EB-196083564058}.Release|Any CPU.Build.0 = Release|Any CPU
{310B6403-04A2-42C8-87AB-22C5BF73AEAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{310B6403-04A2-42C8-87AB-22C5BF73AEAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{310B6403-04A2-42C8-87AB-22C5BF73AEAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{310B6403-04A2-42C8-87AB-22C5BF73AEAA}.Release|Any CPU.Build.0 = Release|Any CPU
{DB081010-C3E1-4ECD-A39F-A8AA0A490F45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB081010-C3E1-4ECD-A39F-A8AA0A490F45}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB081010-C3E1-4ECD-A39F-A8AA0A490F45}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DB081010-C3E1-4ECD-A39F-A8AA0A490F45}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{554AD327-6DBA-4F8F-96F8-81CE7A0C863F} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{1A94A50E-06DC-43C1-80B5-B662820EC3EB} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{C956DD76-69C8-4A9C-83EA-D17DF83340FD} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{068855E8-9240-4F1A-910B-CF825794513B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{50B2631D-129C-47B3-A587-029CCD6099BC} = {04DBDB01-70F4-4E06-B468-8F87850B22BE}
{5F1B28C6-8D0C-4155-92D0-252F7EA5F674} = {04DBDB01-70F4-4E06-B468-8F87850B22BE}
{42F719ED-8413-4895-B5B4-5AB56079BC66} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{520659C8-C734-4298-A3DA-B539DB9DFC0B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{4164BDF7-F527-4E85-9CE6-E3C2D7426A27} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{3B5A0094-670D-4BB1-BFDD-61B88A8773DC} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81} = {04DBDB01-70F4-4E06-B468-8F87850B22BE}
{91853F21-9CD9-4132-BC29-A7D5D84FFFE7} = {04DBDB01-70F4-4E06-B468-8F87850B22BE}
{E512F4D9-9375-480F-A2F6-A46509F9D824} = {04DBDB01-70F4-4E06-B468-8F87850B22BE}
{EF480016-9127-4916-8735-D2466BDBC582} = {04DBDB01-70F4-4E06-B468-8F87850B22BE}
{AA94D832-1CCC-4715-95A9-A483F23A1A5D} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{38E8D5E4-CAB6-442A-B5EB-196083564058} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{310B6403-04A2-42C8-87AB-22C5BF73AEAA} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{DB081010-C3E1-4ECD-A39F-A8AA0A490F45} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F}
EndGlobalSection
EndGlobal

23
API.sln.DotSettings

@ -0,0 +1,23 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntelliSenseCompletingCharacters/CSharpCompletingCharacters/UpgradedFromVSSettings/@EntryValue">True</s:Boolean>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceDoWhileStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceFixedStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceForeachStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceForStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceIfStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceLockStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceUsingStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceWhileStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_FOR/@EntryValue">Required</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_FOREACH/@EntryValue">Required</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_IFELSE/@EntryValue">Required</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_WHILE/@EntryValue">Required</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_REDUNDANT/@EntryValue">False</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/Generate/=Implementations/@KeyIndexDefined">True</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=Async/@EntryIndexedValue">False</s:String>
<s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=Mutable/@EntryIndexedValue">False</s:String>
<s:Boolean x:Key="/Default/CodeStyle/Generate/=Overrides/@KeyIndexDefined">True</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Generate/=Overrides/Options/=Async/@EntryIndexedValue">False</s:String>
<s:String x:Key="/Default/CodeStyle/Generate/=Overrides/Options/=Mutable/@EntryIndexedValue">False</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SQL/@EntryIndexedValue">SQL</s:String>
</wpf:ResourceDictionary>

6
NuGet.Config

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="BlazoriseMyGet" value="https://www.myget.org/F/blazorise/api/v3/index.json" />
</packageSources>
</configuration>

38
WinForm/App.config

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Primitives" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.FileProviders.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Hosting.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

72
WinForm/Form1.Designer.cs

@ -0,0 +1,72 @@

namespace WinForm
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(505, 443);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(215, 85);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(499, 337);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(221, 35);
this.textBox1.TabIndex = 1;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(2024, 1002);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox1;
}
}

20
WinForm/Form1.cs

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}

120
WinForm/Form1.resx

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

36
WinForm/Program.cs

@ -0,0 +1,36 @@
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinForm
{
public class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
private IHost CreateHostBuilder()
{
return Host
.CreateDefaultBuilder(null)
.UseAutofac()
.UseSerilog()
.ConfigureServices((hostContext, services) =>
{
services.AddApplication<WinFormModule>();
}).Build();
}
}
}

36
WinForm/Properties/AssemblyInfo.cs

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("WinForm")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WinForm")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("9fe4f100-99c0-4eb9-9baf-a75944476d15")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

70
WinForm/Properties/Resources.Designer.cs

@ -0,0 +1,70 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace WinForm.Properties
{
/// <summary>
/// 强类型资源类,用于查找本地化字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// 返回此类使用的缓存 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WinForm.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

117
WinForm/Properties/Resources.resx

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

29
WinForm/Properties/Settings.Designer.cs

@ -0,0 +1,29 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WinForm.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

7
WinForm/Properties/Settings.settings

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

233
WinForm/WinForm.csproj

@ -0,0 +1,233 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.props" Condition="Exists('..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{9FE4F100-99C0-4EB9-9BAF-A75944476D15}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>WinForm</RootNamespace>
<AssemblyName>WinForm</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.5.0.0\lib\net461\Microsoft.Extensions.Configuration.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.Binder, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.Binder.5.0.0\lib\net461\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.CommandLine, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.CommandLine.5.0.0\lib\net461\Microsoft.Extensions.Configuration.CommandLine.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.EnvironmentVariables.5.0.0\lib\net461\Microsoft.Extensions.Configuration.EnvironmentVariables.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.FileExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.FileExtensions.5.0.0\lib\net461\Microsoft.Extensions.Configuration.FileExtensions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.Json.5.0.0\lib\net461\Microsoft.Extensions.Configuration.Json.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.UserSecrets, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\lib\net461\Microsoft.Extensions.Configuration.UserSecrets.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.5.0.0\lib\net461\Microsoft.Extensions.DependencyInjection.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.FileProviders.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.FileProviders.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.FileProviders.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.FileProviders.Physical, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.FileProviders.Physical.5.0.0\lib\net461\Microsoft.Extensions.FileProviders.Physical.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.FileSystemGlobbing, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.FileSystemGlobbing.5.0.0\lib\net461\Microsoft.Extensions.FileSystemGlobbing.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Hosting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Hosting.5.0.0\lib\net461\Microsoft.Extensions.Hosting.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Hosting.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Hosting.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Hosting.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.5.0.0\lib\net461\Microsoft.Extensions.Logging.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Configuration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.Configuration.5.0.0\lib\net461\Microsoft.Extensions.Logging.Configuration.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Console, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.Console.5.0.0\lib\net461\Microsoft.Extensions.Logging.Console.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Debug, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.Debug.5.0.0\lib\net461\Microsoft.Extensions.Logging.Debug.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.EventLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.EventLog.5.0.0\lib\net461\Microsoft.Extensions.Logging.EventLog.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.EventSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.EventSource.5.0.0\lib\net461\Microsoft.Extensions.Logging.EventSource.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Options.5.0.0\lib\net461\Microsoft.Extensions.Options.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Options.ConfigurationExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.5.0.0\lib\net461\Microsoft.Extensions.Options.ConfigurationExtensions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Primitives.6.0.0\lib\net461\Microsoft.Extensions.Primitives.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.5.0.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encodings.Web.5.0.0\lib\net461\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Json.5.0.0\lib\net461\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="WinFormModule.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.targets'))" />
</Target>
<Import Project="..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.targets" Condition="Exists('..\packages\Microsoft.Extensions.Configuration.UserSecrets.5.0.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.targets')" />
</Project>

58
WinForm/WinFormModule.cs

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WinForm
{
[DependsOn(
typeof(AbpAutofacModule),
typeof(AbpAutoMapperModule),
typeof(AbpHttpClientModule),
typeof(FmpApplicationContractsModule),
typeof(AbpHttpClientIdentityModelModule),
typeof(AbpIdentityHttpApiClientModule)
)]
public class WinFormModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddHttpClientProxies(
typeof(FmpApplicationContractsModule).Assembly,
remoteServiceConfigurationName: "Default"
);
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<FmpWpfModule>();
});
//var configuration = context.Services.GetConfiguration();
//ConfigureIdentityClientOption(context, configuration);
//context.Services.AddSingleton<FinancialMainWindow>();
context.Services.AddSingleton<LoginMainWindow>();
}
private static void ConfigureIdentityClientOption(ServiceConfigurationContext context, IConfiguration configuration)
{
var defaultClientConfiguration = new IdentityClientConfiguration(
configuration["IdentityClients:Default:Authority"],
configuration["IdentityClients:Default:Scope"],
configuration["IdentityClients:Default:ClientId"],
configuration["IdentityClients:Default:ClientSecret"],
configuration["IdentityClients:Default:GrantType"],
configuration["IdentityClients:Default:UserName"],
configuration["IdentityClients:Default:UserPassword"],
false,
1800
);
context.Services.AddOptions<AbpIdentityClientOptions>().Configure(option =>
{
option.IdentityClients.Default = defaultClientConfiguration;
});
}
}
}

44
WinForm/packages.config

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Bcl.AsyncInterfaces" version="6.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Configuration" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Configuration.Abstractions" version="6.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Configuration.Binder" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Configuration.CommandLine" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Configuration.EnvironmentVariables" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Configuration.FileExtensions" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Configuration.Json" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Configuration.UserSecrets" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.DependencyInjection" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="6.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.FileProviders.Abstractions" version="6.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.FileProviders.Physical" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.FileSystemGlobbing" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Hosting" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Hosting.Abstractions" version="6.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Logging" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Logging.Abstractions" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Logging.Configuration" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Logging.Console" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Logging.Debug" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Logging.EventLog" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Logging.EventSource" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Options" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Options.ConfigurationExtensions" version="5.0.0" targetFramework="net472" />
<package id="Microsoft.Extensions.Primitives" version="6.0.0" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.Diagnostics.DiagnosticSource" version="5.0.0" targetFramework="net472" />
<package id="System.IO" version="4.3.0" targetFramework="net472" />
<package id="System.Memory" version="4.5.4" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Runtime" version="4.3.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net472" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net472" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net472" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net472" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net472" />
<package id="System.Text.Encodings.Web" version="5.0.0" targetFramework="net472" />
<package id="System.Text.Json" version="5.0.0" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
</packages>

62
WinFormsApp/Form1.Designer.cs

@ -0,0 +1,62 @@

namespace WinFormsApp
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(96, 71);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(150, 46);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(14F, 31F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button button1;
}
}

75
WinFormsApp/Form1.cs

@ -0,0 +1,75 @@
using API;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Volo.Abp;
using Volo.Abp.DependencyInjection;
namespace WinFormsApp
{
public partial class Form1 : Form,ITransientDependency
{
//private readonly IHost _host;
//private readonly IAbpApplicationWithExternalServiceProvider _application;
//private IBackgroundJobManagerApplication _service;
private IBackgroundJobManagerApplication _service;
public Form1(IBackgroundJobManagerApplication service)
{
//_host = CreateHostBuilder();
//_service = _host.Services.GetService<IBackgroundJobManagerApplication>();
_service= service;
InitializeComponent();
}
private IHost CreateHostBuilder()
{
return Host
.CreateDefaultBuilder(null)
.UseAutofac()
.UseSerilog()
.ConfigureServices((hostContext, services) =>
{
services.AddApplication<WinFormModule>();
}).Build();
}
private void button1_Click(object sender, EventArgs e)
{
ToDo();
}
private async void ToDo()
{
try
{
List<RequestDto> dtos = new List<RequestDto>();
RequestDto dto = new RequestDto();
dto.SheetCode = "TO_CWC14";
dto.SheetName = "TO_CWC14";
dto.Year = 2020;
dto.Month = 1;
dtos.Add(dto);
// var aa = await _service.AddBackgroundJob(dtos);
var str = _service.SayHello();
}
catch (Exception ex )
{
throw;
}
}
}
}

60
WinFormsApp/Form1.resx

@ -0,0 +1,60 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

73
WinFormsApp/Program.cs

@ -0,0 +1,73 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using Volo.Abp;
namespace WinFormsApp
{
public class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
// [STAThread]
static async Task Main()
{
Log.Logger = new LoggerConfiguration()
#if DEBUG
.MinimumLevel.Debug()
#else
.MinimumLevel.Information()
#endif
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Async(c => c.File("Logs/logs.txt"))
.CreateLogger();
try
{
Log.Information("Starting web host.");
using (var host =Host
.CreateDefaultBuilder(null)
.UseAutofac()
.UseSerilog()
.ConfigureServices((hostContext, services) =>
{
services.AddApplication<WinFormModule>();
}).Build())
{
await host.StartAsync();
}
using (var application = AbpApplicationFactory.Create<WinFormModule>())
{
application.Initialize();
// Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var mainForm = application.ServiceProvider.GetService<Form1>();
Application.Run(mainForm);
}
}
catch (Exception ex )
{
Log.Fatal(ex, "Host terminated unexpectedly!");
return;
}
finally
{
Log.CloseAndFlush();
}
}
}
}

65
WinFormsApp/WinFormModule.cs

@ -0,0 +1,65 @@
using API;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Autofac;
using Volo.Abp.AutoMapper;
using Volo.Abp.Http.Client;
using Volo.Abp.Http.Client.IdentityModel;
using Volo.Abp.Identity;
using Volo.Abp.IdentityModel;
using Volo.Abp.Modularity;
namespace WinFormsApp
{
[DependsOn(
typeof(AbpAutofacModule),
typeof(AbpAutoMapperModule),
typeof(AbpHttpClientModule),
typeof(APIApplicationContractsModule),
typeof(AbpHttpClientIdentityModelModule),
typeof(AbpIdentityHttpApiClientModule)
)]
public class WinFormModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddHttpClientProxies(
typeof(APIApplicationContractsModule).Assembly,
remoteServiceConfigurationName: "Default"
);
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<WinFormModule>();
});
//var configuration = context.Services.GetConfiguration();
//ConfigureIdentityClientOption(context, configuration);
//context.Services.AddSingleton<FinancialMainWindow>();
// context.Services.AddSingleton<Form1>();
}
private static void ConfigureIdentityClientOption(ServiceConfigurationContext context, IConfiguration configuration)
{
var defaultClientConfiguration = new IdentityClientConfiguration(
configuration["IdentityClients:Default:Authority"],
configuration["IdentityClients:Default:Scope"],
configuration["IdentityClients:Default:ClientId"],
configuration["IdentityClients:Default:ClientSecret"],
configuration["IdentityClients:Default:GrantType"],
configuration["IdentityClients:Default:UserName"],
configuration["IdentityClients:Default:UserPassword"],
false,
1800
);
context.Services.AddOptions<AbpIdentityClientOptions>().Configure(option =>
{
option.IdentityClients.Default = defaultClientConfiguration;
});
}
}
}

35
WinFormsApp/WinFormsApp.csproj

@ -0,0 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Abp.AutoMapper" Version="6.6.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="5.0.0" />
<PackageReference Include="NPOI" Version="2.5.5" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="4.2.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="Shouldly" Version="4.0.3" />
<PackageReference Include="Volo.Abp.Autofac" Version="4.4.4" />
<PackageReference Include="Volo.Abp.AutoMapper" Version="4.4.4" />
<PackageReference Include="Volo.Abp.Http.Client.IdentityModel" Version="4.4.4" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\src\API.HttpApi.Client\API.HttpApi.Client.csproj" />
</ItemGroup>
<ItemGroup>
<Content Include="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
</Project>

22
WinFormsApp/appsettings.json

@ -0,0 +1,22 @@
{
"RemoteServices": {
"Default": {
"BaseUrl": "http://localhost:44319/",
// "BaseUrl": "http://114.116.225.148:8010/",
"RequireHttpsMetadata": "false"
}
},
"IdentityClients": {
"Default": {
"GrantType": "password",
"ClientId": "API_App",
"ClientSecret": "1q2w3e*",
"UserName": "admin",
"UserPassword": "1q2w3E*",
"Authority": "http://localhost:44319/",
// "Authority": "http://114.116.225.148:8010/",
"RequireHttps": false,
"Scope": "API"
}
}
}

36
WindowsFormsControlLibrary1/Properties/AssemblyInfo.cs

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("WindowsFormsControlLibrary1")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WindowsFormsControlLibrary1")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("a26d4442-e48c-42eb-80be-6897e9c49292")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

38
WindowsFormsControlLibrary1/UserControl1.Designer.cs

@ -0,0 +1,38 @@
namespace WindowsFormsControlLibrary1
{
partial class UserControl1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
}
#endregion
}
}

20
WindowsFormsControlLibrary1/UserControl1.cs

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsControlLibrary1
{
public partial class UserControl1: UserControl
{
public UserControl1()
{
InitializeComponent();
}
}
}

62
WindowsFormsControlLibrary1/WindowsFormsControlLibrary1.csproj

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>a26d4442-e48c-42eb-80be-6897e9c49292</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>WindowsFormsControlLibrary1</RootNamespace>
<AssemblyName>WindowsFormsControlLibrary1</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System"/>
<Reference Include="System.Core"/>
<Reference Include="System.Xml.Linq"/>
<Reference Include="System.Data.DataSetExtensions"/>
<Reference Include="Microsoft.CSharp"/>
<Reference Include="System.Data"/>
<Reference Include="System.Drawing"/>
<Reference Include="System.Net.Http"/>
<Reference Include="System.Windows.Forms"/>
<Reference Include="System.Xml"/>
</ItemGroup>
<ItemGroup>
<Compile Include="UserControl1.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControl1.Designer.cs">
<DependentUpon>UserControl1.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

15
common.props

@ -0,0 +1,15 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>1.0.0</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<AbpProjectType>app</AbpProjectType>
</PropertyGroup>
<Target Name="NoWarnOnRazorViewImportedTypeConflicts" BeforeTargets="RazorCoreCompile">
<PropertyGroup>
<NoWarn>$(NoWarn);0436</NoWarn>
</PropertyGroup>
</Target>
</Project>

18
install-service.bat

@ -0,0 +1,18 @@
@echo off
cls
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
echo You have no admin rights! You need to start your CMD in admin mode to install the windows service
goto end
:gotPrivileges
set current=%~dp0
set bin="%current%src\AbpWindowsService\bin\Debug\net5.0\AbpWindowsService.exe"
echo Creating service with the name "AbpWindowsService"
sc create "AbpWindowsService" binPath=%bin%
:end
pause

24
src/API.Application.Contracts/API.Application.Contracts.csproj

@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>API</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\API.Domain.Shared\API.Domain.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.ObjectExtending" Version="4.4.3" />
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="4.4.3" />
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="4.4.3" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application.Contracts" Version="4.4.3" />
<PackageReference Include="Volo.Abp.TenantManagement.Application.Contracts" Version="4.4.3" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application.Contracts" Version="4.4.3" />
<PackageReference Include="Volo.Abp.SettingManagement.Application.Contracts" Version="4.4.3" />
</ItemGroup>
</Project>

29
src/API.Application.Contracts/APIApplicationContractsModule.cs

@ -0,0 +1,29 @@
using Volo.Abp.Account;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Identity;
using Volo.Abp.Modularity;
using Volo.Abp.ObjectExtending;
using Volo.Abp.PermissionManagement;
using Volo.Abp.SettingManagement;
using Volo.Abp.TenantManagement;
namespace API
{
[DependsOn(
typeof(APIDomainSharedModule),
typeof(AbpAccountApplicationContractsModule),
typeof(AbpFeatureManagementApplicationContractsModule),
typeof(AbpIdentityApplicationContractsModule),
typeof(AbpPermissionManagementApplicationContractsModule),
typeof(AbpSettingManagementApplicationContractsModule),
typeof(AbpTenantManagementApplicationContractsModule),
typeof(AbpObjectExtendingModule)
)]
public class APIApplicationContractsModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
APIDtoExtensions.Configure();
}
}
}

29
src/API.Application.Contracts/APIDtoExtensions.cs

@ -0,0 +1,29 @@
using Volo.Abp.Identity;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Threading;
namespace API
{
public static class APIDtoExtensions
{
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
public static void Configure()
{
OneTimeRunner.Run(() =>
{
/* You can add extension properties to DTOs
* defined in the depended modules.
*
* Example:
*
* ObjectExtensionManager.Instance
* .AddOrUpdateProperty<IdentityRoleDto, string>("Title");
*
* See the documentation for more:
* https://docs.abp.io/en/abp/latest/Object-Extensions
*/
});
}
}
}

12
src/API.Application.Contracts/IBackgroundJobManagerApplication.cs

@ -0,0 +1,12 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace API
{
public interface IBackgroundJobManagerApplication : IApplicationService
{
Task<bool> AddBackgroundJob(List<RequestDto> dtos);
string SayHello();
}
}

21
src/API.Application.Contracts/Permissions/APIPermissionDefinitionProvider.cs

@ -0,0 +1,21 @@
using API.Localization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization;
namespace API.Permissions
{
public class APIPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
var myGroup = context.AddGroup(APIPermissions.GroupName);
//Define your own permissions here. Example:
//myGroup.AddPermission(APIPermissions.MyPermission1, L("Permission:MyPermission1"));
}
private static LocalizableString L(string name)
{
return LocalizableString.Create<APIResource>(name);
}
}
}

10
src/API.Application.Contracts/Permissions/APIPermissions.cs

@ -0,0 +1,10 @@
namespace API.Permissions
{
public static class APIPermissions
{
public const string GroupName = "API";
//Add your own permission names. Example:
//public const string MyPermission1 = GroupName + ".MyPermission1";
}
}

15
src/API.Application.Contracts/RequestDto.cs

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace API
{
public class RequestDto : EntityDto<Guid>
{
public string SheetCode { get; set; }
public string SheetName { get; set; }
public int Year { get; set; }
public int Month { get; set; }
}
}

24
src/API.Application/API.Application.csproj

@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace>API</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\API.Domain\API.Domain.csproj" />
<ProjectReference Include="..\API.Application.Contracts\API.Application.Contracts.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.Application" Version="4.4.3" />
<PackageReference Include="Volo.Abp.Identity.Application" Version="4.4.3" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="4.4.3" />
<PackageReference Include="Volo.Abp.TenantManagement.Application" Version="4.4.3" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application" Version="4.4.3" />
<PackageReference Include="Volo.Abp.SettingManagement.Application" Version="4.4.3" />
</ItemGroup>
</Project>

18
src/API.Application/APIAppService.cs

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Text;
using API.Localization;
using Volo.Abp.Application.Services;
namespace API
{
/* Inherit your application services from this class.
*/
public abstract class APIAppService : ApplicationService
{
protected APIAppService()
{
LocalizationResource = typeof(APIResource);
}
}
}

16
src/API.Application/APIApplicationAutoMapperProfile.cs

@ -0,0 +1,16 @@
using API.BudgetDataSources;
using API.DataSources;
using AutoMapper;
namespace API
{
public class APIApplicationAutoMapperProfile : Profile
{
public APIApplicationAutoMapperProfile()
{
/* You can configure your AutoMapper mapping configuration here.
* Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */
}
}
}

32
src/API.Application/APIApplicationModule.cs

@ -0,0 +1,32 @@
using Volo.Abp.Account;
using Volo.Abp.AutoMapper;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Identity;
using Volo.Abp.Modularity;
using Volo.Abp.PermissionManagement;
using Volo.Abp.SettingManagement;
using Volo.Abp.TenantManagement;
namespace API
{
[DependsOn(
typeof(APIDomainModule),
typeof(AbpAccountApplicationModule),
typeof(APIApplicationContractsModule),
typeof(AbpIdentityApplicationModule),
typeof(AbpPermissionManagementApplicationModule),
typeof(AbpTenantManagementApplicationModule),
typeof(AbpFeatureManagementApplicationModule),
typeof(AbpSettingManagementApplicationModule)
)]
public class APIApplicationModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<APIApplicationModule>();
});
}
}
}

46
src/API.Application/BackgroundJobManagerApplication.cs

@ -0,0 +1,46 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.BackgroundJobs;
namespace API
{
[Route("api/background")]
public class BackgroundJobManagerApplication : ApplicationService, IBackgroundJobManagerApplication
{
private readonly IBackgroundJobManager _backgroundJobManager;
public BackgroundJobManagerApplication(IBackgroundJobManager backgroundJobManager)
{
_backgroundJobManager = backgroundJobManager;
}
public string SayHello()
{
return "Hello";
}
[HttpPost]
[Route("addbackgroundjob")]
public async Task<bool> AddBackgroundJob(List<RequestDto> dtos)
{
foreach (var dto in dtos)
{
Logger.LogInformation($"添加同步【{dto.SheetCode}-{dto.Year}年{dto.Month}月】数据任务!");
await _backgroundJobManager.EnqueueAsync(
new JobArgs
{
SheetCode = dto.SheetCode,
SheetName = dto.SheetName,
Year = dto.Year,
Month = dto.Month,
});
}
return true;
}
}
}

15
src/API.Application/JobArgs.cs

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace API
{
public class JobArgs
{
public string SheetCode { get; set; }
public string SheetName { get; set; }
public int Year { get; set; }
public int Month { get; set; }
}
}

2
src/API.Application/Properties/AssemblyInfo.cs

@ -0,0 +1,2 @@
using System.Runtime.CompilerServices;
[assembly:InternalsVisibleToAttribute("API.Application.Tests")]

43
src/API.DbMigrator/API.DbMigrator.csproj

@ -0,0 +1,43 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<None Remove="appsettings.json" />
<Content Include="appsettings.json">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<None Remove="appsettings.secrets.json" />
<Content Include="appsettings.secrets.json">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Autofac" Version="4.4.3" />
<ProjectReference Include="..\API.Application.Contracts\API.Application.Contracts.csproj" />
<ProjectReference Include="..\API.EntityFrameworkCore\API.EntityFrameworkCore.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Logs\**" />
<Content Remove="Logs\**" />
<EmbeddedResource Remove="Logs\**" />
<None Remove="Logs\**" />
</ItemGroup>
</Project>

20
src/API.DbMigrator/APIDbMigratorModule.cs

@ -0,0 +1,20 @@
using API.EntityFrameworkCore;
using Volo.Abp.Autofac;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.Modularity;
namespace API.DbMigrator
{
[DependsOn(
typeof(AbpAutofacModule),
typeof(APIEntityFrameworkCoreModule),
typeof(APIApplicationContractsModule)
)]
public class APIDbMigratorModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpBackgroundJobOptions>(options => options.IsJobExecutionEnabled = false);
}
}
}

47
src/API.DbMigrator/DbMigratorHostedService.cs

@ -0,0 +1,47 @@
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using API.Data;
using Serilog;
using Volo.Abp;
namespace API.DbMigrator
{
public class DbMigratorHostedService : IHostedService
{
private readonly IHostApplicationLifetime _hostApplicationLifetime;
private readonly IConfiguration _configuration;
public DbMigratorHostedService(IHostApplicationLifetime hostApplicationLifetime, IConfiguration configuration)
{
_hostApplicationLifetime = hostApplicationLifetime;
_configuration = configuration;
}
public async Task StartAsync(CancellationToken cancellationToken)
{
using (var application = AbpApplicationFactory.Create<APIDbMigratorModule>(options =>
{
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
options.Services.AddLogging(c => c.AddSerilog());
}))
{
application.Initialize();
await application
.ServiceProvider
.GetRequiredService<APIDbMigrationService>()
.MigrateAsync();
application.Shutdown();
_hostApplicationLifetime.StopApplication();
}
}
public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
}
}

45
src/API.DbMigrator/Program.cs

@ -0,0 +1,45 @@
using System.IO;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Serilog;
using Serilog.Events;
namespace API.DbMigrator
{
class Program
{
static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning)
#if DEBUG
.MinimumLevel.Override("API", LogEventLevel.Debug)
#else
.MinimumLevel.Override("API", LogEventLevel.Information)
#endif
.Enrich.FromLogContext()
.WriteTo.Async(c => c.File("Logs/logs.txt"))
.WriteTo.Async(c => c.Console())
.CreateLogger();
await CreateHostBuilder(args).RunConsoleAsync();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(build =>
{
build.AddJsonFile("appsettings.secrets.json", optional: true);
})
.ConfigureLogging((context, logging) => logging.ClearProviders())
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<DbMigratorHostedService>();
});
}
}

29
src/API.DbMigrator/appsettings.json

@ -0,0 +1,29 @@
{
"ConnectionStrings": {
"Default": "Server=114.116.225.148,13314;Database=FMP_20210610;User ID=sa;Password=Microsoft2020;"
},
"IdentityServer": {
"Clients": {
"API_Web": {
"ClientId": "API_Web",
"ClientSecret": "1q2w3e*",
"RootUrl": "https://localhost:44319"
},
"API_App": {
"ClientId": "API_App",
"ClientSecret": "1q2w3e*",
"RootUrl": "http://localhost:4200"
},
"API_BlazorServerTiered": {
"ClientId": "API_BlazorServerTiered",
"ClientSecret": "1q2w3e*",
"RootUrl": "https://localhost:44314"
},
"API_Swagger": {
"ClientId": "API_Swagger",
"ClientSecret": "1q2w3e*",
"RootUrl": "https://localhost:44326"
}
}
}
}

2
src/API.DbMigrator/appsettings.secrets.json

@ -0,0 +1,2 @@
{
}

13
src/API.DbMigrator/tempkey.rsa

@ -0,0 +1,13 @@
{
"KeyId": "f788zGVUZh9H-HbWL1S-Mg",
"Parameters": {
"D": "F19hbC5PLO872DszGiJnVoU55ee7XGXmNf0KEKndJ/uGBv5lWklXA0QF80h1ytWXde0jV5isQPB1t7mPhRQlDoDTkywLi1CeOgBPbxzHEfLjZZ5c4olfeX0IJX9BDqgUntY0H1a/+Om/eDu4OZUz3EIJFFZBgz46YZSyTT6ZDvAEdpC/o66sNJmxvJIp+8zVoVDSqBUzxmc+oEamXLg7r2jdymxJMxau1kQFxEGLOrJnNxGsEe8UrYA3qSsm8m/Xg4uOh7RYgnuEEt88+KTvRq+CAMWhN3YNLtOJ3NmXowwE7e1Ma+jih9+UVfxZn14P5+SOJbQ2bYV2sCV+2vBiCQ==",
"DP": "oPiGO/qdOQfFEAS9fMInQnsrNylIZVpDYEVoDJ6/jQfE/IpuwxGcmsaGvCob3SKxZiJRLCWpwJYo1hCh/JOSVGWMkVyELky56nbbkkV5ymKLSGZ4JoetdQs+GchnPdR+k2P9Ij1Kjk13ylubN3htzNhcBASJpOfSEv5pPVzGKX0=",
"DQ": "z6imxLABHkyftbfUUtpeOlPanEHgpuIjmUdp3T1Ju1jziE63UEhuj0GPAXOF17uYxixwYE8JhOJ7+TyIK9oZeI3zH2OzJqQh8f5PCQ/E+0ULXZDeNV/ShDLCTufu3Fis9Rt64uTp/H/l21oMQ79jc0ysa8DTz1ReJLRc5qjL41U=",
"Exponent": "AQAB",
"InverseQ": "ieZcvSt5XYukKJKhXpv5Dm/1RD7iH88cZnhLSTEVTMoOUHoYWmApY5pNLGahbfjA9bxnkBWDYex/i7wE9uNNY5CsA6ovUaQLVJDt3kHvR9W+9QtN8D6jjG2TuRbbOdEg4RqhfjUaDfDIgTJX2Wxc8U98FOvOyGw1HzwUPFZKecM=",
"Modulus": "vk4z1Bmtmbo+gxITcY+FIlXzcO2wTOGlOXK5GMYj/6PUMFt7lbqkc72AkPsrAo5/JE8LYLhWj7fzSKbjvtowHCz5m2t+FlUYmuiKpvvnJsTqvQrckNlbZ1nm071q5PhP3Dar/OksfBhPtAX+c3+NjDnM/w53ccJJNaBDO/s9JYoN7vH5n6ed1pMSK71hmg4MPsxChcnc1f1PpnG2mqyJ253+GEUbj/kRyeBSmCCr9aadov2ZzxIKVaFNagJEHOzanQmorSLpP25GfOHCuy27Zkef94V/qU9elzjbH4uIKslVGx5T6H99TYh0sUGu11NytYJa5WNAZWow95CzurC2vw==",
"P": "4GMCQy+XTNzR5TsgFcdAZv2K6TcQR13fHVvPoxQp/b32V5YUJOBFEUAtqociy5ro4+KzpXP5WPSk1ZtznGKuNZyLq8gTnhpB3rwd0sdo4zxKnQ5nu+n1UhlhWNxg5A9V5TaciUAyPrHWJfLoYTQWygNTgJELQH5zZXi2ihC2uiU=",
"Q": "2R36pamnLAJggkPJxiW5qH6HizZ+bkQVg0BBftMLzkAM8Y9CwTW75GRUzGEJFpMckkw0GZSYb1Uwl3DVUpkcQ8LZ91IPYdPpDlYUshhIxl184M55pnO14besKxJtMZ64zhHKVAR2pBMO0n6W4/1iBXkkQqyPViJxdfvXPJMBbhM="
}
}

32
src/API.Domain.Shared/API.Domain.Shared.csproj

@ -0,0 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>API</RootNamespace>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="4.4.3" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain.Shared" Version="4.4.3" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" Version="4.4.3" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain.Shared" Version="4.4.3" />
<PackageReference Include="Volo.Abp.TenantManagement.Domain.Shared" Version="4.4.3" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain.Shared" Version="4.4.3" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Shared" Version="4.4.3" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain.Shared" Version="4.4.3" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Localization\API\*.json" />
<Content Remove="Localization\API\*.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="5.0.*" />
</ItemGroup>
</Project>

7
src/API.Domain.Shared/APIDomainErrorCodes.cs

@ -0,0 +1,7 @@
namespace API
{
public static class APIDomainErrorCodes
{
/* You can add your business exception error codes here, as constants */
}
}

59
src/API.Domain.Shared/APIDomainSharedModule.cs

@ -0,0 +1,59 @@
using API.Localization;
using Volo.Abp.AuditLogging;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Identity;
using Volo.Abp.IdentityServer;
using Volo.Abp.Localization;
using Volo.Abp.Localization.ExceptionHandling;
using Volo.Abp.Modularity;
using Volo.Abp.PermissionManagement;
using Volo.Abp.SettingManagement;
using Volo.Abp.TenantManagement;
using Volo.Abp.Validation.Localization;
using Volo.Abp.VirtualFileSystem;
namespace API
{
[DependsOn(
typeof(AbpAuditLoggingDomainSharedModule),
typeof(AbpBackgroundJobsDomainSharedModule),
typeof(AbpFeatureManagementDomainSharedModule),
typeof(AbpIdentityDomainSharedModule),
typeof(AbpIdentityServerDomainSharedModule),
typeof(AbpPermissionManagementDomainSharedModule),
typeof(AbpSettingManagementDomainSharedModule),
typeof(AbpTenantManagementDomainSharedModule)
)]
public class APIDomainSharedModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
APIGlobalFeatureConfigurator.Configure();
APIModuleExtensionConfigurator.Configure();
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<APIDomainSharedModule>();
});
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Add<APIResource>("en")
.AddBaseTypes(typeof(AbpValidationResource))
.AddVirtualJson("/Localization/API");
options.DefaultResourceType = typeof(APIResource);
});
Configure<AbpExceptionLocalizationOptions>(options =>
{
options.MapCodeNamespace("API", typeof(APIResource));
});
}
}
}

23
src/API.Domain.Shared/APIGlobalFeatureConfigurator.cs

@ -0,0 +1,23 @@
using Volo.Abp.Threading;
namespace API
{
public static class APIGlobalFeatureConfigurator
{
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
public static void Configure()
{
OneTimeRunner.Run(() =>
{
/* You can configure (enable/disable) global features of the used modules here.
*
* YOU CAN SAFELY DELETE THIS CLASS AND REMOVE ITS USAGES IF YOU DON'T NEED TO IT!
*
* Please refer to the documentation to lear more about the Global Features System:
* https://docs.abp.io/en/abp/latest/Global-Features
*/
});
}
}
}

72
src/API.Domain.Shared/APIModuleExtensionConfigurator.cs

@ -0,0 +1,72 @@
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Identity;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Threading;
namespace API
{
public static class APIModuleExtensionConfigurator
{
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
public static void Configure()
{
OneTimeRunner.Run(() =>
{
ConfigureExistingProperties();
ConfigureExtraProperties();
});
}
private static void ConfigureExistingProperties()
{
/* You can change max lengths for properties of the
* entities defined in the modules used by your application.
*
* Example: Change user and role name max lengths
IdentityUserConsts.MaxNameLength = 99;
IdentityRoleConsts.MaxNameLength = 99;
* Notice: It is not suggested to change property lengths
* unless you really need it. Go with the standard values wherever possible.
*
* If you are using EF Core, you will need to run the add-migration command after your changes.
*/
}
private static void ConfigureExtraProperties()
{
/* You can configure extra properties for the
* entities defined in the modules used by your application.
*
* This class can be used to define these extra properties
* with a high level, easy to use API.
*
* Example: Add a new property to the user entity of the identity module
ObjectExtensionManager.Instance.Modules()
.ConfigureIdentity(identity =>
{
identity.ConfigureUser(user =>
{
user.AddOrUpdateProperty<string>( //property type: string
"SocialSecurityNumber", //property name
property =>
{
//validation rules
property.Attributes.Add(new RequiredAttribute());
property.Attributes.Add(new StringLengthAttribute(64) {MinimumLength = 4});
//...other configurations for this property
}
);
});
});
* See the documentation for more:
* https://docs.abp.io/en/abp/latest/Module-Entity-Extensions
*/
}
}
}

36
src/API.Domain.Shared/DataHelper.cs

@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace API
{
public class DataHelper
{
public static List<TD_DATA> GetDataList(IEnumerable<string> dataStringList)
{
var dataList = new List<TD_DATA>();
foreach (var dataString in dataStringList)
{
var list = JsonHelper.JsonToList<TD_DATA>(dataString);
dataList.AddRange(list);
}
return dataList;
}
public static List<TD_DATA> GetDataList(string dataString)
{
if (string.IsNullOrEmpty(dataString))
{
return new List<TD_DATA>();
}
var dataList = JsonHelper.JsonToList<TD_DATA>(dataString);
return dataList;
}
public static string GetDataString(List<TD_DATA> dataList)
{
var jsonString = JsonHelper.ListToJson(dataList);
return jsonString;
}
}
}

19
src/API.Domain.Shared/Enums/EnumCompanyType.cs

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
namespace API.Enums
{
public enum EnumCompanyType
{
[Description("全资")]
= 0,
[Description("控股")]
= 1,
[Description("合联营")]
= 2,
[Description("其他")]
= 3,
}
}

63
src/API.Domain.Shared/Filter/EnumFilterAction.cs

@ -0,0 +1,63 @@
using System.ComponentModel;
namespace API.Filter
{
/// <summary>
/// 过滤条件
/// </summary>
public enum EnumFilterAction
{
/// <summary>
/// equal
/// </summary>
[Description("等于")] Equal = 0,
/// <summary>
/// Not equal
/// </summary>
[Description("不等于")] NotEqual = 1,
/// <summary>
/// Bigger
/// </summary>
[Description("大于")] BiggerThan = 2,
/// <summary>
/// Smaller
/// </summary>
[Description("小于")] SmallThan = 3,
/// <summary>
/// Bigger or equal
/// </summary>
[Description("大于等于")] BiggerThanOrEqual = 4,
/// <summary>
/// Small or equal
/// </summary>
[Description("小于等于")] SmallThanOrEqual = 5,
/// <summary>
/// Like
/// </summary>
[Description("类似于")] Like = 6,
/// <summary>
/// Not like
/// </summary>
[Description("不类似于")] NotLike = 7,
/// <summary>
/// Contained in
/// List<string > items = new List<string>();
/// string value = JsonSerializer.Serialize(items);//转成Json字符串
///FilterCondition filterCondition = new FilterCondition() { Column = "Name", Value = value, Action = EnumFilterAction.In, Logic = EnumFilterLogic.And };
/// </summary>
[Description("包含于")] In = 8,
/// <summary>
/// Not contained in
/// </summary>
[Description("不包含于")] NotIn = 9,
}
}

18
src/API.Domain.Shared/Filter/EnumFilterLogic.cs

@ -0,0 +1,18 @@
namespace API.Filter
{
/// <summary>
/// 过滤逻辑
/// </summary>
public enum EnumFilterLogic
{
/// <summary>
/// 与
/// </summary>
And=0,
/// <summary>
/// 或
/// </summary>
Or=1
}
}

43
src/API.Domain.Shared/Filter/FilterCondition.cs

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace API.Filter
{
public class FilterCondition
{
public FilterCondition()
{
Logic = EnumFilterLogic.And;
}
public FilterCondition(string column, string value, EnumFilterAction action = EnumFilterAction.Equal,
EnumFilterLogic logic = EnumFilterLogic.And)
{
Column = column;
Action = action;
Value = value;
Logic = logic;
}
/// <summary>
/// 过滤条件之间的逻辑关系:AND和OR
/// </summary>
public EnumFilterLogic Logic { get; set; }
/// <summary>
/// 过滤条件中使用的数据列
/// </summary>
public string Column { get; set; }
/// <summary>
/// 过滤条件中的操作:Equal、NotEqual、BiggerThan、SmallThan、BiggerThanOrEqual、SmallThanOrEqual、In、NotIn
/// </summary>
public EnumFilterAction Action { get; set; }
/// <summary>
/// 过滤条件中的操作的值
/// </summary>
public string Value { get; set; }
}
}

314
src/API.Domain.Shared/Filter/FilterExtensions.cs

@ -0,0 +1,314 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text.Json;
namespace API.Filter
{
public static class FilterExtensions
{
public static Expression<Func<T, bool>> ToLambda<T>(this string jsonFilter)
{
if (string.IsNullOrWhiteSpace(jsonFilter))
{
return p => true;
}
var filterConditions = JsonSerializer.Deserialize<List<FilterCondition>>(jsonFilter);
return filterConditions.ToLambda<T>();
}
public static Expression<Func<T, bool>> ToLambda<T>(this FilterCondition filterCondition)
{
var filterConditions = new List<FilterCondition> { filterCondition };
return filterConditions.ToLambda<T>();
}
public static Expression<Func<T, bool>> ToLambda<T>(this List<FilterCondition> filterConditionList)
{
Expression<Func<T, bool>> condition = null;
try
{
if (!filterConditionList.Any())
{
//创建默认表达式
return p => true;
}
foreach (var filterCondition in filterConditionList)
{
var tempCondition = CreateLambda<T>(filterCondition);
if (condition == null)
{
condition = tempCondition;
}
else
{
condition = filterCondition.Logic switch
{
EnumFilterLogic.And => condition.And(tempCondition),
EnumFilterLogic.Or => condition.Or(tempCondition),
_ => condition
};
}
}
}
catch (Exception ex)
{
throw new Exception($"获取筛选条件异常:{ex.Message}");
}
return condition;
}
private static Expression<Func<T, bool>> CreateLambda<T>(FilterCondition filterCondition)
{
Expression<Func<T, bool>> expression = p => false;
try
{
var parameter = Expression.Parameter(typeof(T), "p"); //创建参数p
var member = Expression.PropertyOrField(parameter, filterCondition.Column); //创建表达式中的属性或字段
// var propertyType = member.Type; //取属性类型,常量constant按此类型进行转换
//var constant = Expression.Constant(filterCondition.Value);//创建常数
ConstantExpression constant = null;
if (filterCondition.Action != EnumFilterAction.In && filterCondition.Action != EnumFilterAction.NotIn)
{
constant = CreateConstantExpression(member.Type, filterCondition.Value);
}
switch (filterCondition.Action)
{
case EnumFilterAction.Equal:
expression = Expression.Lambda<Func<T, bool>>(Expression.Equal(member, constant), parameter);
break;
case EnumFilterAction.NotEqual:
expression = Expression.Lambda<Func<T, bool>>(Expression.NotEqual(member, constant), parameter);
break;
case EnumFilterAction.BiggerThan:
expression = Expression.Lambda<Func<T, bool>>(Expression.GreaterThan(member, constant), parameter);
break;
case EnumFilterAction.SmallThan:
expression = Expression.Lambda<Func<T, bool>>(Expression.LessThan(member, constant), parameter);
break;
case EnumFilterAction.BiggerThanOrEqual:
expression = Expression.Lambda<Func<T, bool>>(Expression.GreaterThanOrEqual(member, constant), parameter);
break;
case EnumFilterAction.SmallThanOrEqual:
expression = Expression.Lambda<Func<T, bool>>(Expression.LessThanOrEqual(member, constant), parameter);
break;
case EnumFilterAction.Like:
expression = GetExpressionLikeMethod<T>("Contains", filterCondition);
break;
case EnumFilterAction.NotLike:
expression = GetExpressionNotLikeMethod<T>("Contains", filterCondition);
break;
case EnumFilterAction.In:
expression = GetExpressionInMethod<T>("Contains", member.Type, filterCondition);
break;
case EnumFilterAction.NotIn:
expression = GetExpressionNotInMethod<T>("Contains", member.Type, filterCondition);
break;
default:
break;
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
return expression;
}
/// <summary>
///
/// </summary>
/// <param name="propertyType"></param>
/// <param name="value"></param>
/// <returns></returns>
private static ConstantExpression CreateConstantExpression(Type propertyType, string value)
{
ConstantExpression constant = null;
try
{
if (propertyType.IsGenericType &&
propertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
{
var objValue = Convert.ChangeType(value, propertyType.GetGenericArguments()[0]);
constant = Expression.Constant(objValue);
}
else if (propertyType.IsEnum)
{
var enumValue = (Enum)Enum.Parse(propertyType, value, true);
constant = Expression.Constant(enumValue);
}
else
{
constant = propertyType.Name switch
{
"Guid" => Expression.Constant(Guid.Parse(value)),
_ => Expression.Constant(Convert.ChangeType(value, propertyType))
};
}
}
catch (Exception ex)
{
throw new Exception($"获取ConstantExpression异常:{ex.Message}");
}
return constant;
}
private static Expression<Func<T, bool>> GetExpressionLikeMethod<T>(string methodName,
FilterCondition filterCondition)
{
var parameterExpression = Expression.Parameter(typeof(T), "p");
// MethodCallExpression methodExpression = GetMethodExpression(methodName, filterCondition.Column, filterCondition.Value, parameterExpression);
var methodExpression = GetMethodExpression(methodName, filterCondition.Column, filterCondition.Value,
parameterExpression);
return Expression.Lambda<Func<T, bool>>(methodExpression, parameterExpression);
}
private static Expression<Func<T, bool>> GetExpressionNotLikeMethod<T>(string methodName,
FilterCondition filterCondition)
{
var parameterExpression = Expression.Parameter(typeof(T), "p");
var methodExpression = GetMethodExpression(methodName, filterCondition.Column, filterCondition.Value,
parameterExpression);
var notMethodExpression = Expression.Not(methodExpression);
return Expression.Lambda<Func<T, bool>>(notMethodExpression, parameterExpression);
}
private static object GetPropertyValue(Type propertyType, string value)
{
Type lstType = typeof(List<>).MakeGenericType(propertyType);
return JsonSerializer.Deserialize(value, lstType);
}
/// <summary>
/// 生成guidList.Contains(p=>p.GUId);
/// 除String类型,其他类型涉及到类型转换.如GUID
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="methodName">Contains</param>
/// <param name="propertyType">PropertyType/typeof(GUId)</param>
/// <param name="filterCondition">PropertyName/PropertyValue</param>
/// <returns></returns>
private static Expression<Func<T, bool>> GetExpressionInMethod<T>(string methodName, Type propertyType, FilterCondition filterCondition)
{
var parameterExpression = Expression.Parameter(typeof(T), "p");
Type lstType = typeof(List<>).MakeGenericType(propertyType);
object propertyValue = JsonSerializer.Deserialize(filterCondition.Value, lstType);
if (propertyValue != null)
{
var methodExpression = GetListMethodExpression(methodName, propertyType, filterCondition.Column, propertyValue, parameterExpression);
var expression = Expression.Lambda<Func<T, bool>>(methodExpression, parameterExpression);
return expression;
}
else
{
return p=>false;
}
}
private static Expression<Func<T, bool>> GetExpressionNotInMethod<T>(string methodName, Type propertyType, FilterCondition filterCondition)
{
var parameterExpression = Expression.Parameter(typeof(T), "p");
Type lstType = typeof(List<>).MakeGenericType(propertyType);
object propertyValue = JsonSerializer.Deserialize(filterCondition.Value, lstType);
if (propertyValue != null)
{
var methodExpression = GetListMethodExpression(methodName, propertyType, filterCondition.Column, propertyValue, parameterExpression);
var notMethodExpression = Expression.Not(methodExpression);
return Expression.Lambda<Func<T, bool>>(notMethodExpression, parameterExpression);
}
else
{
return p => false;
}
}
private static MethodCallExpression GetListMethodExpression(string methodName, Type propertyType, string propertyName, object propertyValue, ParameterExpression parameterExpression)
{
var propertyExpression = Expression.Property(parameterExpression, propertyName); //p.GUID
Type type = typeof(List<>).MakeGenericType(propertyType);
var method = type.GetMethod(methodName);//获取 List.Contains()
var someValue = Expression.Constant(propertyValue);//Value
return Expression.Call(someValue, method, propertyExpression);
}
/// <summary>
/// 生成类似于p=>p.Code.Contains("xxx");的lambda表达式
/// parameterExpression标识p,propertyName表示values,propertyValue表示"Code",methodName表示Contains
/// 仅处理p的属性类型为string这种情况
/// </summary>
/// <param name="methodName"></param>
/// <param name="propertyName"></param>
/// <param name="propertyValue"></param>
/// <param name="parameterExpression"></param>
/// <returns></returns>
private static MethodCallExpression GetMethodExpression(string methodName, string propertyName,
string propertyValue, ParameterExpression parameterExpression)
{
var propertyExpression = Expression.Property(parameterExpression, propertyName);
var method = typeof(string).GetMethod(methodName, new[] { typeof(string) });
var someValue = Expression.Constant(propertyValue, typeof(string));
return Expression.Call(propertyExpression, method, someValue);
}
/// <summary>
/// 默认True条件
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static Expression<Func<T, bool>> True<T>()
{
return f => true;
}
/// <summary>
/// 默认False条件
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static Expression<Func<T, bool>> False<T>()
{
return f => false;
}
/// <summary>
/// 拼接 OR 条件
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="exp"></param>
/// <param name="condition"></param>
/// <returns></returns>
private static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> exp,
Expression<Func<T, bool>> condition)
{
var inv = Expression.Invoke(condition, exp.Parameters);
return Expression.Lambda<Func<T, bool>>(Expression.Or(exp.Body, inv), exp.Parameters);
}
/// <summary>
/// 拼接And条件
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="exp"></param>
/// <param name="condition"></param>
/// <returns></returns>
private static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> exp,
Expression<Func<T, bool>> condition)
{
var inv = Expression.Invoke(condition, exp.Parameters);
return Expression.Lambda<Func<T, bool>>(Expression.And(exp.Body, inv), exp.Parameters);
}
}
}

40
src/API.Domain.Shared/JsonHelper.cs

@ -0,0 +1,40 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.Text;
namespace API
{
public class JsonHelper
{
private const string Format = "yyyy-MM-dd HH:mm:ss";
public static List<T> JsonToList<T>(string strJson)
{
if (string.IsNullOrEmpty(strJson))
{
return new List<T>();
}
try
{
var list = JsonConvert.DeserializeObject<List<T>>(strJson);
return list;
}
catch (Exception)
{
var str = strJson.Length > 100 ? strJson.Substring(0, 100) : strJson;
throw new Exception($"Json数据错误,解析失败{Environment.NewLine}{str}");
}
}
public static string ListToJson<T>(List<T> list)
{
var timeFormat = new IsoDateTimeConverter { DateTimeFormat = Format };
var strJson = JsonConvert.SerializeObject(list, Formatting.None, timeFormat);
return strJson;
}
}
}

8
src/API.Domain.Shared/Localization/API/ar.json

@ -0,0 +1,8 @@
{
"culture": "ar",
"texts": {
"Menu:Home": "الرئيسية",
"Welcome": "مرحبا",
"LongWelcomeMessage": "مرحبا بكم في التطبيق. هذا مشروع بدء تشغيل يعتمد على إطار عمل ABP. لمزيد من المعلومات ، يرجى زيارة abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/cs.json

@ -0,0 +1,8 @@
{
"culture": "cs",
"texts": {
"Menu:Home": "Úvod",
"Welcome": "Vítejte",
"LongWelcomeMessage": "Vítejte v aplikaci. Toto je startovací projekt založený na ABP frameworku. Pro více informací, navštivte abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/de-DE.json

@ -0,0 +1,8 @@
{
"culture": "de-DE",
"texts": {
"Menu:Home": "Home",
"Welcome": "Willkommen",
"LongWelcomeMessage": "Willkommen bei der Anwendung. Dies ist ein Startup-Projekt, das auf dem ABP-Framework basiert. Weitere Informationen finden Sie unter abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/en-GB.json

@ -0,0 +1,8 @@
{
"culture": "en-GB",
"texts": {
"Menu:Home": "Home",
"Welcome": "Welcome",
"LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/en.json

@ -0,0 +1,8 @@
{
"culture": "en",
"texts": {
"Menu:Home": "Home",
"Welcome": "Welcome",
"LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/es.json

@ -0,0 +1,8 @@
{
"culture": "es",
"texts": {
"Menu:Home": "Inicio",
"Welcome": "Bienvenido",
"LongWelcomeMessage": "Bienvenido a la aplicación, este es un proyecto base basado en el framework ABP. Para más información, visita abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/fi.json

@ -0,0 +1,8 @@
{
"culture": "fi",
"texts": {
"Menu:Home": "Koti",
"Welcome": "Tervetuloa",
"LongWelcomeMessage": "Tervetuloa sovellukseen. Tämä on ABP-kehykseen perustuva käynnistysprojekti. Lisätietoja on osoitteessa abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/fr.json

@ -0,0 +1,8 @@
{
"culture": "fr",
"texts": {
"Menu:Home": "Accueil",
"Welcome": "Bienvenue",
"LongWelcomeMessage": "Bienvenue dans l'application. Il s'agit d'un projet de démarrage basé sur le framework ABP. Pour plus d'informations, visitez abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/hi.json

@ -0,0 +1,8 @@
{
"culture": "hi",
"texts": {
"Menu:Home": "घर",
"Welcome": "स्वागत हे",
"LongWelcomeMessage": "आवेदन करने के लिए आपका स्वागत है। यह एबीपी ढांचे पर आधारित एक स्टार्टअप परियोजना है। अधिक जानकारी के लिए, abp.io पर जाएं।"
}
}

8
src/API.Domain.Shared/Localization/API/hu.json

@ -0,0 +1,8 @@
{
"culture": "hu",
"texts": {
"Menu:Home": "Kezdőlap",
"Welcome": "Üdvözlöm",
"LongWelcomeMessage": "Üdvözöljük az alkalmazásban. Ez egy ABP keretrendszeren alapuló startup projekt. További információkért látogasson el az abp.io oldalra."
}
}

8
src/API.Domain.Shared/Localization/API/it.json

@ -0,0 +1,8 @@
{
"culture": "it",
"texts": {
"Menu:Home": "Home",
"Welcome": "Benvenuto",
"LongWelcomeMessage": "Benvenuto nell'applicazione. Questo è un progetto di avvio basato sul framework ABP. Per ulteriori informazioni, visita abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/nl.json

@ -0,0 +1,8 @@
{
"culture": "nl",
"texts": {
"Menu:Home": "Home",
"Welcome": "Welkom",
"LongWelcomeMessage": "Welkom bij de applicatie. Dit is een startup-project gebaseerd op het ABP-framework. Bezoek abp.io voor meer informatie."
}
}

8
src/API.Domain.Shared/Localization/API/pl-PL.json

@ -0,0 +1,8 @@
{
"culture": "pl-PL",
"texts": {
"Menu:Home": "Home",
"Welcome": "Witaj",
"LongWelcomeMessage": "Witaj w aplikacji. To jest inicjalny projekt bazujący na ABP framework. Po więcej informacji odwiedź stronę abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/pt-BR.json

@ -0,0 +1,8 @@
{
"culture": "pt-BR",
"texts": {
"Menu:Home": "Principal",
"Welcome": "Seja bem-vindo!",
"LongWelcomeMessage": "Bem-vindo a esta aplicação. Este é um projeto inicial baseado no ABP framework. Para mais informações, visite abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/ru.json

@ -0,0 +1,8 @@
{
"culture": "ru",
"texts": {
"Menu:Home": "Главная",
"Welcome": "Добро пожаловать",
"LongWelcomeMessage": "Добро пожаловать в приложение. Этот запущенный проект основан на фреймворке ABP. Для получения дополнительной информации посетите сайт abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/sk.json

@ -0,0 +1,8 @@
{
"culture": "sk",
"texts": {
"Menu:Home": "Domov",
"Welcome": "Vitajte",
"LongWelcomeMessage": "Vitajte v aplikácii. Toto je štartovací projekt založený na ABP frameworku. Viac informácií nájdete na stránke abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/sl.json

@ -0,0 +1,8 @@
{
"culture": "sl",
"texts": {
"Menu:Home": "Domov",
"Welcome": "Dobrodošli",
"LongWelcomeMessage": "Dobrodošli v aplikaciji. To je začetni projekt na osnovi okolja ABP. Za več informacij obiščite abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/tr.json

@ -0,0 +1,8 @@
{
"culture": "tr",
"texts": {
"Menu:Home": "Ana sayfa",
"Welcome": "Hoşgeldiniz",
"LongWelcomeMessage": "Uygulamaya hoşgeldiniz. Bu, ABP framework'ü üzerine bina edilmiş bir başlangıç projesidir. Daha fazla bilgi için abp.io adresini ziyaret edebilirsiniz."
}
}

8
src/API.Domain.Shared/Localization/API/vi.json

@ -0,0 +1,8 @@
{
"culture": "vi",
"texts": {
"Menu:Home": "Trang chủ",
"Welcome": "Chào mừng bạn",
"LongWelcomeMessage": "Chào mừng bạn đến ứng dụng. Đây là một dự án khởi nghiệp dựa trên khung ABP. Để biết thêm thông tin, hãy truy cập abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/zh-Hans.json

@ -0,0 +1,8 @@
{
"culture": "zh-Hans",
"texts": {
"Menu:Home": "首页",
"Welcome": "欢迎",
"LongWelcomeMessage": "欢迎来到该应用程序. 这是一个基于ABP框架的启动项目. 有关更多信息, 请访问 abp.io."
}
}

8
src/API.Domain.Shared/Localization/API/zh-Hant.json

@ -0,0 +1,8 @@
{
"culture": "zh-Hant",
"texts": {
"Menu:Home": "首頁",
"Welcome": "歡迎",
"LongWelcomeMessage": "歡迎來到此應用程式. 這是一個基於ABP框架的起始專案. 有關更多訊息, 請瀏覽 abp.io."
}
}

10
src/API.Domain.Shared/Localization/APIResource.cs

@ -0,0 +1,10 @@
using Volo.Abp.Localization;
namespace API.Localization
{
[LocalizationResourceName("API")]
public class APIResource
{
}
}

11
src/API.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs

@ -0,0 +1,11 @@
namespace API.MultiTenancy
{
public static class MultiTenancyConsts
{
/* Enable/disable multi-tenancy easily in a single point.
* If you will never need to multi-tenancy, you can remove
* related modules and code parts, including this file.
*/
public const bool IsEnabled = true;
}
}

50
src/API.Domain.Shared/TD_DATA.cs

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace API
{
public class TD_DATA
{
public string C { get; set; }
public decimal V
{
get => decimal.Round(Vs[0], 6);
// set
// {
// if (Vs.Count > 0)
//
// {
// Vs[0] = value;
// }
// else
// {
// Vs = new List<decimal> { value };
// }
// }
}
public IList<string> Ns { get; set; } = new List<string>();
public IList<decimal> Vs { get; set; } = new List<decimal>();
public TD_DATA()
{
}
public TD_DATA(string c, decimal v0)
{
C = c;
Vs = new List<decimal> { v0 };
}
public TD_DATA(string c, IList<string> ns, IList<decimal> vs)
{
C = c;
Ns = ns;
Vs = vs;
}
}
}

29
src/API.Domain/API.Domain.csproj

@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace>API</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\API.Domain.Shared\API.Domain.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="EFCore.BulkExtensions" Version="5.3.2" />
<PackageReference Include="Volo.Abp.Emailing" Version="4.4.3" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="4.4.4" />
<PackageReference Include="Volo.Abp.Identity.Domain" Version="4.4.3" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="4.4.3" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.4.3" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.IdentityServer" Version="4.4.3" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain" Version="4.4.3" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain" Version="4.4.3" />
<PackageReference Include="Volo.Abp.TenantManagement.Domain" Version="4.4.3" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain" Version="4.4.3" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain" Version="4.4.3" />
</ItemGroup>
</Project>

9
src/API.Domain/APIConsts.cs

@ -0,0 +1,9 @@
namespace API
{
public static class APIConsts
{
public const string DbTablePrefix = "App";
public const string DbSchema = null;
}
}

18
src/API.Domain/APIDbProperties.cs

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Data;
namespace API
{
public static class APIDbProperties
{
public static string DbTablePrefix { get; internal set; } = "fmp";
public static string DbSchema { get; internal set; } = AbpCommonDbProperties.DbSchema;
public const string ConnectionStringName = "APIService";
}
}

46
src/API.Domain/APIDomainModule.cs

@ -0,0 +1,46 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using API.MultiTenancy;
using Volo.Abp.AuditLogging;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.Emailing;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Identity;
using Volo.Abp.IdentityServer;
using Volo.Abp.Modularity;
using Volo.Abp.MultiTenancy;
using Volo.Abp.PermissionManagement.Identity;
using Volo.Abp.PermissionManagement.IdentityServer;
using Volo.Abp.SettingManagement;
using Volo.Abp.TenantManagement;
namespace API
{
[DependsOn(
typeof(APIDomainSharedModule),
typeof(AbpAuditLoggingDomainModule),
typeof(AbpBackgroundJobsDomainModule),
typeof(AbpFeatureManagementDomainModule),
typeof(AbpIdentityDomainModule),
typeof(AbpPermissionManagementDomainIdentityModule),
typeof(AbpIdentityServerDomainModule),
typeof(AbpPermissionManagementDomainIdentityServerModule),
typeof(AbpSettingManagementDomainModule),
typeof(AbpTenantManagementDomainModule),
typeof(AbpEmailingModule)
)]
public class APIDomainModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpMultiTenancyOptions>(options =>
{
options.IsEnabled = MultiTenancyConsts.IsEnabled;
});
#if DEBUG
context.Services.Replace(ServiceDescriptor.Singleton<IEmailSender, NullEmailSender>());
#endif
}
}
}

92
src/API.Domain/BudgetDataSources/JQ_LRB.cs

@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
namespace API.BudgetDataSources
{
[DisplayName("JQLRB久其利润表")]
public class JQ_LRB : Entity
{
public JQ_LRB()
{
}
public JQ_LRB(Guid id,string companyCode, string iTEM, string rowNum, decimal nUM_MONTH, decimal aDD_UP_NUM_YEAR, DateTime cREATE_TIME, string dATA_TIME, decimal lAST_YEAR_SAME_PERIOD, string sHEET_NAME, string tABLENUM, int year, int month)
{
GUID = id;
CompanyCode = companyCode;
ITEM = iTEM;
RowNum = rowNum;
NUM_MONTH = nUM_MONTH;
ADD_UP_NUM_YEAR = aDD_UP_NUM_YEAR;
CREATE_TIME = cREATE_TIME;
DATA_TIME = dATA_TIME;
LAST_YEAR_SAME_PERIOD = lAST_YEAR_SAME_PERIOD;
SHEET_NAME = sHEET_NAME;
TABLENUM = tABLENUM;
Year = year;
Month = month;
}
[DisplayName("公司代码")]
public string CompanyCode { get; set; }
[DisplayName("项目")]
public string ITEM { get; set; }
[DisplayName("行次")]
public string RowNum { get; set; }
[DisplayName("本月数")]
public decimal NUM_MONTH { get; set; }
[DisplayName("本年累计数")]
public decimal ADD_UP_NUM_YEAR { get; set; }
[DisplayName("创建时间")]
public DateTime CREATE_TIME { get; set; }
[DisplayName("时间")]
public string DATA_TIME { get; set; }
[DisplayName("上年同期累计数")]
public decimal LAST_YEAR_SAME_PERIOD { get; set; }
[DisplayName("表名")]
public string SHEET_NAME { get; set; }
[DisplayName("报表编号")]
public string TABLENUM { get; set; }
[DisplayName("年")]
public int Year { get; set; }
[DisplayName("月")]
public int Month { get; set; }
#region 公共字段
[DisplayName("创建人")]
public string CreateUser { get; set; } = "JQ";
[DisplayName("创建时间")]
public DateTime CreateTime { get; set; } = DateTime.Now;
[DisplayName("修改人")]
public string UpdateUser { get; set; }
[DisplayName("修改时间")]
public DateTime? UpdateTime { get; set; }
[DisplayName("状态")]
public int State { get; set; } = 1;
[DisplayName("备注")]
public string Remark { get; set; }
public int UID { get; set; }
public Guid GUID { get; set; }
public override object[] GetKeys()
{
throw new NotImplementedException();
}
#endregion
}
}

93
src/API.Domain/BudgetDataSources/JQ_QJFYB.cs

@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
namespace API.BudgetDataSources
{
[DisplayName("JQQJFYB久其期间费用表")]
public class JQ_QJFYB : Entity
{
public JQ_QJFYB()
{
}
public JQ_QJFYB(Guid id, string companyCode, string iTEM, string rowNum, decimal nUM_MONTH, decimal aDD_UP_NUM_YEAR, DateTime cREATE_TIME, string dATA_TIME, decimal lAST_YEAR_ADD_UP, string sHEET_NAME, string tABLENUM, int year, int month)
{
GUID = id;
CompanyCode = companyCode;
ITEM = iTEM;
RowNum = rowNum;
NUM_MONTH = nUM_MONTH;
ADD_UP_NUM_YEAR = aDD_UP_NUM_YEAR;
CREATE_TIME = cREATE_TIME;
DATA_TIME = dATA_TIME;
LAST_YEAR_ADD_UP = lAST_YEAR_ADD_UP;
SHEET_NAME = sHEET_NAME;
TABLENUM = tABLENUM;
Year = year;
Month = month;
}
[DisplayName("公司代码")]
public string CompanyCode { get; set; }
[DisplayName("项目")]
public string ITEM { get; set; }
[DisplayName("行次")]
public string RowNum { get; set; }
[DisplayName("本月数")]
public decimal NUM_MONTH { get; set; }
[DisplayName("本年累计数")]
public decimal ADD_UP_NUM_YEAR { get; set; }
[DisplayName("创建时间")]
public DateTime CREATE_TIME { get; set; }
[DisplayName("时间")]
public string DATA_TIME { get; set; }
[DisplayName("上年同期累计数")]
public decimal LAST_YEAR_ADD_UP { get; set; }
[DisplayName("表名")]
public string SHEET_NAME { get; set; }
[DisplayName("报表编号")]
public string TABLENUM { get; set; }
[DisplayName("年")]
public int Year { get; set; }
[DisplayName("月")]
public int Month { get; set; }
#region 公共字段
[DisplayName("创建人")]
public string CreateUser { get; set; } = "JQ";
[DisplayName("创建时间")]
public DateTime CreateTime { get; set; } = DateTime.Now;
[DisplayName("修改人")]
public string UpdateUser { get; set; }
[DisplayName("修改时间")]
public DateTime? UpdateTime { get; set; }
[DisplayName("状态")]
public int State { get; set; } = 1;
[DisplayName("备注")]
public string Remark { get; set; }
public int UID { get; set; }
public Guid GUID { get; set; }
public override object[] GetKeys()
{
throw new NotImplementedException();
}
#endregion
}
}

101
src/API.Domain/BudgetDataSources/JQ_SCCBB.cs

@ -0,0 +1,101 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
namespace API.BudgetDataSources
{
[DisplayName("JQSCCBB久其生产成本表")]
public class JQ_SCCBB : Entity
{
public JQ_SCCBB()
{
}
public JQ_SCCBB(Guid id ,string companyCode, string iTEM, string rowNum, decimal mONTH_BEGINNING, decimal tR_MONTH, decimal wG_MONTH, decimal wG_ADD_UP, decimal mONTH_CLOSING, decimal tR_ADD_UP, DateTime cREATE_TIME, string dATA_TIME, int year, int month, string sHEET_NAME, string tABLENUM)
{
GUID = id;
CompanyCode = companyCode;
ITEM = iTEM;
RowNum = rowNum;
MONTH_BEGINNING = mONTH_BEGINNING;
TR_MONTH = tR_MONTH;
WG_MONTH = wG_MONTH;
WG_ADD_UP = wG_ADD_UP;
MONTH_CLOSING = mONTH_CLOSING;
TR_ADD_UP = tR_ADD_UP;
CREATE_TIME = cREATE_TIME;
DATA_TIME = dATA_TIME;
Year = year;
Month = month;
SHEET_NAME = sHEET_NAME;
TABLENUM = tABLENUM;
}
[DisplayName("公司代码")]
public string CompanyCode { get; set; }
[DisplayName("项目")]
public string ITEM { get; set; }
[DisplayName("行次")]
public string RowNum { get; set; }
[DisplayName("月初余额")]
public decimal MONTH_BEGINNING { get; set; }
[DisplayName("投入本月")]
public decimal TR_MONTH { get; set; }
[DisplayName("完工本月")]
public decimal WG_MONTH { get; set; }
[DisplayName("完工累计")]
public decimal WG_ADD_UP { get; set; }
[DisplayName("月末余额")]
public decimal MONTH_CLOSING { get; set; }
[DisplayName("投入累计")]
public decimal TR_ADD_UP { get; set; }
[DisplayName("创建时间")]
public DateTime CREATE_TIME { get; set; }
[DisplayName("时间")]
public string DATA_TIME { get; set; }
[DisplayName("年")]
public int Year { get; set; }
[DisplayName("月")]
public int Month { get; set; }
[DisplayName("表名")]
public string SHEET_NAME { get; set; }
[DisplayName("报表编号")]
public string TABLENUM { get; set; }
#region 公共字段
[DisplayName("创建人")]
public string CreateUser { get; set; } = "JQ";
[DisplayName("创建时间")]
public DateTime CreateTime { get; set; } = DateTime.Now;
[DisplayName("修改人")]
public string UpdateUser { get; set; }
[DisplayName("修改时间")]
public DateTime? UpdateTime { get; set; }
[DisplayName("状态")]
public int State { get; set; } = 1;
[DisplayName("备注")]
public string Remark { get; set; }
public int UID { get; set; }
public Guid GUID { get; set; }
public override object[] GetKeys()
{
throw new NotImplementedException();
}
#endregion
}
}

106
src/API.Domain/BudgetDataSources/JQ_XJLLB.cs

@ -0,0 +1,106 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
namespace API.BudgetDataSources
{
[DisplayName("JQXJLLB久其现金流量表")]
public class JQ_XJLLB : Entity
{
public JQ_XJLLB()
{
}
public JQ_XJLLB(Guid id, string companyCode, string iTEM, string rowNum, decimal aLL_TOTAL, decimal hBZJ_TOTAL, decimal hBZJ_JTWB,
decimal hBZJ_JTNB, decimal ySPJ_TOTAL, decimal yPJ_JTWB, decimal ySPJ_JTNB,
DateTime cREATE_TIME, string dATA_TIME, string sHEET_NAME, string tABLENUM, int year, int month)
{
GUID = id;
CompanyCode = companyCode;
ITEM = iTEM;
RowNum = rowNum;
ALL_TOTAL = aLL_TOTAL;
HBZJ_TOTAL = hBZJ_TOTAL;
HBZJ_JTWB = hBZJ_JTWB;
HBZJ_JTNB = hBZJ_JTNB;
YSPJ_TOTAL = ySPJ_TOTAL;
YSPJ_JTWB = yPJ_JTWB;
YSPJ_JTNB = ySPJ_JTNB;
CREATE_TIME = cREATE_TIME;
DATA_TIME = dATA_TIME;
SHEET_NAME = sHEET_NAME;
TABLENUM = tABLENUM;
Year = year;
Month = month;
}
[DisplayName("公司代码")]
public string CompanyCode { get; set; }
[DisplayName("项目")]
public string ITEM { get; set; }
[DisplayName("行次")]
public string RowNum { get; set; }
[DisplayName("总计")]
public decimal ALL_TOTAL { get; set; }
[DisplayName("货币资金合计")]
public decimal HBZJ_TOTAL { get; set; }
[DisplayName("货币资金集团外部")]
public decimal HBZJ_JTWB { get; set; }
[DisplayName("货币资金集团内部")]
public decimal HBZJ_JTNB { get; set; }
[DisplayName("应收票据合计")]
public decimal YSPJ_TOTAL { get; set; }
[DisplayName("应收票据集团外部")]
public decimal YSPJ_JTWB { get; set; }
[DisplayName("应收票据集团内部")]
public decimal YSPJ_JTNB { get; set; }
[DisplayName("创建时间")]
public DateTime CREATE_TIME { get; set; }
[DisplayName("时间")]
public string DATA_TIME { get; set; }
[DisplayName("表名")]
public string SHEET_NAME { get; set; }
[DisplayName("报表编号")]
public string TABLENUM { get; set; }
[DisplayName("年")]
public int Year { get; set; }
[DisplayName("月")]
public int Month { get; set; }
#region 公共字段
[DisplayName("创建人")]
public string CreateUser { get; set; } = "JQ";
[DisplayName("创建时间")]
public DateTime CreateTime { get; set; } = DateTime.Now;
[DisplayName("修改人")]
public string UpdateUser { get; set; }
[DisplayName("修改时间")]
public DateTime? UpdateTime { get; set; }
[DisplayName("状态")]
public int State { get; set; } = 1;
[DisplayName("备注")]
public string Remark { get; set; }
public int UID { get; set; }
public Guid GUID { get; set; }
public override object[] GetKeys()
{
throw new NotImplementedException();
}
#endregion
}
}

92
src/API.Domain/BudgetDataSources/JQ_ZCFZB.cs

@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
namespace API.BudgetDataSources
{
[DisplayName("JQZCFZB久其资产负债表")]
public class JQ_ZCFZB : Entity
{
public JQ_ZCFZB()
{
}
public JQ_ZCFZB(Guid id, string companyCode, string iTEM, string rowNum, decimal cLOSING_BALANCE, decimal bEGINNING_BALANCE, DateTime cREATE_TIME, string dATA_TIME,string sHEET_NAME, string tABLENUM, int year, int month)
{
GUID = id;
CompanyCode = companyCode;
ITEM = iTEM;
RowNum = rowNum;
CLOSING_BALANCE = cLOSING_BALANCE;
BEGINNING_BALANCE = bEGINNING_BALANCE;
CREATE_TIME = cREATE_TIME;
DATA_TIME = dATA_TIME;
SHEET_NAME = sHEET_NAME;
TABLENUM = tABLENUM;
Year = year;
Month = month;
}
[DisplayName("公司代码")]
public string CompanyCode { get; set; }
[DisplayName("项目")]
public string ITEM { get; set; }
[DisplayName("行次")]
public string RowNum { get; set; }
[DisplayName("期末余额")]
public decimal CLOSING_BALANCE { get; set; }
[DisplayName("年初余额")]
public decimal BEGINNING_BALANCE { get; set; }
[DisplayName("创建时间")]
public DateTime CREATE_TIME { get; set; }
[DisplayName("时间")]
public string DATA_TIME { get; set; }
[DisplayName("资产类别")]
public string ITEM_TYP { get; set; }
[DisplayName("表单名称")]
public string SHEET_NAME { get; set; }
[DisplayName("报表编号")]
public string TABLENUM { get; set; }
[DisplayName("年")]
public int Year { get; set; }
[DisplayName("月")]
public int Month { get; set; }
#region 公共字段
[DisplayName("创建人")]
public string CreateUser { get; set; } = "JQ";
[DisplayName("创建时间")]
public DateTime CreateTime { get; set; } = DateTime.Now;
[DisplayName("修改人")]
public string UpdateUser { get; set; }
[DisplayName("修改时间")]
public DateTime? UpdateTime { get; set; }
[DisplayName("状态")]
public int State { get; set; } = 1;
[DisplayName("备注")]
public string Remark { get; set; }
public int UID { get; set; }
public Guid GUID { get; set; }
public override object[] GetKeys()
{
throw new NotImplementedException();
}
#endregion
}
}

92
src/API.Domain/BudgetDataSources/JQ_ZZFYB.cs

@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
namespace API.BudgetDataSources
{
[DisplayName("JQZZFYB久其制造费用表")]
public class JQ_ZZFYB : Entity
{
public JQ_ZZFYB()
{
}
public JQ_ZZFYB(Guid id, string companyCode, string iTEM, string rowNum, decimal nUM_MONTH, decimal aDD_UP_NUM_YEAR, DateTime cREATE_TIME, string dATA_TIME, decimal lAST_YEAR_ADD_UP, string sHEET_NAME, string tABLENUM, int year, int month)
{
GUID = id;
CompanyCode = companyCode;
ITEM = iTEM;
RowNum = rowNum;
NUM_MONTH = nUM_MONTH;
ADD_UP_NUM_YEAR = aDD_UP_NUM_YEAR;
CREATE_TIME = cREATE_TIME;
DATA_TIME = dATA_TIME;
LAST_YEAR_ADD_UP = lAST_YEAR_ADD_UP;
SHEET_NAME = sHEET_NAME;
TABLENUM = tABLENUM;
Year = year;
Month = month;
}
[DisplayName("公司代码")]
public string CompanyCode { get; set; }
[DisplayName("项目")]
public string ITEM { get; set; }
[DisplayName("行次")]
public string RowNum { get; set; }
[DisplayName("本月数")]
public decimal NUM_MONTH { get; set; }
[DisplayName("本年累计数")]
public decimal ADD_UP_NUM_YEAR { get; set; }
[DisplayName("创建时间")]
public DateTime CREATE_TIME { get; set; }
[DisplayName("时间")]
public string DATA_TIME { get; set; }
[DisplayName("上年累计数")]
public decimal LAST_YEAR_ADD_UP { get; set; }
[DisplayName("表名")]
public string SHEET_NAME { get; set; }
[DisplayName("报表编号")]
public string TABLENUM { get; set; }
[DisplayName("年")]
public int Year { get; set; }
[DisplayName("月")]
public int Month { get; set; }
#region 公共字段
[DisplayName("创建人")]
public string CreateUser { get; set; } = "JQ";
[DisplayName("创建时间")]
public DateTime CreateTime { get; set; } = DateTime.Now;
[DisplayName("修改人")]
public string UpdateUser { get; set; }
[DisplayName("修改时间")]
public DateTime? UpdateTime { get; set; }
[DisplayName("状态")]
public int State { get; set; } = 1;
[DisplayName("备注")]
public string Remark { get; set; }
public int UID { get; set; }
public Guid GUID { get; set; }
public override object[] GetKeys()
{
throw new NotImplementedException();
}
#endregion
}
}

72
src/API.Domain/BudgetDataSources/TI_CBB04_BUDGET.cs

@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
namespace API.BudgetDataSources
{
[DisplayName("CBB04降成本输入表")]
public class TI_CBB04_BUDGET : Entity
{
public TI_CBB04_BUDGET()
{
}
[DisplayName("公司代码")]
public string CompanyCode { get; set; }
[DisplayName("行号")]
public string RowNum { get; set; }
[DisplayName("项目")]
public string ProjectName { get; set; }
#region IBudgetTable
[DisplayName("关联数据")]
public string DataString { get; set; }
#endregion
#region 公共字段
[DisplayName("创建人")]
public string CreateUser { get; set; }
[DisplayName("创建时间")]
public DateTime CreateTime { get; set; }
[DisplayName("修改人")]
public string UpdateUser { get; set; }
[DisplayName("修改时间")]
public DateTime? UpdateTime { get; set; }
[DisplayName("状态")]
public int State { get; set; } = 1;
[DisplayName("备注")]
public string Remark { get; set; }
public int UID { get; set; }
public Guid GUID { get; set; }
public override object[] GetKeys()
{
throw new NotImplementedException();
}
#endregion
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save