Browse Source

修改扩展类名称

pull/11/head
王军 4 years ago
parent
commit
d55314bf7e
  1. 28
      aspnet-core/CompanyName.ProjectName.sln
  2. 2
      aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/CompanyName.ProjectName.CAP.csproj
  3. 6
      aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/ProjectNameAbpCapConsumerServiceSelector.cs
  4. 7
      aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/ProjectNameAbpCapDistributedEventBus.cs
  5. 4
      aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/ProjectNameAbpCapModule.cs
  6. 8
      aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/ProjectNameAbpCapServiceCollectionExtensions.cs
  7. 2
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/CompanyName.ProjectName.Extension.csproj
  8. 2
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/CustomeListResultDto.cs
  9. 2
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/CustomePagedResultDto.cs
  10. 2
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/FromSelector.cs
  11. 2
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/IdInput.cs
  12. 2
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/PagingBase.cs
  13. 2
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Guard.cs
  14. 6
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Http/HttpClientHelper.cs
  15. 4
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/BooleanExtensions.cs
  16. 8
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Collections/Generic/CollectionExtensions.cs
  17. 7
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Collections/Generic/EnumerableExtensions.cs
  18. 5
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/DateTimeExtensions.cs
  19. 3
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/EnumExtensions.cs
  20. 5
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/ExceptionExtensions.cs
  21. 8
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Linq/QueryableExtensions.cs
  22. 5
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Reflection/AssemblyExtensions.cs
  23. 6
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Reflection/MemberInfoExtensions.cs
  24. 5
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Reflection/MethodInfoExtensions.cs
  25. 3
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Reflection/PropertyInfoExtensions.cs
  26. 8
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/StringExtensions.cs
  27. 7
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Text/StringBuilderExtensions.cs
  28. 21
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/CompanyName.ProjectName.Extensions.csproj
  29. 26
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Dtos/CustomeListResultDto.cs
  30. 21
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Dtos/CustomePagedResultDto.cs
  31. 41
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Dtos/FromSelector.cs
  32. 59
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Dtos/PagingBase.cs
  33. 302
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Guard.cs
  34. 164
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Http/HttpClientHelper.cs
  35. 13
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Http/HttpClientNameConsts.cs
  36. 77
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Collections/Generic/CollectionExtensions.cs
  37. 78
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/DateTimeExtensions.cs
  38. 76
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/ExceptionExtensions.cs
  39. 26
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Reflection/AssemblyExtensions.cs
  40. 24
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Reflection/PropertyInfoExtensions.cs
  41. 241
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Text/StringBuilderExtensions.cs
  42. 21
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Volo/Abp/BaseAbpModule.cs
  43. 35
      aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Volo/Abp/BaseDomainService.cs
  44. 9
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Dtos/IdInput.cs
  45. 27
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/BooleanExtensions.cs
  46. 199
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Collections/Generic/EnumerableExtensions.cs
  47. 199
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/EnumExtensions.cs
  48. 28
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Linq/QueryableExtensions.cs
  49. 73
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Reflection/MemberInfoExtensions.cs
  50. 31
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Reflection/MethodInfoExtensions.cs
  51. 981
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/StringExtensions.cs
  52. 2
      aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Application.Contracts/DataDictionaries/Dtos/PagingDataDictionaryDetailInput.cs
  53. 2
      aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Application.Contracts/DataDictionaries/Dtos/PagingDataDictionaryInput.cs
  54. 3
      aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Domain.Shared/CompanyName.ProjectName.DataDictionaryManagement.Domain.Shared.csproj
  55. 2
      aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Domain/DataDictionaries/Aggregates/DataDictionary.cs
  56. 2
      aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Domain/DataDictionaries/Aggregates/DataDictionaryDetail.cs
  57. 6
      aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Domain/DataDictionaries/DataDictionaryManager.cs
  58. 2
      aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.EntityFrameworkCore/EntityFrameworkCore/DataDictionaries/EfCoreDataDictionaryRepository.cs
  59. 5
      aspnet-core/modules/DataDictionaryManagement/test/CompanyName.ProjectName.DataDictionaryManagement.Domain.Tests/DataDictionaries/DataDictionaryManager_Tests.cs
  60. 3
      aspnet-core/modules/NotificationManagement/src/CompanyName.ProjectName.NotificationManagement.Application.Contracts/Notifications/Dtos/PagingNotificationListInput.cs
  61. 6
      aspnet-core/modules/NotificationManagement/src/CompanyName.ProjectName.NotificationManagement.Domain.Shared/CompanyName.ProjectName.NotificationManagement.Domain.Shared.csproj
  62. 9
      aspnet-core/modules/NotificationManagement/src/CompanyName.ProjectName.NotificationManagement.Domain/Notifications/Aggregates/Notification.cs
  63. 3
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/CompanyName.ProjectName.HttpApi.Host.csproj
  64. 4
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs
  65. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/AuditLogs/PagingAuditLogListInput.cs
  66. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/ElasticSearchs/ICompanyNameProjectNameLogAppService.cs
  67. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/ApiResources/Dtos/PagingApiRseourceListInput.cs
  68. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/ApiResources/IApiResourceAppService.cs
  69. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/ApiScopes/Dtos/PagingApiScopeListInput.cs
  70. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/ApiScopes/IApiScopeAppService.cs
  71. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/Clients/Dtos/PagingClientListInput.cs
  72. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/Clients/IIdentityServerClientAppService.cs
  73. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/IdentityResources/Dtos/PagingIdentityResourceListInput.cs
  74. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/IdentityResources/IIdentityResourceAppService.cs
  75. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Roles/Dtos/PagingRoleListInput.cs
  76. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Roles/IRoleAppService.cs
  77. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Tenants/Dtos/PagingTenantInput.cs
  78. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Users/Dtos/PagingUserListInput.cs
  79. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Users/IUserAppService.cs
  80. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/CompanyNameProjectNameLogAppService.cs
  81. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/ApiResources/ApiResourceAppService.cs
  82. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/ApiScopes/ApiScopeAppService.cs
  83. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/Clients/IdentityServerClientAppService.cs
  84. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/IdentityResources/IdentityResourceAppService.cs
  85. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application/Roles/RoleAppService.cs
  86. 10
      aspnet-core/services/src/CompanyName.ProjectName.Application/Users/AccountAppService.cs
  87. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application/Users/UserAppService.cs
  88. 4
      aspnet-core/services/src/CompanyName.ProjectName.Domain.Shared/CompanyName.ProjectName.Domain.Shared.csproj
  89. 3
      aspnet-core/services/src/CompanyName.ProjectName.Domain/IdentityServer/IdenityServerApiResourceManager.cs
  90. 2
      aspnet-core/services/src/CompanyName.ProjectName.Domain/IdentityServer/IdenityServerClientManager.cs
  91. 2
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/CompanyNameProjectNameLogRepository.cs
  92. 2
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/Dto/PagingElasticSearchLogInput.cs
  93. 2
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/ICompanyNameProjectNameLogRepository.cs
  94. 3
      aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/IdentityServers/ApiResourceController.cs
  95. 2
      aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/IdentityServers/ApiScopeController.cs
  96. 2
      aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/IdentityServers/ClientController.cs
  97. 2
      aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/IdentityServers/IdentityResourceController.cs
  98. 2
      aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/Systems/CompanyNameProjectNameLogController.cs
  99. 2
      aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/Systems/RoleController.cs
  100. 2
      aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/Systems/UserController.cs

28
aspnet-core/CompanyName.ProjectName.sln

@ -127,10 +127,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.Sha
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.Shared.Hosting.Gateways", "shared\CompanyName.ProjectName.Shared.Hosting.Gateways\CompanyName.ProjectName.Shared.Hosting.Gateways.csproj", "{C018EFF9-579E-43B3-9181-543BE95E2E03}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.Abp.Cap", "frameworks\CAP\src\Lion.Abp.Cap\Lion.Abp.Cap.csproj", "{800F4482-EAC3-472B-AF07-53980D47AA41}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.Abp.Extension", "frameworks\Extensions\src\Lion.Abp.Extension\Lion.Abp.Extension.csproj", "{6848FA46-EFFF-4E0C-8EAA-145D8C440333}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gateways", "gateways", "{5C304CBC-F30D-413C-A0AF-8B6814A2D4A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.WebGateway", "gateways\CompanyName.ProjectName.WebGateway\CompanyName.ProjectName.WebGateway.csproj", "{D9108313-8D05-4F5F-9AA0-B443EC3374B6}"
@ -139,6 +135,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.Fre
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.ElasticsearchRepository", "services\src\CompanyName.ProjectName.ElasticsearchRepository\CompanyName.ProjectName.ElasticsearchRepository.csproj", "{5910B07F-1520-45D6-A15F-7A3E0698BE18}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.Extension", "frameworks\Extensions\src\CompanyName.ProjectName.Extension\CompanyName.ProjectName.Extension.csproj", "{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.CAP", "frameworks\CAP\src\CompanyName.ProjectName.CAP\CompanyName.ProjectName.CAP.csproj", "{3C3FF821-E43D-4D58-8B3C-1E97F4518EF7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -305,14 +305,6 @@ Global
{C018EFF9-579E-43B3-9181-543BE95E2E03}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C018EFF9-579E-43B3-9181-543BE95E2E03}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C018EFF9-579E-43B3-9181-543BE95E2E03}.Release|Any CPU.Build.0 = Release|Any CPU
{800F4482-EAC3-472B-AF07-53980D47AA41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{800F4482-EAC3-472B-AF07-53980D47AA41}.Debug|Any CPU.Build.0 = Debug|Any CPU
{800F4482-EAC3-472B-AF07-53980D47AA41}.Release|Any CPU.ActiveCfg = Release|Any CPU
{800F4482-EAC3-472B-AF07-53980D47AA41}.Release|Any CPU.Build.0 = Release|Any CPU
{6848FA46-EFFF-4E0C-8EAA-145D8C440333}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6848FA46-EFFF-4E0C-8EAA-145D8C440333}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6848FA46-EFFF-4E0C-8EAA-145D8C440333}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6848FA46-EFFF-4E0C-8EAA-145D8C440333}.Release|Any CPU.Build.0 = Release|Any CPU
{D9108313-8D05-4F5F-9AA0-B443EC3374B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D9108313-8D05-4F5F-9AA0-B443EC3374B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D9108313-8D05-4F5F-9AA0-B443EC3374B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -325,6 +317,14 @@ Global
{5910B07F-1520-45D6-A15F-7A3E0698BE18}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5910B07F-1520-45D6-A15F-7A3E0698BE18}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5910B07F-1520-45D6-A15F-7A3E0698BE18}.Release|Any CPU.Build.0 = Release|Any CPU
{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}.Release|Any CPU.Build.0 = Release|Any CPU
{3C3FF821-E43D-4D58-8B3C-1E97F4518EF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3C3FF821-E43D-4D58-8B3C-1E97F4518EF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3C3FF821-E43D-4D58-8B3C-1E97F4518EF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3C3FF821-E43D-4D58-8B3C-1E97F4518EF7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -384,11 +384,11 @@ Global
{FB1C29FF-5467-4CF0-995D-5B3F931AB135} = {8C1B8C6C-C518-4290-B070-622CCA6004DA}
{A091AE9B-3A1E-49AC-9AD5-D29310512A3D} = {6434E3F2-B352-4B30-839A-88C2BA166D96}
{C018EFF9-579E-43B3-9181-543BE95E2E03} = {6434E3F2-B352-4B30-839A-88C2BA166D96}
{800F4482-EAC3-472B-AF07-53980D47AA41} = {11ED8435-B5AE-4BF3-9D4B-51FA1E4A18A6}
{6848FA46-EFFF-4E0C-8EAA-145D8C440333} = {C4AC9352-C9F5-4096-8D73-13638232CFB9}
{D9108313-8D05-4F5F-9AA0-B443EC3374B6} = {5C304CBC-F30D-413C-A0AF-8B6814A2D4A3}
{FC30B17B-F671-4E55-90C6-9F37E40B483D} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{5910B07F-1520-45D6-A15F-7A3E0698BE18} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7} = {C4AC9352-C9F5-4096-8D73-13638232CFB9}
{3C3FF821-E43D-4D58-8B3C-1E97F4518EF7} = {11ED8435-B5AE-4BF3-9D4B-51FA1E4A18A6}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F}

2
aspnet-core/frameworks/CAP/src/Lion.Abp.Cap/Lion.Abp.Cap.csproj → aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/CompanyName.ProjectName.CAP.csproj

@ -1,4 +1,5 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
@ -13,4 +14,5 @@
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="$(DotNetCoreCAPVersion)" />
<PackageReference Include="DotNetCore.CAP.InMemoryStorage" Version="$(DotNetCoreCAPVersion)" />
</ItemGroup>
</Project>

6
aspnet-core/frameworks/CAP/src/Lion.Abp.Cap/LionAbpCapConsumerServiceSelector.cs → aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/ProjectNameAbpCapConsumerServiceSelector.cs

@ -10,11 +10,11 @@ using Volo.Abp.DependencyInjection;
using Volo.Abp.EventBus;
using Volo.Abp.EventBus.Distributed;
namespace Lion.Abp.Cap
namespace CompanyName.ProjectName.CAP
{
[Dependency(ServiceLifetime.Singleton, ReplaceServices = true)]
[ExposeServices(typeof(IConsumerServiceSelector))]
public class LionAbpCapConsumerServiceSelector : ConsumerServiceSelector
public class ProjectNameAbpCapConsumerServiceSelector : ConsumerServiceSelector
{
protected AbpDistributedEventBusOptions AbpDistributedEventBusOptions { get; }
protected IServiceProvider ServiceProvider { get; }
@ -22,7 +22,7 @@ namespace Lion.Abp.Cap
/// <summary>
/// Creates a new <see cref="T:DotNetCore.CAP.Internal.ConsumerServiceSelector" />.
/// </summary>
public LionAbpCapConsumerServiceSelector(
public ProjectNameAbpCapConsumerServiceSelector(
IServiceProvider serviceProvider,
IOptions<AbpDistributedEventBusOptions> distributedEventBusOptions)
: base(serviceProvider)

7
aspnet-core/frameworks/CAP/src/Lion.Abp.Cap/LionAbpCapDistributedEventBus.cs → aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/ProjectNameAbpCapDistributedEventBus.cs

@ -13,10 +13,9 @@ using Volo.Abp.EventBus.Distributed;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Threading;
namespace Lion.Abp.Cap
namespace CompanyName.ProjectName.CAP
{
public class LionAbpCapDistributedEventBus :
public class ProjectNameAbpCapDistributedEventBus :
EventBusBase,
IDistributedEventBus,
ISingletonDependency
@ -27,7 +26,7 @@ namespace Lion.Abp.Cap
protected readonly ICapPublisher CapPublisher;
public LionAbpCapDistributedEventBus(IServiceScopeFactory serviceScopeFactory,
public ProjectNameAbpCapDistributedEventBus(IServiceScopeFactory serviceScopeFactory,
IOptions<AbpDistributedEventBusOptions> distributedEventBusOptions,
ICapPublisher capPublisher,
ICurrentTenant currentTenant,

4
aspnet-core/frameworks/CAP/src/Lion.Abp.Cap/LionAbpCapModule.cs → aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/ProjectNameAbpCapModule.cs

@ -1,10 +1,10 @@
using Volo.Abp.EventBus;
using Volo.Abp.Modularity;
namespace Lion.Abp.Cap
namespace CompanyName.ProjectName.CAP
{
[DependsOn(typeof(AbpEventBusModule))]
public class LionAbpCapModule : AbpModule
public class ProjectNameAbpCapModule : AbpModule
{
}
}

8
aspnet-core/frameworks/CAP/src/Lion.Abp.Cap/LionAbpCapServiceCollectionExtensions.cs → aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/ProjectNameAbpCapServiceCollectionExtensions.cs

@ -5,17 +5,17 @@ using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Modularity;
namespace Lion.Abp.Cap
namespace CompanyName.ProjectName.CAP
{
public static class AbpCapServiceCollectionExtensions
public static class ProjectNameAbpCapServiceCollectionExtensions
{
public static ServiceConfigurationContext AddAbpCap(
this ServiceConfigurationContext context,
Action<CapOptions> capAction)
{
context.Services.AddCap(capAction);
context.Services.AddSingleton<IConsumerServiceSelector, LionAbpCapConsumerServiceSelector>();
context.Services.AddSingleton<IDistributedEventBus, LionAbpCapDistributedEventBus>();
context.Services.AddSingleton<IConsumerServiceSelector, ProjectNameAbpCapConsumerServiceSelector>();
context.Services.AddSingleton<IDistributedEventBus, ProjectNameAbpCapDistributedEventBus>();
return context;
}
}

2
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Lion.Abp.Extension.csproj → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/CompanyName.ProjectName.Extension.csproj

@ -1,4 +1,5 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
@ -15,4 +16,5 @@
<PackageReference Include="Volo.Abp.AutoMapper" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.ObjectMapping" Version="$(AbpPackageVersion)" />
</ItemGroup>
</Project>

2
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Dtos/CustomeListResultDto.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/CustomeListResultDto.cs

@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
namespace Lion.Abp.Extension
namespace CompanyName.ProjectName.Extension.Customs.Dtos
{
[Serializable]
public class CustomeListResultDto<T>

2
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Dtos/CustomePagedResultDto.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/CustomePagedResultDto.cs

@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
namespace Lion.Abp.Extension
namespace CompanyName.ProjectName.Extension.Customs.Dtos
{
[Serializable]
public class CustomePagedResultDto<T> : CustomeListResultDto<T>

2
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Dtos/FromSelector.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/FromSelector.cs

@ -1,4 +1,4 @@
namespace Lion.Abp.Extension
namespace CompanyName.ProjectName.Extension.Customs.Dtos
{

2
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Dtos/IdInput.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/IdInput.cs

@ -1,6 +1,6 @@
using System;
namespace CompanyName.ProjectName.Publics.Dtos
namespace CompanyName.ProjectName.Extension.Customs.Dtos
{
public class IdInput
{

2
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Dtos/PagingBase.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Dtos/PagingBase.cs

@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace Lion.Abp.Extension
namespace CompanyName.ProjectName.Extension.Customs.Dtos
{

2
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Guard.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Guard.cs

@ -4,7 +4,7 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
namespace Lion.Abp.Extension
namespace CompanyName.ProjectName.Extension.Customs
{
/// <summary>
/// 参数合法性检查类

6
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Http/HttpClientHelper.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/Customs/Http/HttpClientHelper.cs

@ -1,12 +1,12 @@
using Newtonsoft.Json;
using System;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace Lion.Abp.Extension
namespace CompanyName.ProjectName.Extension.Customs.Http
{
/// <summary>
/// 基于IHttpClientFactory二次封装httpclient

4
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/BooleanExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/BooleanExtensions.cs

@ -1,4 +1,6 @@
namespace System
using System;
namespace CompanyName.ProjectName.Extension.System
{
/// <summary>
/// 布尔值<see cref="Boolean"/>类型的扩展辅助操作类

8
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Collections/Generic/CollectionExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Collections/Generic/CollectionExtensions.cs

@ -1,7 +1,9 @@
using System.Linq;
using Lion.Abp.Extension;
using System;
using System.Collections.Generic;
using System.Linq;
using CompanyName.ProjectName.Extension.Customs;
namespace System.Collections.Generic
namespace CompanyName.ProjectName.Extension.System.Collections.Generic
{
/// <summary>
/// 集合扩展方法

7
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Collections/Generic/EnumerableExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Collections/Generic/EnumerableExtensions.cs

@ -1,9 +1,10 @@
using CompanyName.ProjectName.Extensions.Customs;
using System.ComponentModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CompanyName.ProjectName.Extension.Customs;
namespace System.Collections.Generic
namespace CompanyName.ProjectName.Extension.System.Collections.Generic
{
/// <summary>
/// Enumerable集合扩展方法

5
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/DateTimeExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/DateTimeExtensions.cs

@ -1,7 +1,8 @@
using System.Globalization;
using System;
using System.Globalization;
using System.Linq;
namespace System
namespace CompanyName.ProjectName.Extension.System
{
/// <summary>
/// 时间扩展操作类

3
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/EnumExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/EnumExtensions.cs

@ -4,8 +4,9 @@ using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using CompanyName.ProjectName.Extension.System.Reflection;
namespace System
namespace CompanyName.ProjectName.Extension.System
{
/// <summary>
/// 枚举<see cref="Enum"/>的扩展辅助操作方法

5
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/ExceptionExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/ExceptionExtensions.cs

@ -1,7 +1,8 @@
using System.Runtime.ExceptionServices;
using System;
using System.Runtime.ExceptionServices;
using System.Text;
namespace System
namespace CompanyName.ProjectName.Extension.System
{
/// <summary>
/// 异常操作扩展

8
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Linq/QueryableExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Linq/QueryableExtensions.cs

@ -1,7 +1,9 @@
using System.Linq.Expressions;
using CompanyName.ProjectName.Extensions.Customs;
using System;
using System.Linq;
using System.Linq.Expressions;
using CompanyName.ProjectName.Extension.Customs;
namespace System.Linq
namespace CompanyName.ProjectName.Extension.System.Linq
{
/// <summary>
/// IQueryable集合扩展方法

5
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Reflection/AssemblyExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Reflection/AssemblyExtensions.cs

@ -1,7 +1,8 @@
using System.Diagnostics;
using Lion.Abp.Extension;
using System.Reflection;
using CompanyName.ProjectName.Extension.Customs;
namespace System.Reflection
namespace CompanyName.ProjectName.Extension.System.Reflection
{
/// <summary>
/// 程序集扩展操作类

6
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Reflection/MemberInfoExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Reflection/MemberInfoExtensions.cs

@ -1,8 +1,10 @@
using System.ComponentModel;
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
namespace System.Reflection
namespace CompanyName.ProjectName.Extension.System.Reflection
{
/// <summary>
/// 成员<see cref="MemberInfo"/>的扩展辅助操作方法

5
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Reflection/MethodInfoExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Reflection/MethodInfoExtensions.cs

@ -1,6 +1,7 @@
using System.Threading.Tasks;
using System.Reflection;
using System.Threading.Tasks;
namespace System.Reflection
namespace CompanyName.ProjectName.Extension.System.Reflection
{
/// <summary>
/// 方法<see cref="MethodInfo"/>的扩展辅助操作方法

3
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Reflection/PropertyInfoExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Reflection/PropertyInfoExtensions.cs

@ -1,6 +1,7 @@
using System.Linq;
using System.Reflection;
namespace System.Reflection
namespace CompanyName.ProjectName.Extension.System.Reflection
{
/// <summary>
/// 属性<see cref="MethodInfo"/>的扩展辅助操作方法

8
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/StringExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/StringExtensions.cs

@ -1,14 +1,16 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using CompanyName.ProjectName.Extensions.Customs;
using CompanyName.ProjectName.Extension.Customs;
using CompanyName.ProjectName.Extension.System.Collections.Generic;
using Newtonsoft.Json;
namespace System
namespace CompanyName.ProjectName.Extension.System
{
/// <summary>
/// 字符串<see cref="string"/>类型的扩展辅助操作类

7
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Text/StringBuilderExtensions.cs → aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extension/System/Text/StringBuilderExtensions.cs

@ -1,7 +1,8 @@
using Lion.Abp.Extension;
using System.Linq;
using System;
using System.Text;
using CompanyName.ProjectName.Extension.Customs;
namespace System.Text
namespace CompanyName.ProjectName.Extension.System.Text
{
/// <summary>
/// StringBuilder 扩展方法类

21
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/CompanyName.ProjectName.Extensions.csproj

@ -1,21 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Include="Volo.Abp.Autofac" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Json" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Validation" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.AutoMapper" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.ObjectMapping" Version="$(AbpPackageVersion)" />
</ItemGroup>
</Project>

26
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Dtos/CustomeListResultDto.cs

@ -1,26 +0,0 @@
using System;
using System.Collections.Generic;
namespace CompanyName.ProjectName.Extensions.Customs.Dtos
{
[Serializable]
public class CustomeListResultDto<T>
{
public IReadOnlyList<T> Items
{
get { return _items ??= new List<T>(); }
set => _items = value;
}
private IReadOnlyList<T> _items;
public CustomeListResultDto()
{
}
public CustomeListResultDto(IReadOnlyList<T> items)
{
Items = items;
}
}
}

21
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Dtos/CustomePagedResultDto.cs

@ -1,21 +0,0 @@
using System;
using System.Collections.Generic;
namespace CompanyName.ProjectName.Extensions.Customs.Dtos
{
[Serializable]
public class CustomePagedResultDto<T> : CustomeListResultDto<T>
{
public long TotalCount { get; set; }
public CustomePagedResultDto()
{
}
public CustomePagedResultDto(long totalCount, IReadOnlyList<T> items)
: base(items)
{
TotalCount = totalCount;
}
}
}

41
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Dtos/FromSelector.cs

@ -1,41 +0,0 @@
namespace CompanyName.ProjectName.Extensions.Customs.Dtos
{
public abstract class FromSelectorBase
{
protected FromSelectorBase(int value, string label)
{
Value = value;
Label = label;
}
public int Value { get; protected set; }
public string Label { get; protected set; }
}
public abstract class FromSelectorBase<TValue, TLabel>
{
protected FromSelectorBase(TValue value, TLabel label)
{
Value = value;
Label = label;
}
public TValue Value { get; protected set; }
public TLabel Label { get; protected set; }
}
public class FromSelector : FromSelectorBase
{
public FromSelector(int value, string label) : base(value, label)
{
}
}
public class FromSelector<TValue, TLabel> : FromSelectorBase<TValue, TLabel>
{
public FromSelector(TValue value, TLabel label) : base(value, label)
{
}
}
}

59
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Dtos/PagingBase.cs

@ -1,59 +0,0 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace CompanyName.ProjectName.Extensions.Customs
{
/// <summary>
/// 分页查询时使用的Dto类型
/// </summary>
public class PagingBase : IValidatableObject
{
public const int MaxPageSize = 100000;
/// <summary>
/// 当前页面.默认从1开始
/// </summary>
public int PageIndex { get; set; } = 1;
/// <summary>
/// 每页多少条.每页显示多少记录
/// </summary>
public int PageSize { get; set; } = 10;
/// <summary>
/// 跳过多少条
/// </summary>
public int SkipCount => (PageIndex - 1) * PageSize;
protected PagingBase()
{
}
public PagingBase(int pageIndex = 1, int pageSize = 10)
{
PageIndex = pageIndex;
PageSize = pageSize;
}
public virtual IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (PageIndex < 1)
{
yield return new ValidationResult(
"起始页必须大于等于1",
new[] { "PageIndex"}
);
}
if (PageSize > MaxPageSize)
{
yield return new ValidationResult(
$"每页最大记录数不能超过'{MaxPageSize}'",
new[] { "PageSize"}
);
}
}
}
}

302
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Guard.cs

@ -1,302 +0,0 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
namespace CompanyName.ProjectName.Extensions.Customs
{
/// <summary>
/// 参数合法性检查类
/// </summary>
[DebuggerStepThrough]
public static class Guard
{
/// <summary>
/// 检查参数不能为空引用,
/// 否则抛出<see cref="BeeNullException"/>异常。
/// </summary>
/// <param name="value"></param>
/// <param name="valueName">参数名称</param>
/// <exception cref="BeeNullException"></exception>
public static T NotNull<T>(T value, string valueName)
{
if (null == value)
{
throw new ArgumentNullException(valueName);
}
return value;
}
/// <summary>
/// 检查字符串不能为空引用或空字符串,
/// 否则抛出<see cref="BeeNullOrEmptyException"/>异常
/// 或<see cref="BeeLengthGreaterException"/>异常
/// 或<see cref="BeeLengthLessException"/>异常。
/// </summary>
/// <param name="value"></param>
/// <param name="valueName">参数名称。</param>
/// <param name="maxLength">字符串允许的最大长度。</param>
/// <param name="minLength">字符串允许的最小长度。0表示不限制最小长度</param>
/// <exception cref="BeeNullOrEmptyException"></exception>
/// <exception cref="BeeLengthGreaterException"></exception>
/// <exception cref="BeeLengthLessException"></exception>
public static string NotNullOrEmpty(string value, string valueName, int maxLength = int.MaxValue,
int minLength = 0)
{
if (string.IsNullOrEmpty(value))
{
throw new ArgumentNullException(valueName);
}
if (value.Length > maxLength)
{
throw new ArgumentOutOfRangeException(valueName);
}
if (minLength > 0 && value.Length < minLength)
{
throw new ArgumentOutOfRangeException(valueName);
}
return value;
}
/// <summary>
/// 检查字符串不能为空引用或全部为空白,
/// 否则抛出<see cref="BeeNullOrWhiteSpaceException"/>异常
/// 或<see cref="BeeLengthGreaterException"/>异常
/// 或<see cref="BeeLengthLessException"/>异常。
/// </summary>
/// <param name="value">需检查的字符串</param>
/// <param name="valueName">参数名称。</param>
/// <param name="maxLength">字符串允许的最大长度。</param>
/// <param name="minLength">字符串允许的最小长度。0表示不限制最小长度</param>
/// <exception cref="BeeNullOrWhiteSpaceException"></exception>
/// <exception cref="BeeLengthGreaterException"></exception>
/// <exception cref="BeeLengthLessException"></exception>
public static string NotNullOrWhiteSpace(
string value,
string valueName,
int maxLength = int.MaxValue,
int minLength = 0)
{
if (string.IsNullOrWhiteSpace(value))
{
throw new ArgumentNullException(valueName);
}
if (value.Length > maxLength)
{
throw new ArgumentOutOfRangeException(valueName);
}
if (minLength > 0 && value.Length < minLength)
{
throw new ArgumentOutOfRangeException(valueName);
}
return value;
}
/// <summary>
/// 检查字符串长度是否超过最大长度,或低于最小长度,
/// 否则抛出<see cref="BeeLengthGreaterException"/>异常
/// 或<see cref="BeeLengthLessException"/>异常。
/// </summary>
/// <param name="value">需检查的字符串。</param>
/// <param name="valueName">参数名称。</param>
/// <param name="maxLength">字符串允许的最大长度。</param>
/// <param name="minLength">字符串要求的最小长度。0表示不限制最小长度</param>
/// <exception cref="BeeLengthGreaterException"></exception>
/// <exception cref="BeeLengthLessException"></exception>
public static string Length(string value, string valueName, int maxLength = int.MaxValue,
int minLength = 0)
{
if (string.IsNullOrEmpty(value))
{
return value;
}
if (value.Length > maxLength)
{
throw new ArgumentOutOfRangeException(valueName);
}
if (minLength > 0 && value.Length < minLength)
{
throw new ArgumentOutOfRangeException(valueName);
}
return value;
}
/// <summary>
/// 检查Guid值不能为Guid.Empty,否则抛出<see cref="BeeEmptyGuidException"/>异常。
/// </summary>
/// <param name="value"></param>
/// <param name="valueName">参数名称。</param>
/// <exception cref="BeeEmptyGuidException"></exception>
public static Guid NotEmpty(
Guid value,
string valueName)
{
if (value == Guid.Empty)
{
throw new ArgumentNullException(valueName);
}
return value;
}
/// <summary>
/// 检查集合不能为空引用或空集合,
/// 否则抛出<see cref="BeeCollectionNullOrEmptyException"/>异常。
/// </summary>
/// <typeparam name="T">集合项的类型。</typeparam>
/// <param name="list"></param>
/// <param name="valueName">参数名称。</param>
/// <exception cref="BeeCollectionNullOrEmptyException"></exception>
public static void NotNullOrEmpty<T>(
IReadOnlyList<T> list,
string valueName)
{
if (null == list || !list.Any())
{
throw new ArgumentNullException(valueName);
}
}
/// <summary>
/// 检查参数必须小于[或可等于,参数<paramref name="canEqual"/>]指定值,
/// 否则抛出<see cref="BeeOutOfRangeException"/>异常。
/// </summary>
/// <typeparam name="T">参数类型。</typeparam>
/// <param name="value"></param>
/// <param name="valueName">参数名称。</param>
/// <param name="target">要比较的值。</param>
/// <param name="canEqual">是否可等于。</param>
/// <exception cref="BeeOutOfRangeException"></exception>
public static void LessThan<T>(
T value,
string valueName,
T target,
bool canEqual = false)
where T : IComparable<T>
{
var flag = canEqual ? value.CompareTo(target) <= 0 : value.CompareTo(target) < 0;
if (!flag)
{
throw new ArgumentOutOfRangeException(valueName);
}
}
/// <summary>
/// 检查参数必须大于[或可等于,参数<paramref name="canEqual"/>]指定值,
/// 否则抛出<see cref="BeeOutOfRangeException"/>异常。
/// </summary>
/// <typeparam name="T">参数类型。</typeparam>
/// <param name="value">需检查的参数。</param>
/// <param name="valueName">参数名称。</param>
/// <param name="target">要比较的值。</param>
/// <param name="canEqual">是否可等于。</param>
/// <exception cref="BeeOutOfRangeException"></exception>
public static void GreaterThan<T>(
T value,
string valueName,
T target,
bool canEqual = false)
where T : IComparable<T>
{
var flag = canEqual ? value.CompareTo(target) >= 0 : value.CompareTo(target) > 0;
if (!flag)
{
throw new ArgumentOutOfRangeException(valueName);
}
}
/// <summary>
/// 检查参数必须在指定范围之间,否则抛出<see cref="BeeOutOfRangeException"/>异常。
/// </summary>
/// <typeparam name="T">参数类型。</typeparam>
/// <param name="value">需检查的参数。</param>
/// <param name="valueName">参数名称。</param>
/// <param name="start">比较范围的起始值。</param>
/// <param name="end">比较范围的结束值。</param>
/// <param name="startEqual">是否可等于起始值</param>
/// <param name="endEqual">是否可等于结束值</param>
/// <exception cref="BeeOutOfRangeException">不在指定范围内时</exception>
public static void Between<T>(
T value,
string valueName,
T start,
T end,
bool startEqual = false,
bool endEqual = false)
where T : IComparable<T>
{
var flag = startEqual ? value.CompareTo(start) >= 0 : value.CompareTo(start) > 0;
if (!flag)
{
throw new ArgumentOutOfRangeException(valueName);
}
flag = endEqual ? value.CompareTo(end) <= 0 : value.CompareTo(end) < 0;
if (!flag)
{
throw new ArgumentOutOfRangeException(valueName);
}
}
/// <summary>
/// 检查指定路径的文件夹必须存在,
/// 否则抛出<see cref="BeeDirectoryNotFoundException"/>异常
/// 或 <see cref="BeeNullException"/>异常。
/// </summary>
/// <param name="directory">需检查的路径。</param>
/// <param name="parameterName">参数名称。</param>
/// <exception cref="BeeNullException">当文件夹路径为null或空时</exception>
/// <exception cref="BeeDirectoryNotFoundException">当文件夹路径不存在时</exception>
public static string DirectoryExists(
string directory,
string parameterName)
{
if (string.IsNullOrWhiteSpace(directory))
{
throw new DirectoryNotFoundException(parameterName);
}
if (!Directory.Exists(directory))
{
throw new DirectoryNotFoundException(directory);
}
return directory;
}
/// <summary>
/// 检查指定路径的文件必须存在,否则抛出<see cref="FileNotFoundException"/>异常。
/// </summary>
/// <param name="filename"></param>
/// <param name="valueName">参数名称。</param>
/// <exception cref="BeeNullOrWhiteSpaceException">当文件路径为null或空时</exception>
/// <exception cref="BeeFileNotFoundException">当文件路径不存在时</exception>
public static string FileExists(
string filename,
string valueName)
{
if (string.IsNullOrWhiteSpace(filename))
{
throw new ArgumentNullException(valueName);
}
if (!File.Exists(filename))
{
throw new FileNotFoundException(filename);
}
return filename;
}
}
}

164
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Http/HttpClientHelper.cs

@ -1,164 +0,0 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
namespace CompanyName.ProjectName.Extensions.Customs.Http
{
/// <summary>
/// 基于IHttpClientFactory二次封装httpclient
/// </summary>
public static class HttpClientHelper
{
public static async Task<TResult> GetAsync<TResult>(this IHttpClientFactory _httpClientFactory, string clientName, string url, Dictionary<string, string> headers = null) where TResult : class
{
try
{
var client = _httpClientFactory.CreateClient(clientName);
if (headers != null && headers.Count > 0)
{
foreach (var item in headers)
{
client.DefaultRequestHeaders.Add(item.Key, item.Value);
}
}
client.DefaultRequestHeaders.CacheControl = CacheControlHeaderValue.Parse("no-cache");
//执行请求
var response = await client.GetAsync(url);
var result = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
if (result != null && !string.IsNullOrEmpty(result))
return JsonConvert.DeserializeObject<TResult>(result);
else
return default(TResult);
}
else
{
if (string.IsNullOrEmpty(result))
result = response.ReasonPhrase;
throw new Exception(result);
}
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
public static async Task<TResult> PostAsync<T, TResult>(this IHttpClientFactory _httpClientFactory, string clientName, string url, T obj, Dictionary<string, string> headers = null) where T : class where TResult : class
{
var data = typeof(T).Name.ToLower() == "string" ? obj.ToString() : JsonConvert.SerializeObject(obj);
var client = _httpClientFactory.CreateClient(clientName);
if (headers != null && headers.Count > 0)
{
foreach (var item in headers)
{
client.DefaultRequestHeaders.Add(item.Key, item.Value);
}
}
client.DefaultRequestHeaders.CacheControl = CacheControlHeaderValue.Parse("no-cache");
//post 参数
var content = new StringContent(data, Encoding.UTF8, "application/json");
//执行请求
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
if (result != null && !string.IsNullOrEmpty(result))
return JsonConvert.DeserializeObject<TResult>(result);
else
return default(TResult);
}
else
{
if (string.IsNullOrEmpty(result))
result = response.ReasonPhrase;
throw new Exception(result);
}
}
public static async Task<TResult> PutAsync<T, TResult>(this IHttpClientFactory _httpClientFactory, string clientName, string url, T obj, Dictionary<string, string> headers = null) where T : class where TResult : class
{
var data = typeof(T).Name.ToLower() == "string" ? obj.ToString() : JsonConvert.SerializeObject(obj);
var client = _httpClientFactory.CreateClient(clientName);
if (headers != null && headers.Count > 0)
{
foreach (var item in headers)
{
client.DefaultRequestHeaders.Add(item.Key, item.Value);
}
}
client.DefaultRequestHeaders.CacheControl = CacheControlHeaderValue.Parse("no-cache");
//post 参数
var content = new StringContent(data, Encoding.UTF8, "application/json");
//执行请求
var response = await client.PutAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
if (result != null && !string.IsNullOrEmpty(result))
return JsonConvert.DeserializeObject<TResult>(result);
else
return default(TResult);
}
else
{
if (string.IsNullOrEmpty(result))
result = response.ReasonPhrase;
throw new Exception(result);
}
}
public static async Task<TResult> DeleteAsync<TResult>(this IHttpClientFactory _httpClientFactory, string clientName, string url, Dictionary<string, string> headers = null) where TResult : class
{
try
{
var client = _httpClientFactory.CreateClient(clientName);
if (headers != null && headers.Count > 0)
{
foreach (var item in headers)
{
client.DefaultRequestHeaders.Add(item.Key, item.Value);
}
}
client.DefaultRequestHeaders.CacheControl = CacheControlHeaderValue.Parse("no-cache");
//执行请求
var response = await client.DeleteAsync(url);
var result = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
if (result != null && !string.IsNullOrEmpty(result))
return JsonConvert.DeserializeObject<TResult>(result);
else
return default(TResult);
}
else
{
if (string.IsNullOrEmpty(result))
result = response.ReasonPhrase;
throw new Exception(result);
}
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
}
}

13
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Customs/Http/HttpClientNameConsts.cs

@ -1,13 +0,0 @@
using System;
using System.Threading.Tasks;
namespace CompanyName.ProjectName.Extensions.Customs.Http
{
public static class HttpClientNameConsts
{
/// <summary>
/// 身份验证中心
/// </summary>
public static string Sts = "Sts";
}
}

77
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Collections/Generic/CollectionExtensions.cs

@ -1,77 +0,0 @@
using System.Linq;
using CompanyName.ProjectName.Extensions.Customs;
namespace System.Collections.Generic
{
/// <summary>
/// 集合扩展方法
/// </summary>
public static class CollectionExtensions
{
/// <summary>
/// 如果条件成立,添加项
/// </summary>
public static void AddIf<T>(this ICollection<T> collection, T value, bool flag)
{
Guard.NotNull(collection, nameof(collection));
if (flag)
{
collection.Add(value);
}
}
/// <summary>
/// 如果条件成立,添加项
/// </summary>
public static void AddIf<T>(this ICollection<T> collection, T value, Func<bool> func)
{
Guard.NotNull(collection, nameof(collection));
if (func())
{
collection.Add(value);
}
}
/// <summary>
/// 获取对象,不存在对使用委托添加对象
/// </summary>
public static T GetOrAdd<T>(this ICollection<T> collection, Func<T, bool> selector, Func<T> factory)
{
Guard.NotNull(collection, nameof(collection));
T item = collection.FirstOrDefault(selector);
if (item == null)
{
item = factory();
collection.Add(item);
}
return item;
}
/// <summary>
/// 判断集合是否为null或空集合
/// </summary>
public static bool IsNullOrEmpty<T>(this ICollection<T> collection)
{
return collection == null || collection.Count == 0;
}
/// <summary>
/// 交换两项的位置
/// </summary>
public static void Swap<T>(this List<T> list, int index1, int index2)
{
Guard.Between(index1, nameof(index1), 0, list.Count, true);
Guard.Between(index2, nameof(index2), 0, list.Count, true);
if (index1 == index2)
{
return;
}
T tmp = list[index1];
list[index1] = list[index2];
list[index2] = tmp;
}
}
}

78
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/DateTimeExtensions.cs

@ -1,78 +0,0 @@
using System.Globalization;
using System.Linq;
namespace System
{
/// <summary>
/// 时间扩展操作类
/// </summary>
public static class DateTimeExtensions
{
/// <summary>
/// 当前时间是否周末
/// </summary>
/// <param name="dateTime">时间点</param>
/// <returns></returns>
public static bool IsWeekend(this DateTime dateTime)
{
DayOfWeek[] weeks = { DayOfWeek.Saturday, DayOfWeek.Sunday };
return weeks.Contains(dateTime.DayOfWeek);
}
/// <summary>
/// 当前时间是否工作日
/// </summary>
/// <param name="dateTime">时间点</param>
/// <returns></returns>
public static bool IsWeekday(this DateTime dateTime)
{
DayOfWeek[] weeks = { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday };
return weeks.Contains(dateTime.DayOfWeek);
}
/// <summary>
/// 获取时间相对唯一字符串
/// </summary>
/// <param name="dateTime"></param>
/// <param name="millisecond">是否使用毫秒</param>
/// <returns></returns>
public static string ToUniqueString(this DateTime dateTime, bool millisecond = false)
{
var seconds = dateTime.Hour * 3600 + dateTime.Minute * 60 + dateTime.Second;
var value = $"{dateTime:yyyy}{dateTime.DayOfYear}{seconds}";
if (millisecond)
{
return value + dateTime.ToString("fff");
}
return value;
}
/// <summary>
/// 将时间转换为JS时间格式(Date.getTime())
/// </summary>
/// <param name="dateTime"></param>
/// <param name="millisecond">是否使用毫秒</param>
public static string ToJsGetTime(this DateTime dateTime, bool millisecond = true)
{
var utc = dateTime.ToUniversalTime();
var span = utc.Subtract(new DateTime(1970, 1, 1));
return Math.Round(millisecond ? span.TotalMilliseconds : span.TotalSeconds).ToString(CultureInfo.InvariantCulture);
}
/// <summary>
/// 将JS时间格式的数值转换为时间
/// </summary>
public static DateTime FromJsGetTime(this long jsTime)
{
var length = jsTime.ToString().Length;
if (!(length == 10 || length == 13))
{
throw new ArgumentOutOfRangeException(null, "JS时间数值的长度不正确,必须为10位或13位");
}
var start = new DateTime(1970, 1, 1);
var result = length == 10 ? start.AddSeconds(jsTime) : start.AddMilliseconds(jsTime);
return result.ToUniversalTime();
}
}
}

76
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/ExceptionExtensions.cs

@ -1,76 +0,0 @@
using System.Runtime.ExceptionServices;
using System.Text;
namespace System
{
/// <summary>
/// 异常操作扩展
/// </summary>
public static class ExceptionExtensions
{
/// <summary>
/// 格式化异常消息
/// </summary>
/// <param name="e">异常对象</param>
/// <param name="isHideStackTrace">是否隐藏异常规模信息</param>
/// <returns>格式化后的异常信息字符串</returns>
public static string FormatMessage(this Exception e, bool isHideStackTrace = false)
{
var sb = new StringBuilder();
var count = 0;
var appString = string.Empty;
while (e != null)
{
if (count > 0)
{
appString += " ";
}
sb.AppendLine($"{appString}异常消息:{e.Message}");
sb.AppendLine($"{appString}异常类型:{e.GetType().FullName}");
sb.AppendLine($"{appString}异常方法:{(e.TargetSite == null ? null : e.TargetSite.Name)}");
sb.AppendLine($"{appString}异常源:{e.Source}");
if (!isHideStackTrace && e.StackTrace != null)
{
sb.AppendLine($"{appString}异常堆栈:{e.StackTrace}");
}
if (e.InnerException != null)
{
sb.AppendLine($"{appString}内部异常:");
count++;
e = e.InnerException;
}
}
return sb.ToString();
}
/// <summary>
/// 将异常重新抛出
/// </summary>
public static void ReThrow(this Exception exception)
{
ExceptionDispatchInfo.Capture(exception).Throw();
}
/// <summary>
/// 如果条件成立,则抛出异常
/// </summary>
public static void ThrowIf(this Exception exception, bool isThrow)
{
if (isThrow)
{
throw exception;
}
}
/// <summary>
/// 如果条件成立,则抛出异常
/// </summary>
public static void ThrowIf(this Exception exception, Func<bool> isThrowFunc)
{
if (isThrowFunc())
{
throw exception;
}
}
}
}

26
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Reflection/AssemblyExtensions.cs

@ -1,26 +0,0 @@
using System.Diagnostics;
using CompanyName.ProjectName.Extensions.Customs;
namespace System.Reflection
{
/// <summary>
/// 程序集扩展操作类
/// </summary>
public static class AssemblyExtensions
{
/// <summary>
/// 获取程序集的产品版本
/// </summary>
public static string GetProductVersion(this Assembly assembly)
{
Guard.NotNull(assembly, nameof(assembly));
var info = FileVersionInfo.GetVersionInfo(assembly.Location);
var version = info.ProductVersion;
if (version.Contains("+"))
{
version = version.ReplaceRegex(@"\+(\w+)?", "");
}
return version;
}
}
}

24
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Reflection/PropertyInfoExtensions.cs

@ -1,24 +0,0 @@
using System.Linq;
namespace System.Reflection
{
/// <summary>
/// 属性<see cref="MethodInfo"/>的扩展辅助操作方法
/// </summary>
public static class PropertyInfoExtensions
{
/// <summary>
/// 返回当前属性信息是否为virtual
/// </summary>
public static bool IsVirtual(this PropertyInfo property)
{
var accessor = property.GetAccessors().FirstOrDefault();
if (accessor == null)
{
return false;
}
return accessor.IsVirtual && !accessor.IsFinal;
}
}
}

241
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/System/Text/StringBuilderExtensions.cs

@ -1,241 +0,0 @@
using CompanyName.ProjectName.Extensions.Customs;
using System.Linq;
namespace System.Text
{
/// <summary>
/// StringBuilder 扩展方法类
/// </summary>
public static class StringBuilderExtensions
{
/// <summary>
/// 去除<seealso cref="StringBuilder"/>开头的空格
/// </summary>
/// <param name="stringBuilder"></param>
/// <returns>返回修改后的StringBuilder,主要用于链式操作</returns>
public static StringBuilder TrimStart(this StringBuilder stringBuilder)
{
Guard.NotNull(stringBuilder, nameof(stringBuilder));
return stringBuilder.TrimStart(' ');
}
/// <summary>
/// 去除<seealso cref="StringBuilder"/>开头的指定<seealso cref="char"/>
/// </summary>
/// <param name="stringBuilder"></param>
/// <param name="c">要去掉的<seealso cref="char"/></param>
/// <returns></returns>
public static StringBuilder TrimStart(this StringBuilder stringBuilder, char c)
{
Guard.NotNull(stringBuilder, nameof(stringBuilder));
if (stringBuilder.Length == 0)
return stringBuilder;
while (c.Equals(stringBuilder[0]))
{
stringBuilder.Remove(0, 1);
}
return stringBuilder;
}
/// <summary>
/// 去除<seealso cref="StringBuilder"/>开头的指定字符数组
/// </summary>
/// <param name="stringBuilder"></param>
/// <param name="chars">要去掉的字符数组</param>
/// <returns></returns>
public static StringBuilder TrimStart(this StringBuilder stringBuilder, char[] chars)
{
Guard.NotNull(stringBuilder, nameof(stringBuilder));
Guard.NotNull(chars, nameof(chars));
return stringBuilder.TrimStart(new string(chars));
}
/// <summary>
/// 去除<see cref="StringBuilder"/>开头的指定的<seealso cref="string"/>
/// </summary>
/// <param name="stringBuilder"></param>
/// <param name="str">要去掉的<seealso cref="string"/></param>
/// <returns></returns>
public static StringBuilder TrimStart(this StringBuilder stringBuilder, string str)
{
Guard.NotNull(stringBuilder, nameof(stringBuilder));
if (string.IsNullOrEmpty(str)
|| stringBuilder.Length == 0
|| str.Length > stringBuilder.Length)
{
return stringBuilder;
}
while (stringBuilder.SubString(0, str.Length).Equals(str))
{
stringBuilder.Remove(0, str.Length);
if (str.Length > stringBuilder.Length)
{
break;
}
}
return stringBuilder;
}
/// <summary>
/// 去除StringBuilder结尾的空格
/// </summary>
/// <param name="stringBuilder">StringBuilder</param>
/// <returns>返回修改后的StringBuilder,主要用于链式操作</returns>
public static StringBuilder TrimEnd(this StringBuilder stringBuilder)
{
return stringBuilder.TrimEnd(' ');
}
/// <summary>
/// 去除<see cref="StringBuilder"/>结尾指定字符
/// </summary>
/// <param name="stringBuilder"></param>
/// <param name="c">要去掉的字符</param>
/// <returns></returns>
public static StringBuilder TrimEnd(this StringBuilder stringBuilder, char c)
{
Guard.NotNull(stringBuilder, nameof(stringBuilder));
if (stringBuilder.Length == 0)
{
return stringBuilder;
}
while (c.Equals(stringBuilder[stringBuilder.Length - 1]))
{
stringBuilder.Remove(stringBuilder.Length - 1, 1);
}
return stringBuilder;
}
/// <summary>
/// 去除<see cref="StringBuilder"/>结尾指定字符数组
/// </summary>
/// <param name="stringBuilder"></param>
/// <param name="chars">要去除的字符数组</param>
/// <returns></returns>
public static StringBuilder TrimEnd(this StringBuilder stringBuilder, char[] chars)
{
Guard.NotNull(stringBuilder, nameof(stringBuilder));
Guard.NotNull(chars, nameof(chars));
return stringBuilder.TrimEnd(new string(chars));
}
/// <summary>
/// 去除<see cref="StringBuilder"/>结尾指定字符串
/// </summary>
/// <param name="stringBuilder"></param>
/// <param name="str">要去除的字符串</param>
/// <returns></returns>
public static StringBuilder TrimEnd(this StringBuilder stringBuilder, string str)
{
Guard.NotNull(stringBuilder, nameof(stringBuilder));
if (string.IsNullOrEmpty(str)
|| stringBuilder.Length == 0
|| str.Length > stringBuilder.Length)
{
return stringBuilder;
}
while (stringBuilder.SubString(stringBuilder.Length - str.Length, str.Length).Equals(str))
{
stringBuilder.Remove(stringBuilder.Length - str.Length, str.Length);
if (stringBuilder.Length < str.Length)
{
break;
}
}
return stringBuilder;
}
/// <summary>
/// 去除StringBuilder两端的空格
/// </summary>
/// <param name="stringBuilder">StringBuilder</param>
/// <returns>返回修改后的StringBuilder,主要用于链式操作</returns>
public static StringBuilder Trim(this StringBuilder stringBuilder)
{
Guard.NotNull(stringBuilder, nameof(stringBuilder));
if (stringBuilder.Length == 0)
return stringBuilder;
return stringBuilder.TrimEnd().TrimStart();
}
/// <summary>
/// 返回<see cref="StringBuilder"/>从起始位置指定长度的字符串
/// </summary>
/// <param name="stringBuilder"></param>
/// <param name="start">起始位置</param>
/// <param name="length">长度</param>
/// <returns>字符串</returns>
/// <exception cref="IndexOutOfRangeException">超出字符串索引长度异常</exception>
public static string SubString(this StringBuilder stringBuilder, int start, int length)
{
Guard.NotNull(stringBuilder, nameof(stringBuilder));
if (start + length > stringBuilder.Length)
{
throw new IndexOutOfRangeException("超出字符串索引长度");
}
var cs = new char[length];
for (var i = 0; i < length; i++)
{
cs[i] = stringBuilder[start + i];
}
return new string(cs);
}
public static StringBuilder AppendLineWithControlChar(this StringBuilder stringBuilder, StringBuilder sb, string newLine)
{
stringBuilder = AppendWithControlChar(stringBuilder, sb.ToString());
return stringBuilder.Append(newLine);
}
public static StringBuilder AppendLineWithControlChar(this StringBuilder stringBuilder, string str, string newLine)
{
stringBuilder = AppendWithControlChar(stringBuilder, str);
return stringBuilder.Append(newLine);
}
public static StringBuilder AppendWithControlChar(this StringBuilder stringBuilder, StringBuilder sb)
{
return AppendWithControlChar(stringBuilder, sb.ToString());
}
public static StringBuilder AppendWithControlChar(this StringBuilder stringBuilder, string str)
{
if (str.Contains('\b'))
{
foreach (var c in str)
{
if (c == '\b')
{
stringBuilder.Length--;
}
else
{
stringBuilder.Append(c);
}
}
}
else
{
stringBuilder.Append(str);
}
return stringBuilder;
}
}
}

21
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Volo/Abp/BaseAbpModule.cs

@ -1,21 +0,0 @@
using Volo.Abp.Autofac;
using Volo.Abp.AutoMapper;
using Volo.Abp.Domain;
using Volo.Abp.Json;
using Volo.Abp.Modularity;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Validation;
namespace CompanyName.ProjectName.Extensions.Volo.Abp
{
[DependsOn(typeof(AbpAutofacModule))]
[DependsOn(typeof(AbpJsonModule))]
[DependsOn(typeof(AbpValidationModule))]
[DependsOn(typeof(AbpDddDomainModule))]
[DependsOn(typeof(AbpAutoMapperModule))]
[DependsOn(typeof(AbpObjectMappingModule))]
public class BaseAbpModule:AbpModule
{
}
}

35
aspnet-core/frameworks/Extensions/src/CompanyName.ProjectName.Extensions/Volo/Abp/BaseDomainService.cs

@ -1,35 +0,0 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Domain.Services;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
namespace CompanyName.ProjectName.Extensions.Volo.Abp
{
public abstract class BaseDomainService : DomainService
{
protected Type ObjectMapperContext { get; set; }
/// <summary>
/// 工作单元管理器
/// </summary>
protected IUnitOfWorkManager UnitOfWorkManager =>
LazyServiceProvider.LazyGetRequiredService<IUnitOfWorkManager>();
/// <summary>
/// 分布式事件总线
/// </summary>
protected IDistributedEventBus DistributedEventBus =>
LazyServiceProvider.LazyGetRequiredService<IDistributedEventBus>();
/// <summary>
/// 对象映射器
/// </summary>
protected IObjectMapper ObjectMapper => LazyServiceProvider.LazyGetService<IObjectMapper>(provider =>
ObjectMapperContext == null
? provider.GetRequiredService<IObjectMapper>()
: (IObjectMapper) provider.GetRequiredService(
typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext)));
}
}

9
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Dtos/IdInput.cs

@ -1,9 +0,0 @@
using System;
namespace Lion.Abp.Extension
{
public class IdInput
{
public Guid Id { get; set; }
}
}

27
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/BooleanExtensions.cs

@ -1,27 +0,0 @@
namespace System
{
/// <summary>
/// 布尔值<see cref="Boolean"/>类型的扩展辅助操作类
/// </summary>
public static class BooleanExtensions
{
/// <summary>
/// 把布尔值转换为小写字符串
/// </summary>
public static string ToLower(this bool value)
{
return value.ToString().ToLower();
}
/// <summary>
/// 如果条件成立,则抛出异常
/// </summary>
public static void TrueThrow(this bool flag, Exception exception)
{
if (flag)
{
throw exception;
}
}
}
}

199
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Collections/Generic/EnumerableExtensions.cs

@ -1,199 +0,0 @@
using System.Linq;
using System.Text;
using Lion.Abp.Extension;
namespace System.Collections.Generic
{
/// <summary>
/// Enumerable集合扩展方法
/// </summary>
public static class EnumerableExtensions
{
/// <summary>断言集合中的元素符合指定表达式,否则抛出异常。</summary>
/// <typeparam name="T">集合项类型</typeparam>
/// <param name="source">源集合</param>
/// <param name="predicate">元素判断表达式</param>
/// <param name="errorSelector">异常选择器</param>
/// <returns>筛选过的集合</returns>
public static IEnumerable<T> Assert<T>(this IEnumerable<T> source, Func<T, bool> predicate,
Func<T, Exception> errorSelector = null)
{
foreach (var item in source)
{
var success = predicate(item);
if (!success)
{
throw errorSelector?.Invoke(item) ??
new InvalidOperationException("集合中包含无效的元素。");
}
yield return item;
}
}
/// <summary>
/// 打乱一个集合的项顺序,将一个集合洗牌
/// </summary>
public static IEnumerable<TSource> Shuffle<TSource>(this IEnumerable<TSource> source)
{
// ReSharper disable PossibleMultipleEnumeration
Guard.NotNull(source, nameof(source));
return source.OrderBy(m => Guid.NewGuid());
// ReSharper restore PossibleMultipleEnumeration
}
/// <summary>
/// 将集合展开并分别转换成字符串,再以指定的分隔符衔接,拼成一个字符串返回。默认分隔符为逗号。
/// </summary>
/// <param name="collection">要处理的集合</param>
/// <param name="separator">分隔符,默认为逗号</param>
/// <returns>拼接后的字符串</returns>
public static string ExpandAndToString<T>(this IEnumerable<T> collection, string separator = ",")
{
return collection.ExpandAndToString(item => item?.ToString() ?? string.Empty, separator);
}
/// <summary>
/// 循环集合的每一项,调用委托生成字符串,返回合并后的字符串。默认分隔符为逗号
/// </summary>
/// <param name="collection">待处理的集合</param>
/// <param name="itemFormatFunc">单个集合项的转换委托</param>
/// <param name="separator">分隔符,默认为逗号</param>
/// <typeparam name="T">泛型类型</typeparam>
/// <returns></returns>
public static string ExpandAndToString<T>(
this IEnumerable<T> collection,
Func<T, string> itemFormatFunc,
string separator = ",")
{
collection = collection as IList<T> ?? collection.ToList();
Guard.NotNull(itemFormatFunc, nameof(itemFormatFunc));
if (!collection.Any())
{
return string.Empty;
}
var sb = new StringBuilder();
var i = 0;
var count = collection.Count();
foreach (var item in collection)
{
if (i == count - 1)
{
sb.Append(itemFormatFunc(item));
}
else
{
sb.Append(itemFormatFunc(item) + separator);
}
i++;
}
return sb.ToString();
}
/// <summary>
/// 集合是否为空
/// </summary>
/// <param name="collection"> 要处理的集合 </param>
/// <typeparam name="T"> 动态类型 </typeparam>
/// <returns> 为空返回True,不为空返回False </returns>
public static bool IsEmpty<T>(this IEnumerable<T> collection)
{
collection = collection as IList<T> ?? collection.ToList();
return !collection.Any();
}
/// <summary>
/// 根据第三方条件是否为真来决定是否执行指定条件的查询
/// </summary>
/// <param name="source"> 要查询的源 </param>
/// <param name="predicate"> 查询条件 </param>
/// <param name="condition"> 第三方条件 </param>
/// <typeparam name="T"> 动态类型 </typeparam>
/// <returns> 查询的结果 </returns>
public static IEnumerable<T> WhereIf<T>(this IEnumerable<T> source, Func<T, bool> predicate, bool condition)
{
Guard.NotNull(predicate, nameof(predicate));
source = source as IList<T> ?? source.ToList();
return condition ? source.Where(predicate) : source;
}
/// <summary>
/// 将字符串集合按指定前缀排序
/// </summary>
public static IEnumerable<T> OrderByPrefixes<T>(this IEnumerable<T> source, Func<T, string> keySelector,
params string[] prefixes)
{
var all = source.OrderBy(keySelector).ToList();
var result = new List<T>();
foreach (var prefix in prefixes)
{
var tmpList = all.Where(m => keySelector(m).StartsWith(prefix)).OrderBy(keySelector).ToList();
all = all.Except(tmpList).ToList();
result.AddRange(tmpList);
}
result.AddRange(all);
return result;
}
/// <summary>
/// 根据指定条件返回集合中不重复的元素
/// </summary>
/// <typeparam name="T">动态类型</typeparam>
/// <typeparam name="TKey">动态筛选条件类型</typeparam>
/// <param name="source">要操作的源</param>
/// <param name="keySelector">重复数据筛选条件</param>
/// <returns>不重复元素的集合</returns>
public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> source, Func<T, TKey> keySelector)
{
Guard.NotNull(keySelector, nameof(keySelector));
source = source as IList<T> ?? source.ToList();
return source.GroupBy(keySelector).Select(group => group.First());
}
#region Internal
internal static int? TryGetCollectionCount<T>(this IEnumerable<T> source)
{
switch (source)
{
case null:
throw new ArgumentNullException(nameof(source));
case ICollection<T> collection:
return collection.Count;
case IReadOnlyCollection<T> collection:
return collection.Count;
default:
return null;
}
}
static int CountUpTo<T>(this IEnumerable<T> source, int max)
{
if (source == null) throw new ArgumentNullException(nameof(source));
if (max < 0)
throw new ArgumentOutOfRangeException(nameof(max), "最大计数参数不能为负。");
var count = 0;
using (var e = source.GetEnumerator())
{
while (count < max && e.MoveNext())
{
count++;
}
}
return count;
}
#endregion
}
}

199
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/EnumExtensions.cs

@ -1,199 +0,0 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
namespace System
{
/// <summary>
/// 枚举<see cref="Enum"/>的扩展辅助操作方法
/// </summary>
public static class EnumExtensions
{
/// <summary>
/// 获取枚举项上的<see cref="DescriptionAttribute"/>特性的文字描述
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static string ToDescription(this Enum value)
{
var type = value.GetType();
var member = type.GetMember(value.ToString()).FirstOrDefault();
return member != null ? member.GetDescription() : value.ToString();
}
/// <summary>
/// 枚举遍历,返回枚举的名称、值、特性
/// </summary>
/// <param name="enumType">枚举类型</param>
/// <param name="action">回调函数</param>
private static void Each(this Type enumType, Action<string, string, string, object> action)
{
if (enumType.BaseType != typeof(Enum))
{
return;
}
var arr = Enum.GetValues(enumType);
foreach (var name in arr)
{
var currentEnum = Enum.Parse(enumType, name.ToString());
var value = Convert.ToInt32(Enum.Parse(enumType, name.ToString()));
var fieldInfo = enumType.GetField(name.ToString());
var description = "";
if (fieldInfo != null)
{
var attr = Attribute.GetCustomAttribute(fieldInfo,
typeof(DescriptionAttribute), false) as DescriptionAttribute;
if (attr != null)
{
description = attr.Description;
}
}
action(name.ToString(), value.ToString(), description, currentEnum);
}
}
/// <summary>
/// 根据枚举类型值返回枚举定义Description属性
/// </summary>
/// <param name="value"></param>
/// <param name="enumType"></param>
/// <returns></returns>
public static string ToEnumDescriptionString(this short value, Type enumType)
{
var nvc = new NameValueCollection();
var typeDescription = typeof(DescriptionAttribute);
var fields = enumType.GetFields();
foreach (var field in fields)
{
if (field.FieldType.IsEnum)
{
var strValue = ((int)enumType.InvokeMember(field.Name, BindingFlags.GetField, null, null, null)).ToString();
var arr = field.GetCustomAttributes(typeDescription, true);
string strText;
if (arr.Length > 0)
{
var aa = (DescriptionAttribute)arr[0];
strText = aa.Description;
}
else
{
strText = "";
}
nvc.Add(strValue, strText);
}
}
return nvc[value.ToString()];
}
/// <summary>
/// 将指定枚举转换为字典.
/// 枚举的Description为字典的Key,枚举的Value为字典的Value
/// </summary>
/// <typeparam name="T">指定枚举</typeparam>
private static List<KeyValuePair<string, string>> GetEnumTypeValueList<T>()
{
var items = new List<KeyValuePair<string, string>>();
typeof(T).Each((name, value, description, enumObj) =>
items.Add(new KeyValuePair<string, string>(description, value)));
return items;
}
/// <summary>
/// 将指定枚举转换为字典.
/// 枚举的Description为字典的Key,枚举为字典的Value
/// </summary>
/// <typeparam name="T">指定枚举</typeparam>
private static List<KeyValuePair<string, T>> GetEnumTypeList<T>()
{
var items = new List<KeyValuePair<string, T>>();
typeof(T).Each((name, value, description, enumObj) =>
items.Add(new KeyValuePair<string, T>(description, (T)enumObj)));
return items;
}
/// <summary>
/// 将指定枚举转换为字典.
/// 枚举的Description为字典的Key,枚举的Name为字典的Value
/// </summary>
/// <typeparam name="T">指定枚举</typeparam>
public static List<KeyValuePair<string, string>> GetEnumTypeDescriptionNameList<T>()
{
var items = new List<KeyValuePair<string, string>>();
typeof(T).Each((name, value, description, enumObj) => items.Add(new KeyValuePair<string, string>(description, name)));
return items;
}
/// <summary>
/// 将指定枚举转换为字典.
/// 枚举的Name为字典的Key,枚举的Description为字典的Value
/// </summary>
/// <typeparam name="T">指定枚举</typeparam>
public static List<KeyValuePair<string, string>> GetEnumTypeValueNameList<T>()
{
var items = new List<KeyValuePair<string, string>>();
typeof(T).Each((name, value, description, enumObj) => items.Add(new KeyValuePair<string, string>(name, description)));
return items;
}
/// <summary>
/// 将指定枚举转换为字典.
/// 枚举的Name为字典的Key,枚举的Description为字典的Value
/// </summary>
/// <typeparam name="TModel">指定枚举</typeparam>
public static List<KeyValuePair<string, string>> GetStringKeyValueList<TModel>() where TModel : Enum
{
var keyValuePairList = new List<KeyValuePair<string, string>>();
var values = Enum.GetValues(typeof(TModel));
var modelArray = new TModel[values.Length];
values.CopyTo(modelArray, 0);
foreach (TModel model in modelArray)
keyValuePairList.Add(new KeyValuePair<string, string>(model.ToString(), model.ToString()));
return keyValuePairList;
}
/// <summary>
/// 将指定枚举转换为字典.
/// 枚举的Description为字典的Key,枚举为字典的Value
/// </summary>
/// <typeparam name="TModel">指定枚举</typeparam>
public static List<KeyValuePair<string, TModel>> GetEnumKeyValueList<TModel>() where TModel : Enum
{
var enumTypeList = GetEnumTypeList<TModel>();
var keyValuePairList = new List<KeyValuePair<string, TModel>>();
foreach (KeyValuePair<string, TModel> keyValuePair in enumTypeList)
keyValuePairList.Add(new KeyValuePair<string, TModel>(keyValuePair.Key, keyValuePair.Value));
return keyValuePairList;
}
public static List<KeyValuePair<string, string>> GetEntityDoubleStringKeyValueList<TModel>()
{
var enumTypeList = GetEnumTypeValueList<TModel>();
var keyValuePairList = new List<KeyValuePair<string, string>>();
foreach (KeyValuePair<string, string> keyValuePair in enumTypeList)
keyValuePairList.Add(new KeyValuePair<string, string>(keyValuePair.Key, keyValuePair.Value));
return keyValuePairList;
}
public static List<KeyValuePair<string, int>> GetEntityStringIntKeyValueList<TModel>()
{
List<KeyValuePair<string, string>> enumTypeList = GetEnumTypeValueList<TModel>();
List<KeyValuePair<string, int>> keyValuePairList = new List<KeyValuePair<string, int>>();
foreach (KeyValuePair<string, string> keyValuePair in enumTypeList)
keyValuePairList.Add(new KeyValuePair<string, int>(keyValuePair.Key, Convert.ToInt32(keyValuePair.Value)));
return keyValuePairList;
}
public static List<KeyValuePair<int, int>> GetEntityDoubleIntKeyValueList<TModel>()
{
List<KeyValuePair<string, string>> enumTypeList = GetEnumTypeValueList<TModel>();
List<KeyValuePair<int, int>> keyValuePairList = new List<KeyValuePair<int, int>>();
foreach (KeyValuePair<string, string> keyValuePair in enumTypeList)
keyValuePairList.Add(new KeyValuePair<int, int>(Convert.ToInt32(keyValuePair.Key), Convert.ToInt32(keyValuePair.Value)));
return keyValuePairList;
}
}
}

28
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Linq/QueryableExtensions.cs

@ -1,28 +0,0 @@
using System.Linq.Expressions;
using Lion.Abp.Extension;
namespace System.Linq
{
/// <summary>
/// IQueryable集合扩展方法
/// </summary>
public static class QueryableExtensions
{
/// <summary>
/// 根据第三方条件是否为真来决定是否执行指定条件的查询
/// </summary>
/// <param name="source"> 要查询的源 </param>
/// <param name="predicate"> 查询条件 </param>
/// <param name="condition"> 第三方条件 </param>
/// <typeparam name="T"> 动态类型 </typeparam>
/// <returns> 查询的结果 </returns>
public static IQueryable<T> WhereIf<T>(this IQueryable<T> source, Expression<Func<T, bool>> predicate,
bool condition)
{
Guard.NotNull(source, nameof(source));
Guard.NotNull(predicate, nameof(predicate));
return condition ? source.Where(predicate) : source;
}
}
}

73
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Reflection/MemberInfoExtensions.cs

@ -1,73 +0,0 @@
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace System.Reflection
{
/// <summary>
/// 成员<see cref="MemberInfo"/>的扩展辅助操作方法
/// </summary>
public static class MemberInfoExtensions
{
/// <summary>
/// 获取成员元数据的Description特性描述信息。
/// </summary>
/// <param name="member">成员元数据对象。</param>
/// <param name="inherit">是否搜索成员的继承链以查找描述特性。</param>
/// <returns>返回Description特性描述信息,如不存在则返回成员的名称。</returns>
public static string GetDescription(this MemberInfo member, bool inherit = true)
{
var desc = member.GetAttribute<DescriptionAttribute>(inherit);
if (desc != null)
{
return desc.Description;
}
var displayName = member.GetAttribute<DisplayNameAttribute>(inherit);
if (displayName != null)
{
return displayName.DisplayName;
}
var display = member.GetAttribute<DisplayAttribute>(inherit);
return display != null ? display.Name : member.Name;
}
/// <summary>
/// 检查指定指定类型成员中是否存在指定的Attribute特性。
/// </summary>
/// <typeparam name="T">要检查的Attribute特性类型。</typeparam>
/// <param name="memberInfo">要检查的类型成员</param>
/// <param name="inherit">是否从继承中查找</param>
/// <returns>是否存在</returns>
public static bool HasAttribute<T>(this MemberInfo memberInfo, bool inherit = true) where T : Attribute
{
return memberInfo.IsDefined(typeof(T), inherit);
}
/// <summary>
/// 从类型成员获取指定Attribute特性
/// </summary>
/// <typeparam name="T">Attribute特性类型</typeparam>
/// <param name="memberInfo">类型类型成员</param>
/// <param name="inherit">是否从继承中查找</param>
/// <returns>存在返回第一个,不存在返回null</returns>
public static T GetAttribute<T>(this MemberInfo memberInfo, bool inherit = true) where T : Attribute
{
var attributes = memberInfo.GetCustomAttributes(typeof(T), inherit);
return attributes.FirstOrDefault() as T;
}
/// <summary>
/// 从类型成员获取指定Attribute特性。
/// </summary>
/// <typeparam name="T">Attribute特性类型。</typeparam>
/// <param name="memberInfo">类型类型成员。</param>
/// <param name="inherit">是否从继承中查找。</param>
/// <returns>返回所有指定Attribute特性的数组。</returns>
public static T[] GetAttributes<T>(this MemberInfo memberInfo, bool inherit = true) where T : Attribute
{
return memberInfo.GetCustomAttributes(typeof(T), inherit).Cast<T>().ToArray();
}
}
}

31
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/Reflection/MethodInfoExtensions.cs

@ -1,31 +0,0 @@
using System.Threading.Tasks;
namespace System.Reflection
{
/// <summary>
/// 方法<see cref="MethodInfo"/>的扩展辅助操作方法
/// </summary>
public static class MethodInfoExtensions
{
/// <summary>
/// 方法是否是异步
/// </summary>
public static bool IsAsync(this MethodInfo method)
{
return (method.ReturnType == typeof(Task<>)
|| method.ReturnType.IsGenericType
&& method.ReturnType.GetGenericTypeDefinition() == typeof(Task<>))
|| method.ReturnType == typeof(Task);
}
/// <summary>
/// 返回当前方法信息是否是重写方法
/// </summary>
/// <param name="method">要判断的方法信息</param>
/// <returns>是否是重写方法</returns>
public static bool IsOverridden(this MethodInfo method)
{
return method.GetBaseDefinition().DeclaringType != method.DeclaringType;
}
}
}

981
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/System/StringExtensions.cs

@ -1,981 +0,0 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using Lion.Abp.Extension;
using Newtonsoft.Json;
namespace System
{
/// <summary>
/// 字符串<see cref="string"/>类型的扩展辅助操作类
/// </summary>
[DebuggerStepThrough]
public static class StringExtensions
{
#region 正则表达式
/// <summary>
/// 指示所指定的正则表达式在指定的输入字符串中是否找到了匹配项
/// </summary>
/// <param name="value">要搜索匹配项的字符串</param>
/// <param name="pattern">要匹配的正则表达式模式</param>
/// <param name="isContains">是否包含,否则全匹配</param>
/// <returns>如果正则表达式找到匹配项,则为 true;否则,为 false</returns>
public static bool IsMatch(this string value, string pattern, bool isContains = true)
{
if (value == null)
{
return false;
}
return isContains
? Regex.IsMatch(value, pattern)
: Regex.Match(value, pattern).Success;
}
/// <summary>
/// 在指定的输入字符串中搜索指定的正则表达式的第一个匹配项
/// </summary>
/// <param name="value">要搜索匹配项的字符串</param>
/// <param name="pattern">要匹配的正则表达式模式</param>
/// <returns>一个对象,包含有关匹配项的信息</returns>
public static string Match(this string value, string pattern)
{
if (value == null)
{
return null;
}
return Regex.Match(value, pattern).Value;
}
/// <summary>
/// 在指定的输入字符串中匹配并替换符合指定正则表达式的子串
/// </summary>
public static string ReplaceRegex(this string value, string pattern, string replacement)
{
if (value == null)
{
return null;
}
return Regex.Replace(value, pattern, replacement);
}
/// <summary>
/// 在指定的输入字符串中搜索指定的正则表达式的所有匹配项的字符串集合
/// </summary>
/// <param name="value"> 要搜索匹配项的字符串 </param>
/// <param name="pattern"> 要匹配的正则表达式模式 </param>
/// <returns> 一个集合,包含有关匹配项的字符串值 </returns>
public static IEnumerable<string> Matches(this string value, string pattern)
{
if (value == null)
{
return new string[] { };
}
var matches = Regex.Matches(value, pattern);
return from Match match in matches select match.Value;
}
/// <summary>
/// 在指定的输入字符串中匹配第一个数字字符串
/// </summary>
public static string MatchFirstNumber(this string value)
{
var matches = Regex.Matches(value, @"\d+");
if (matches.Count == 0)
{
return string.Empty;
}
return matches[0].Value;
}
/// <summary>
/// 在指定字符串中匹配最后一个数字字符串
/// </summary>
public static string MatchLastNumber(this string value)
{
var matches = Regex.Matches(value, @"\d+");
if (matches.Count == 0)
{
return string.Empty;
}
return matches[matches.Count - 1].Value;
}
/// <summary>
/// 在指定字符串中匹配所有数字字符串
/// </summary>
public static IEnumerable<string> MatchNumbers(this string value)
{
return Matches(value, @"\d+");
}
/// <summary>
/// 检测指定字符串中是否包含数字
/// </summary>
public static bool IsMatchNumber(this string value)
{
return IsMatch(value, @"\d");
}
/// <summary>
/// 检测指定字符串是否全部为数字并且长度等于指定长度
/// </summary>
public static bool IsMatchNumber(this string value, int length)
{
var regex = new Regex(@"^\d{" + length + "}$");
return regex.IsMatch(value);
}
/// <summary>
/// 截取指定字符串之间的字符串
/// </summary>
/// <param name="source"></param>
/// <param name="startString">起始字符串</param>
/// <param name="endStrings">结束字符串,可多个</param>
/// <returns>返回的中间字符串</returns>
public static string Substring(this string source, string startString, params string[] endStrings)
{
if (source.IsMissing())
{
return string.Empty;
}
var startIndex = 0;
if (!string.IsNullOrEmpty(startString))
{
startIndex = source.IndexOf(startString, StringComparison.OrdinalIgnoreCase);
if (startIndex < 0)
{
throw new InvalidOperationException($"在源字符串中无法找到“{startString}”的子串位置");
}
startIndex += startString.Length;
}
var endIndex = source.Length;
endStrings = endStrings.OrderByDescending(m => m.Length).ToArray();
foreach (var endString in endStrings)
{
if (string.IsNullOrEmpty(endString))
{
endIndex = source.Length;
break;
}
endIndex = source.IndexOf(endString, startIndex, StringComparison.OrdinalIgnoreCase);
if (endIndex < 0 || endIndex < startIndex)
{
continue;
}
break;
}
if (endIndex < 0 || endIndex < startIndex)
{
throw new InvalidOperationException($"在源字符串中无法找到“{endStrings.ExpandAndToString()}”的子串位置");
}
var length = endIndex - startIndex;
return source.Substring(startIndex, length);
}
/// <summary>
/// 用正则表达式截取字符串
/// </summary>
public static string Substring2(this string source, string startString, string endString)
{
return source.Substring2(startString, endString, false);
}
/// <summary>
/// 用正则表达式截取字符串
/// </summary>
public static string Substring2(this string source, string startString, string endString, bool containsEmpty)
{
if (source.IsMissing())
{
return string.Empty;
}
var inner = containsEmpty ? "\\s\\S" : "\\S";
var result = source.Match($"(?<={startString})([{inner}]+?)(?={endString})");
return result.IsMissing() ? null : result;
}
/// <summary>
/// 是否电子邮件
/// </summary>
public static bool IsEmail(this string value)
{
const string pattern = @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$";
return value.IsMatch(pattern);
}
/// <summary>
/// 是否是IP地址
/// </summary>
public static bool IsIpAddress(this string value)
{
const string pattern =
@"^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))$";
return value.IsMatch(pattern);
}
/// <summary>
/// 是否是整数
/// </summary>
public static bool IsNumeric(this string value)
{
const string pattern = @"^\-?[0-9]+$";
return value.IsMatch(pattern);
}
/// <summary>
/// 是否是Unicode字符串
/// </summary>
public static bool IsUnicode(this string value)
{
const string pattern = @"^[\u4E00-\u9FA5\uE815-\uFA29]+$";
return value.IsMatch(pattern);
}
/// <summary>
/// 是否Url字符串
/// </summary>
public static bool IsUrl(this string value)
{
try
{
if (string.IsNullOrEmpty(value) || value.Contains(' '))
{
return false;
}
var uri = new Uri(value);
return true;
}
catch (Exception)
{
return false;
}
}
/// <summary>
/// 是否身份证号,验证如下3种情况:
/// 1.身份证号码为15位数字;
/// 2.身份证号码为18位数字;
/// 3.身份证号码为17位数字+1个字母
/// </summary>
public static bool IsIdentityCardId(this string value)
{
if (value.Length != 15 && value.Length != 18)
{
return false;
}
Regex regex;
string[] array;
if (value.Length == 15)
{
regex = new Regex(@"^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})_");
if (!regex.Match(value).Success)
{
return false;
}
array = regex.Split(value);
return DateTime.TryParse(string.Format("{0}-{1}-{2}", "19" + array[2], array[3], array[4]), out _);
}
regex = new Regex(@"^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9Xx])$");
if (!regex.Match(value).Success)
{
return false;
}
array = regex.Split(value);
if (!DateTime.TryParse(string.Format("{0}-{1}-{2}", array[2], array[3], array[4]), out _))
{
return false;
}
//校验最后一位
var chars = value.ToCharArray().Select(m => m.ToString()).ToArray();
int[] weights = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
var sum = 0;
for (var i = 0; i < 17; i++)
{
var num = int.Parse(chars[i]);
sum += num * weights[i];
}
var mod = sum % 11;
var vCode = "10X98765432"; // 检验码字符串
var last = vCode.ToCharArray().ElementAt(mod).ToString();
return chars.Last().ToUpper() == last;
}
/// <summary>
/// 是否手机号码
/// </summary>
/// <param name="value"></param>
/// <param name="isRestrict">是否按严格格式验证</param>
public static bool IsMobileNumber(this string value, bool isRestrict = false)
{
var pattern = isRestrict ? @"^[1][3-8]\d{9}$" : @"^[1]\d{10}$";
return value.IsMatch(pattern);
}
#endregion
#region 其他操作
/// <summary>
/// 判断指定的字符串不是 null、空。
/// </summary>
public static bool IsNotNullOrEmpty(this string str)
{
return !string.IsNullOrEmpty(str);
}
/// <summary>
/// 判断指定的字符串不是 null、空或者仅由空白字符组成
/// </summary>
public static bool IsNotNullOrWhiteSpace(this string str)
{
return !string.IsNullOrWhiteSpace(str);
}
/// <summary>
/// 指示指定的字符串是 null、空或者仅由空白字符组成
/// </summary>
public static bool IsMissing(this string value)
{
return string.IsNullOrWhiteSpace(value);
}
/// <summary>
/// 为指定格式的字符串填充相应对象来生成字符串
/// </summary>
/// <param name="format">字符串格式,占位符以{n}表示</param>
/// <param name="args">用于填充占位符的参数</param>
/// <returns>格式化后的字符串</returns>
public static string FormatWith(this string format, params object[] args)
{
Guard.NotNull(format, nameof(format));
return string.Format(CultureInfo.CurrentCulture, format, args);
}
/// <summary>
/// 将字符串反转
/// </summary>
/// <param name="value">要反转的字符串</param>
public static string ReverseString(this string value)
{
Guard.NotNull(value, nameof(value));
return new string(value.Reverse().ToArray());
}
/// <summary>
/// 单词复数变成单数形式
/// </summary>
/// <param name="word"></param>
/// <returns></returns>
public static string ToSingular(this string word)
{
var plural1 = new Regex("(?<keep>[^aeiou])ies$");
var plural2 = new Regex("(?<keep>[aeiou]y)s$");
var plural3 = new Regex("(?<keep>[sxzh])es$");
var plural4 = new Regex("(?<keep>[^sxzhyu])s$");
if (plural1.IsMatch(word))
{
return plural1.Replace(word, "${keep}y");
}
if (plural2.IsMatch(word))
{
return plural2.Replace(word, "${keep}");
}
if (plural3.IsMatch(word))
{
return plural3.Replace(word, "${keep}");
}
if (plural4.IsMatch(word))
{
return plural4.Replace(word, "${keep}");
}
return word;
}
/// <summary>
/// 单词单数变成复数形式
/// </summary>
/// <param name="word"></param>
/// <returns></returns>
public static string ToPlural(this string word)
{
var plural1 = new Regex("(?<keep>[^aeiou])y$");
var plural2 = new Regex("(?<keep>[aeiou]y)$");
var plural3 = new Regex("(?<keep>[sxzh])$");
var plural4 = new Regex("(?<keep>[^sxzhy])$");
if (plural1.IsMatch(word))
{
return plural1.Replace(word, "${keep}ies");
}
if (plural2.IsMatch(word))
{
return plural2.Replace(word, "${keep}s");
}
if (plural3.IsMatch(word))
{
return plural3.Replace(word, "${keep}es");
}
if (plural4.IsMatch(word))
{
return plural4.Replace(word, "${keep}s");
}
return word;
}
/// <summary>
/// 以指定字符串作为分隔符将指定字符串分隔成数组
/// </summary>
/// <param name="value">要分割的字符串</param>
/// <param name="strSplit">字符串类型的分隔符</param>
/// <param name="removeEmptyEntries">是否移除数据中元素为空字符串的项</param>
/// <returns>分割后的数据</returns>
public static string[] Split(this string value, string strSplit, bool removeEmptyEntries = false)
{
return value.Split(new[] {strSplit},
removeEmptyEntries ? StringSplitOptions.RemoveEmptyEntries : StringSplitOptions.None);
}
/// <summary>
/// 支持汉字的字符串长度,汉字长度计为2
/// </summary>
/// <param name="value">参数字符串</param>
/// <returns>当前字符串的长度,汉字长度为2</returns>
public static int TextLength(this string value)
{
var ascii = new ASCIIEncoding();
var tempLen = 0;
var bytes = ascii.GetBytes(value);
foreach (var b in bytes)
{
if (b == 63)
{
tempLen += 2;
}
else
{
tempLen += 1;
}
}
return tempLen;
}
/// <summary>
/// 将JSON字符串还原为对象
/// </summary>
/// <typeparam name="T">要转换的目标类型</typeparam>
/// <param name="json">JSON字符串</param>
/// <returns></returns>
public static T FromJsonString<T>(this string json)
{
Guard.NotNull(json, nameof(json));
return JsonConvert.DeserializeObject<T>(json);
}
/// <summary>
/// 将JSON字符串还原为对象
/// </summary>
/// <param name="json">JSON字符串 </param>
/// <param name="type">数据类型</param>
public static object FromJsonString(this string json, Type type)
{
return JsonConvert.DeserializeObject(json, type);
}
/// <summary>
/// 给URL添加查询参数
/// </summary>
/// <param name="url">URL字符串</param>
/// <param name="queries">要添加的参数,形如:"id=1,cid=2"</param>
/// <returns></returns>
public static string AddUrlQuery(this string url, params string[] queries)
{
foreach (var query in queries)
{
if (!url.Contains("?"))
{
url += "?";
}
else if (!url.EndsWith("&"))
{
url += "&";
}
url += query;
}
return url;
}
/// <summary>
/// 获取URL中指定参数的值,不存在返回空字符串
/// </summary>
public static string GetUrlQuery(this string url, string key)
{
var uri = new Uri(url);
var query = uri.Query;
if (string.IsNullOrEmpty(query))
{
return string.Empty;
}
query = query.TrimStart('?');
var dict = (from m in query.Split("&", true)
let strs = m.Split("=")
select new KeyValuePair<string, string>(strs[0], strs[1]))
.ToDictionary(m => m.Key, m => m.Value);
if (dict.ContainsKey(key))
{
return dict[key];
}
return string.Empty;
}
/// <summary>
/// 给URL添加 # 参数
/// </summary>
/// <param name="url">URL字符串</param>
/// <param name="query">要添加的参数</param>
/// <returns></returns>
public static string AddHashFragment(this string url, string query)
{
Guard.NotNull(url, nameof(url));
Guard.NotNull(query, nameof(query));
if (!url.Contains("#"))
{
url += "#";
}
return url + query;
}
/// <summary>
/// 将<see cref="byte"/>[]数组转换为Base64字符串
/// </summary>
public static string ToBase64String(this byte[] bytes)
{
Guard.NotNull(bytes, nameof(bytes));
return Convert.ToBase64String(bytes);
}
/// <summary>
/// 将字符串转换为Base64字符串,默认编码为<see cref="Encoding.UTF8"/>
/// </summary>
/// <param name="source">正常的字符串</param>
/// <param name="encoding">编码</param>
/// <returns>Base64字符串</returns>
public static string ToBase64String(this string source, Encoding encoding = null)
{
Guard.NotNull(source, nameof(source));
if (encoding == null) encoding = Encoding.UTF8;
return Convert.ToBase64String(encoding.GetBytes(source));
}
/// <summary>
/// 将Base64字符串转换为正常字符串,默认编码为<see cref="Encoding.UTF8"/>
/// </summary>
/// <param name="base64String">Base64字符串</param>
/// <param name="encoding">编码</param>
/// <returns>正常字符串</returns>
public static string FromBase64String(this string base64String, Encoding encoding = null)
{
Guard.NotNull(base64String, nameof(base64String));
if (encoding == null) encoding = Encoding.UTF8;
var bytes = Convert.FromBase64String(base64String);
return encoding.GetString(bytes);
}
/// <summary>
/// 将字符串进行UrlDecode解码
/// </summary>
/// <param name="source">待UrlDecode解码的字符串</param>
/// <returns>UrlDecode解码后的字符串</returns>
public static string ToUrlDecode(this string source)
{
Guard.NotNull(source, nameof(source));
return HttpUtility.UrlDecode(source);
}
/// <summary>
/// 将字符串进行UrlEncode编码
/// </summary>
/// <param name="source">待UrlEncode编码的字符串</param>
/// <returns>UrlEncode编码后的字符串</returns>
public static string ToUrlEncode(this string source)
{
Guard.NotNull(source, nameof(source));
return HttpUtility.UrlEncode(source);
}
/// <summary>
/// 将字符串进行HtmlDecode解码
/// </summary>
/// <param name="source">待HtmlDecode解码的字符串</param>
/// <returns>HtmlDecode解码后的字符串</returns>
public static string ToHtmlDecode(this string source)
{
Guard.NotNull(source, nameof(source));
return HttpUtility.HtmlDecode(source);
}
/// <summary>
/// 将字符串进行HtmlEncode编码
/// </summary>
/// <param name="source">待HtmlEncode编码的字符串</param>
/// <returns>HtmlEncode编码后的字符串</returns>
public static string ToHtmlEncode(this string source)
{
Guard.NotNull(source, nameof(source));
return HttpUtility.HtmlEncode(source);
}
/// <summary>
/// 将字符串转换为十六进制字符串,默认编码为<see cref="Encoding.UTF8"/>
/// </summary>
public static string ToHexString(this string source, Encoding encoding = null)
{
Guard.NotNull(source, nameof(source));
if (encoding == null) encoding = Encoding.UTF8;
byte[] bytes = encoding.GetBytes(source);
return bytes.ToHexString();
}
/// <summary>
/// 将十六进制字符串转换为常规字符串,默认编码为<see cref="Encoding.UTF8"/>
/// </summary>
public static string FromHexString(this string hexString, Encoding encoding = null)
{
Guard.NotNull(hexString, nameof(hexString));
if (encoding == null) encoding = Encoding.UTF8;
var bytes = hexString.ToHexBytes();
return encoding.GetString(bytes);
}
/// <summary>
/// 将byte[]编码为十六进制字符串
/// </summary>
/// <param name="bytes">byte[]数组</param>
/// <returns>十六进制字符串</returns>
public static string ToHexString(this byte[] bytes)
{
Guard.NotNull(bytes, nameof(bytes));
return bytes.Aggregate(string.Empty, (current, t) => current + t.ToString("X2"));
}
/// <summary>
/// 将十六进制字符串转换为byte[]
/// </summary>
/// <param name="hexString">十六进制字符串</param>
/// <returns>byte[]数组</returns>
public static byte[] ToHexBytes(this string hexString)
{
hexString = hexString ?? "";
hexString = hexString.Replace(" ", "");
byte[] bytes = new byte[hexString.Length / 2];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
}
return bytes;
}
/// <summary>
/// 将字符串进行Unicode编码,变成形如“\u7f16\u7801”的形式
/// </summary>
/// <param name="source">要进行编号的字符串</param>
public static string ToUnicodeString(this string source)
{
Guard.NotNull(source, nameof(source));
var regex = new Regex(@"[^\u0000-\u00ff]");
return regex.Replace(source, m => string.Format(@"\u{0:x4}", (short) m.Value[0]));
}
/// <summary>
/// 将形如“\u7f16\u7801”的Unicode字符串解码
/// </summary>
public static string FromUnicodeString(this string source)
{
var regex = new Regex(@"\\u([0-9a-fA-F]{4})", RegexOptions.Compiled);
return regex.Replace(source,
m =>
{
short s;
if (short.TryParse(m.Groups[1].Value, NumberStyles.HexNumber, CultureInfo.InstalledUICulture,
out s))
{
return "" + (char) s;
}
return m.Value;
});
}
/// <summary>
/// 将驼峰字符串按单词拆分并转换成小写,再以特定字符串分隔
/// </summary>
/// <param name="str">待转换的字符串</param>
/// <param name="splitStr">分隔符字符</param>
/// <returns></returns>
public static string UpperToLowerAndSplit(this string str, string splitStr = "-")
{
if (string.IsNullOrEmpty(str))
{
return str;
}
List<string> words = new List<string>();
while (str.Length > 0)
{
char c = str.FirstOrDefault(char.IsUpper);
if (c == default(char))
{
words.Add(str);
break;
}
int upperIndex = str.IndexOf(c);
if (upperIndex < 0) //admin
{
return str;
}
if (upperIndex > 0) //adminAdmin
{
string first = str.Substring(0, upperIndex);
words.Add(first);
str = str.Substring(upperIndex, str.Length - upperIndex);
continue;
}
str = char.ToLower(str[0]) + str.Substring(1, str.Length - 1);
}
return words.ExpandAndToString(splitStr);
}
/// <summary>
/// 将驼峰字符串的第一个字符小写
/// </summary>
public static string LowerFirstChar(this string str)
{
if (string.IsNullOrEmpty(str) || !char.IsUpper(str[0]))
{
return str;
}
if (str.Length == 1)
{
return char.ToLower(str[0]).ToString();
}
return char.ToLower(str[0]) + str.Substring(1, str.Length - 1);
}
/// <summary>
/// 将小驼峰字符串的第一个字符大写
/// </summary>
public static string UpperFirstChar(this string str)
{
if (string.IsNullOrEmpty(str) || !char.IsLower(str[0]))
{
return str;
}
if (str.Length == 1)
{
return char.ToUpper(str[0]).ToString();
}
return char.ToUpper(str[0]) + str.Substring(1, str.Length - 1);
}
/// <summary>
/// 计算当前字符串与指定字符串的编辑距离(相似度)
/// </summary>
/// <param name="source">源字符串</param>
/// <param name="target">目标字符串</param>
/// <param name="similarity">输出相似度</param>
/// <param name="ignoreCase">是否忽略大小写</param>
/// <returns>编辑距离</returns>
public static int LevenshteinDistance(this string source, string target, out double similarity,
bool ignoreCase = false)
{
if (string.IsNullOrEmpty(source))
{
if (string.IsNullOrEmpty(target))
{
similarity = 1;
return 0;
}
similarity = 0;
return target.Length;
}
if (string.IsNullOrEmpty(target))
{
similarity = 0;
return source.Length;
}
string from, to;
if (ignoreCase)
{
from = source;
to = target;
}
else
{
from = source.ToLower();
to = source.ToLower();
}
int m = from.Length, n = to.Length;
int[,] mn = new int[m + 1, n + 1];
for (int i = 0; i <= m; i++)
{
mn[i, 0] = i;
}
for (int j = 1; j <= n; j++)
{
mn[0, j] = j;
}
for (int i = 1; i <= m; i++)
{
char c = from[i - 1];
for (int j = 1; j <= n; j++)
{
if (c == to[j - 1])
{
mn[i, j] = mn[i - 1, j - 1];
}
else
{
mn[i, j] = Math.Min(mn[i - 1, j - 1], Math.Min(mn[i - 1, j], mn[i, j - 1])) + 1;
}
}
}
int maxLength = Math.Max(m, n);
similarity = (double) (maxLength - mn[m, n]) / maxLength;
return mn[m, n];
}
/// <summary>
/// 计算两个字符串的相似度,应用公式:相似度=kq*q/(kq*q+kr*r+ks*s)(kq>0,kr>=0,ka>=0)
/// 其中,q是字符串1和字符串2中都存在的单词的总数,s是字符串1中存在,字符串2中不存在的单词总数,r是字符串2中存在,字符串1中不存在的单词总数. kq,kr和ka分别是q,r,s的权重,根据实际的计算情况,我们设kq=2,kr=ks=1.
/// </summary>
/// <param name="source">源字符串</param>
/// <param name="target">目标字符串</param>
/// <param name="ignoreCase">是否忽略大小写</param>
/// <returns>字符串相似度</returns>
public static double GetSimilarityWith(this string source, string target, bool ignoreCase = false)
{
if (string.IsNullOrEmpty(source) && string.IsNullOrEmpty(target))
{
return 1;
}
if (string.IsNullOrEmpty(source) || string.IsNullOrEmpty(target))
{
return 0;
}
const double kq = 2, kr = 1, ks = 1;
char[] sourceChars = source.ToCharArray(), targetChars = target.ToCharArray();
//获取交集数量
int q = sourceChars.Intersect(targetChars).Count(), s = sourceChars.Length - q, r = targetChars.Length - q;
return kq * q / (kq * q + kr * r + ks * s);
}
/// <summary>
/// 标准化Path字符串,将 \\ 转换为 /
/// </summary>
/// <param name="path">Path字符串</param>
public static string NormalizePath(this string path)
{
return path.Replace('\\', '/');
}
/// <summary>
/// (Pascal) 命名法 的字符串 改为 短横线分隔式命名
/// 例如UserName => user-name
/// </summary>
public static string PascalToKebabCase(this string value)
{
if (string.IsNullOrEmpty(value))
{
return value;
}
return Regex.Replace(
value,
"(?<!^)([A-Z][a-z]|(?<=[a-z])[A-Z])",
"-$1",
RegexOptions.Compiled)
.Trim()
.ToLower();
}
#endregion
}
}

2
aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Application.Contracts/DataDictionaries/Dtos/PagingDataDictionaryDetailInput.cs

@ -1,5 +1,5 @@
using System;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries.Dtos

2
aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Application.Contracts/DataDictionaries/Dtos/PagingDataDictionaryInput.cs

@ -1,4 +1,4 @@
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries.Dtos
{

3
aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Domain.Shared/CompanyName.ProjectName.DataDictionaryManagement.Domain.Shared.csproj

@ -13,7 +13,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="5.0.*" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftVersion)" />
<ProjectReference Include="..\..\..\..\frameworks\Extensions\src\CompanyName.ProjectName.Extension\CompanyName.ProjectName.Extension.csproj" />
<ProjectReference Include="..\..\..\..\frameworks\Extensions\src\Lion.Abp.Extension\Lion.Abp.Extension.csproj" />
</ItemGroup>

2
aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Domain/DataDictionaries/Aggregates/DataDictionary.cs

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries.Exceptions;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;

2
aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Domain/DataDictionaries/Aggregates/DataDictionaryDetail.cs

@ -1,5 +1,5 @@
using System;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs;
using Volo.Abp.Domain.Entities.Auditing;
namespace CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries.Aggregates

6
aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.Domain/DataDictionaries/DataDictionaryManager.cs

@ -25,7 +25,6 @@ namespace CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries
public async Task<DataDictionaryDto> FindByIdAsync(
Guid id,
bool includeDetails = true,
CancellationToken cancellationToken = default)
{
var cacheKey = DataDictionaryDto.CalculateCacheKey(id, null);
@ -33,7 +32,7 @@ namespace CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries
async () =>
{
var entity =
await _dataDictionaryRepository.FindByIdAsync(id, includeDetails,
await _dataDictionaryRepository.FindByIdAsync(id, true,
cancellationToken);
return ObjectMapper.Map<DataDictionary, DataDictionaryDto>(entity);
}, token: cancellationToken);
@ -41,7 +40,6 @@ namespace CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries
public async Task<DataDictionaryDto> FindByCodeAsync(
string code,
bool includeDetails = true,
CancellationToken cancellationToken = default)
{
var cacheKey = DataDictionaryDto.CalculateCacheKey(null, code);
@ -49,7 +47,7 @@ namespace CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries
async () =>
{
var entity =
await _dataDictionaryRepository.FindByCodeAsync(code, includeDetails,
await _dataDictionaryRepository.FindByCodeAsync(code, true,
cancellationToken);
return ObjectMapper.Map<DataDictionary, DataDictionaryDto>(entity);
}, token: cancellationToken);

2
aspnet-core/modules/DataDictionaryManagement/src/CompanyName.ProjectName.DataDictionaryManagement.EntityFrameworkCore/EntityFrameworkCore/DataDictionaries/EfCoreDataDictionaryRepository.cs

@ -1,11 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Threading;
using System.Threading.Tasks;
using CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries.Aggregates;
using CompanyName.ProjectName.DataDictionaryManagement.EntityFrameworkCore;
using CompanyName.ProjectName.Extension.System;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;

5
aspnet-core/modules/DataDictionaryManagement/test/CompanyName.ProjectName.DataDictionaryManagement.Domain.Tests/DataDictionaries/DataDictionaryManager_Tests.cs

@ -20,8 +20,7 @@ namespace CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries
public async Task Test_FindByIdAsync_Ok()
{
var entity =
await _dataDictionaryManager.FindByIdAsync(DataDictionaryManagementConsts.SeedDataDictionaryId,
true);
await _dataDictionaryManager.FindByIdAsync(DataDictionaryManagementConsts.SeedDataDictionaryId);
entity.DisplayText.ShouldBe("性别");
entity.Details.Count.ShouldBe(3);
entity.Details.FirstOrDefault(e => e.Code == "None").IsEnabled.ShouldBeFalse();
@ -32,7 +31,7 @@ namespace CompanyName.ProjectName.DataDictionaryManagement.DataDictionaries
[Fact]
public async Task Test_FindByCodeAsync_Ok()
{
var entity = await _dataDictionaryManager.FindByCodeAsync("Gender", true);
var entity = await _dataDictionaryManager.FindByCodeAsync("Gender");
entity.DisplayText.ShouldBe("性别");
entity.Details.Count.ShouldBe(3);

3
aspnet-core/modules/NotificationManagement/src/CompanyName.ProjectName.NotificationManagement.Application.Contracts/Notifications/Dtos/PagingNotificationListInput.cs

@ -1,4 +1,5 @@
using Lion.Abp.Extension;

using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.NotificationManagement.Notifications.Dtos
{

6
aspnet-core/modules/NotificationManagement/src/CompanyName.ProjectName.NotificationManagement.Domain.Shared/CompanyName.ProjectName.NotificationManagement.Domain.Shared.csproj

@ -14,7 +14,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="5.0.*"/>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftVersion)" />
</ItemGroup>
<ItemGroup>
@ -23,8 +23,10 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\frameworks\Extensions\src\Lion.Abp.Extension\Lion.Abp.Extension.csproj"/>
<ProjectReference Include="..\..\..\..\frameworks\Extensions\src\CompanyName.ProjectName.Extension\CompanyName.ProjectName.Extension.csproj" />
</ItemGroup>
</Project>

9
aspnet-core/modules/NotificationManagement/src/CompanyName.ProjectName.NotificationManagement.Domain/Notifications/Aggregates/Notification.cs

@ -2,9 +2,10 @@ using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using CompanyName.ProjectName.Extension.Customs;
using Volo.Abp.Domain.Entities.Auditing;
using CompanyName.ProjectName.NotificationManagement.Notifications.DistributedEvents;
using Lion.Abp.Extension;
namespace CompanyName.ProjectName.NotificationManagement.Notifications
{
@ -109,7 +110,8 @@ namespace CompanyName.ProjectName.NotificationManagement.Notifications
public void AddNotificationSubscription(Guid notificationSubscriptionId, Guid receiveId)
{
if (NotificationSubscriptions.Any(e => e.ReceiveId == receiveId)) return;
NotificationSubscriptions.Add(new NotificationSubscription(notificationSubscriptionId, receiveId));
NotificationSubscriptions.Add(
new NotificationSubscription(notificationSubscriptionId, receiveId));
}
/// <summary>
@ -117,7 +119,8 @@ namespace CompanyName.ProjectName.NotificationManagement.Notifications
/// </summary>
/// <param name="notificationSubscriptionId"></param>
/// <param name="receiveId"></param>
public void AddBroadCastNotificationSubscription(Guid notificationSubscriptionId, Guid receiveId)
public void AddBroadCastNotificationSubscription(Guid notificationSubscriptionId,
Guid receiveId)
{
if (NotificationSubscriptions.Any(e => e.ReceiveId == receiveId))
{

3
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/CompanyName.ProjectName.HttpApi.Host.csproj

@ -35,7 +35,8 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\frameworks\CAP\src\Lion.Abp.Cap\Lion.Abp.Cap.csproj" />
<ProjectReference Include="..\..\..\frameworks\CAP\src\CompanyName.ProjectName.CAP\CompanyName.ProjectName.CAP.csproj" />
<ProjectReference Include="..\..\..\shared\CompanyName.ProjectName.Shared.Hosting.Microservices\CompanyName.ProjectName.Shared.Hosting.Microservices.csproj" />
<ProjectReference Include="..\..\src\CompanyName.ProjectName.Application\CompanyName.ProjectName.Application.csproj" />
<ProjectReference Include="..\..\src\CompanyName.ProjectName.EntityFrameworkCore\CompanyName.ProjectName.EntityFrameworkCore.csproj" />

4
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs

@ -29,10 +29,10 @@ using Volo.Abp.Caching.StackExchangeRedis;
using Volo.Abp.Modularity;
using Volo.Abp.Swashbuckle;
using System.Threading.Tasks;
using CompanyName.ProjectName.CAP;
using CompanyName.ProjectName.Extensions;
using CompanyName.ProjectName.MultiTenancy;
using CompanyName.ProjectName.Swaggers;
using Lion.Abp.Cap;
using Savorboard.CAP.InMemoryMessageQueue;
using Serilog;
using Swashbuckle.AspNetCore.SwaggerUI;
@ -54,7 +54,7 @@ namespace CompanyName.ProjectName
typeof(AbpAccountWebModule),
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
typeof(AbpBackgroundJobsHangfireModule),
typeof(LionAbpCapModule),
typeof(ProjectNameAbpCapModule),
typeof(AbpAspNetCoreMultiTenancyModule),
typeof(SharedHostingMicroserviceModule),
typeof(AbpAspNetCoreMvcUiBasicThemeModule)

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/AuditLogs/PagingAuditLogListInput.cs

@ -1,6 +1,6 @@
using System;
using System.Net;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.AuditLogs

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/ElasticSearchs/ICompanyNameProjectNameLogAppService.cs

@ -1,6 +1,6 @@
using System.Threading.Tasks;
using CompanyName.ProjectName.ElasticsearchRepository.Dto;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Services;
namespace CompanyName.ProjectName.ElasticSearchs

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/ApiResources/Dtos/PagingApiRseourceListInput.cs

@ -1,4 +1,4 @@
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.IdentityServers.Dtos
{

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/ApiResources/IApiResourceAppService.cs

@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServers.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/ApiScopes/Dtos/PagingApiScopeListInput.cs

@ -1,4 +1,4 @@
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.IdentityServers.ApiScopes.Dtos
{

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/ApiScopes/IApiScopeAppService.cs

@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServers.ApiScopes.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/Clients/Dtos/PagingClientListInput.cs

@ -1,4 +1,4 @@
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.IdentityServers.Clients
{

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/Clients/IIdentityServerClientAppService.cs

@ -1,5 +1,5 @@
using System.Threading.Tasks;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/IdentityResources/Dtos/PagingIdentityResourceListInput.cs

@ -1,4 +1,4 @@
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.IdentityServers.IdentityResources.Dtos
{

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/IdentityServers/IdentityResources/IIdentityResourceAppService.cs

@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServers.IdentityResources.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Roles/Dtos/PagingRoleListInput.cs

@ -1,4 +1,4 @@
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.Roles.Dtos
{

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Roles/IRoleAppService.cs

@ -1,7 +1,7 @@
using System;
using System.Threading.Tasks;
using CompanyName.ProjectName.Roles.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Identity;

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Tenants/Dtos/PagingTenantInput.cs

@ -1,4 +1,4 @@
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.Tenants.Dtos
{

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Users/Dtos/PagingUserListInput.cs

@ -1,4 +1,4 @@
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.Users.Dtos
{

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Users/IUserAppService.cs

@ -1,7 +1,7 @@
using System;
using System.Threading.Tasks;
using CompanyName.ProjectName.Users.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Identity;

2
aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/CompanyNameProjectNameLogAppService.cs

@ -1,7 +1,7 @@
using System.Threading.Tasks;
using CompanyName.ProjectName.ElasticsearchRepository;
using CompanyName.ProjectName.ElasticsearchRepository.Dto;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.ElasticSearchs
{

2
aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/ApiResources/ApiResourceAppService.cs

@ -2,7 +2,7 @@
using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServer;
using CompanyName.ProjectName.IdentityServers.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.IdentityServer.ApiResources;

2
aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/ApiScopes/ApiScopeAppService.cs

@ -4,7 +4,7 @@ using System.Linq;
using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServer;
using CompanyName.ProjectName.IdentityServers.ApiScopes.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.IdentityServer.ApiScopes;

2
aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/Clients/IdentityServerClientAppService.cs

@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServer;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.IdentityServer.Clients;

2
aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/IdentityResources/IdentityResourceAppService.cs

@ -3,7 +3,7 @@ using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServer;
using CompanyName.ProjectName.IdentityServers.IdentityResources;
using CompanyName.ProjectName.IdentityServers.IdentityResources.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.IdentityServer.IdentityResources;

2
aspnet-core/services/src/CompanyName.ProjectName.Application/Roles/RoleAppService.cs

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CompanyName.ProjectName.Roles.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Identity;

10
aspnet-core/services/src/CompanyName.ProjectName.Application/Users/AccountAppService.cs

@ -9,10 +9,12 @@ using System.Threading.Tasks;
using CompanyName.ProjectName.ConfigurationOptions;
using CompanyName.ProjectName.Users.Dtos;
using IdentityModel;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using CompanyName.ProjectName.Extension.Customs.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.Tokens;
using Volo.Abp;
using Volo.Abp.Identity;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Security.Claims;
@ -51,12 +53,12 @@ namespace CompanyName.ProjectName.Users
var result = await _signInManager.PasswordSignInAsync(input.Name, input.Password, false, true);
if (result.IsLockedOut)
{
throw new Exception("当前用户已被锁定");
throw new UserFriendlyException("当前用户已被锁定");
}
if (!result.Succeeded)
{
throw new Exception("用户名或者密码错误");
throw new UserFriendlyException("用户名或者密码错误");
}
var s = _currentTenant.Id;
@ -65,7 +67,7 @@ namespace CompanyName.ProjectName.Users
}
catch (Exception ex)
{
throw new Exception(ex.Message);
throw new UserFriendlyException(ex.Message);
}
}

2
aspnet-core/services/src/CompanyName.ProjectName.Application/Users/UserAppService.cs

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CompanyName.ProjectName.Users.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Microsoft.AspNetCore.Identity;
using Volo.Abp;
using Volo.Abp.Application.Dtos;

4
aspnet-core/services/src/CompanyName.ProjectName.Domain.Shared/CompanyName.ProjectName.Domain.Shared.csproj

@ -29,9 +29,11 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\frameworks\Extensions\src\Lion.Abp.Extension\Lion.Abp.Extension.csproj" />
<ProjectReference Include="..\..\..\frameworks\Extensions\src\CompanyName.ProjectName.Extension\CompanyName.ProjectName.Extension.csproj" />
</ItemGroup>
</Project>

3
aspnet-core/services/src/CompanyName.ProjectName.Domain/IdentityServer/IdenityServerApiResourceManager.cs

@ -3,9 +3,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServers.Dtos;
using CompanyName.ProjectName.Extension.System;
using Volo.Abp;
using Volo.Abp.Domain.Services;
using Volo.Abp.IdentityServer.ApiResources;
using IdentityModel;

2
aspnet-core/services/src/CompanyName.ProjectName.Domain/IdentityServer/IdenityServerClientManager.cs

@ -3,9 +3,9 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using CompanyName.ProjectName.Extension.System;
using IdentityModel;
using Volo.Abp;
using Volo.Abp.Domain.Services;
using Volo.Abp.IdentityServer.Clients;
namespace CompanyName.ProjectName.IdentityServer

2
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/CompanyNameProjectNameLogRepository.cs

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CompanyName.ProjectName.ElasticsearchRepository.Dto;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Microsoft.Extensions.Configuration;
using Nest;

2
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/Dto/PagingElasticSearchLogInput.cs

@ -1,5 +1,5 @@
using System;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.ElasticsearchRepository.Dto
{

2
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/ICompanyNameProjectNameLogRepository.cs

@ -1,6 +1,6 @@
using System.Threading.Tasks;
using CompanyName.ProjectName.ElasticsearchRepository.Dto;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Volo.Abp.DependencyInjection;
namespace CompanyName.ProjectName.ElasticsearchRepository

3
aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/IdentityServers/ApiResourceController.cs

@ -1,9 +1,10 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using CompanyName.ProjectName.IdentityServers;
using CompanyName.ProjectName.IdentityServers.Dtos;
using CompanyName.ProjectName.Permissions;
using Lion.Abp.Extension;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;

2
aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/IdentityServers/ApiScopeController.cs

@ -1,9 +1,9 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using CompanyName.ProjectName.IdentityServers.ApiScopes;
using CompanyName.ProjectName.IdentityServers.ApiScopes.Dtos;
using CompanyName.ProjectName.Permissions;
using Lion.Abp.Extension;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;

2
aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/IdentityServers/ClientController.cs

@ -1,7 +1,7 @@
using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServers.Clients;
using CompanyName.ProjectName.Permissions;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;

2
aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/IdentityServers/IdentityResourceController.cs

@ -3,7 +3,7 @@ using System.Threading.Tasks;
using CompanyName.ProjectName.IdentityServers.IdentityResources;
using CompanyName.ProjectName.IdentityServers.IdentityResources.Dtos;
using CompanyName.ProjectName.Permissions;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;

2
aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/Systems/CompanyNameProjectNameLogController.cs

@ -2,7 +2,7 @@
using CompanyName.ProjectName.ElasticsearchRepository.Dto;
using CompanyName.ProjectName.ElasticSearchs;
using CompanyName.ProjectName.Permissions;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;

2
aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/Systems/RoleController.cs

@ -2,7 +2,7 @@
using System.Threading.Tasks;
using CompanyName.ProjectName.Roles;
using CompanyName.ProjectName.Roles.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;

2
aspnet-core/services/src/CompanyName.ProjectName.HttpApi/Controllers/Systems/UserController.cs

@ -3,7 +3,7 @@ using System.Threading.Tasks;
using CompanyName.ProjectName.Permissions;
using CompanyName.ProjectName.Users;
using CompanyName.ProjectName.Users.Dtos;
using Lion.Abp.Extension;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;

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

Loading…
Cancel
Save