Browse Source

Merge pull request #17094 from abpframework/liangshiwei/group5

pull/17107/head
maliming 3 years ago
committed by GitHub
parent
commit
2227ff0636
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/MauiBlazorRemoteTenantStore.cs
  2. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo.Abp.AspNetCore.Mvc.Client.Common.csproj
  3. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteExternalLocalizationStore.cs
  4. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteFeatureChecker.cs
  5. 18
      framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteLocalizationContributor.cs
  6. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteSettingProvider.cs
  7. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj
  8. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs
  9. 28
      framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcRemoteTenantStore.cs
  10. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj
  11. 16
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationConfigurationDto.cs
  12. 5
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationConfigurationDto.cs
  13. 5
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationDto.cs
  14. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationRequestDto.cs
  15. 9
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationResourceDto.cs
  16. 7
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationSettingConfigurationDto.cs
  17. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ClockDto.cs
  18. 16
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/CurrentCultureDto.cs
  19. 16
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/CurrentUserDto.cs
  20. 14
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/DateTimeFormatDto.cs
  21. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/EntityExtensionDto.cs
  22. 7
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionEnumDto.cs
  23. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionEnumFieldDto.cs
  24. 7
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyAttributeDto.cs
  25. 17
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyDto.cs
  26. 8
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiDto.cs
  27. 10
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiLookupDto.cs
  28. 5
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/LocalizableStringDto.cs
  29. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleExtensionDto.cs
  30. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ObjectExtensionsDto.cs
  31. 15
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/TimingDto.cs
  32. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/CurrentTenantDto.cs
  33. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs
  34. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson.csproj
  35. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Microsoft/AspNetCore/Razor/TagHelpers/AbpTagHelperAttributeListExtensions.cs
  36. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelper.cs
  37. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs
  38. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperService.cs
  39. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/AbpBreadcrumbItemTagHelper.cs
  40. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/BreadcrumbItem.cs
  41. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs
  42. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperServiceBase.cs
  43. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpLinkButtonTagHelper.cs
  44. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/IButtonTagHelperBase.cs
  45. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelper.cs
  46. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelperService.cs
  47. 8
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselItemTagHelper.cs
  48. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselItemTagHelperService.cs
  49. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelper.cs
  50. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs
  51. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelper.cs
  52. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelper.cs
  53. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelper.cs
  54. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseButtonTagHelper.cs
  55. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelper.cs
  56. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/ModelExplorerExtensions.cs
  57. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperContextExtensions.cs
  58. 20
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs
  59. 12
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs
  60. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpIdNameTagHelper.cs
  61. 16
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs
  62. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs
  63. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelper.cs
  64. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs
  65. 28
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelper.cs
  66. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs
  67. 32
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelper.cs
  68. 48
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs
  69. 22
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs
  70. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerRange.cs
  71. 3
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelper.cs
  72. 14
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs
  73. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelper.cs
  74. 18
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs
  75. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs
  76. 29
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs
  77. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/FormGroupItem.cs
  78. 8
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/SelectItems.cs
  79. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/IAbpTagHelperLocalizer.cs
  80. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/ListGroup/AbpListGroupItemTagHelper.cs
  81. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalHeaderTagHelper.cs
  82. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Nav/AbpNavbarToggleTagHelper.cs
  83. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Nav/NavItem.cs
  84. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelper.cs
  85. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/PageItem.cs
  86. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/PagerModel.cs
  87. 10
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Popover/AbpPopoverTagHelper.cs
  88. 10
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Popover/AbpPopoverTagHelperService.cs
  89. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabDropdownTagHelper.cs
  90. 8
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabLinkTagHelper.cs
  91. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabLinkTagHelperService.cs
  92. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelper.cs
  93. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs
  94. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabsTagHelper.cs
  95. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/TabItem.cs
  96. 12
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/AbpTooltipTagHelper.cs
  97. 10
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/AbpTooltipTagHelperService.cs
  98. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj
  99. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions.csproj
  100. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs

2
framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/MauiBlazorRemoteTenantStore.cs

@ -98,7 +98,7 @@ public class MauiBlazorRemoteTenantStore : ITenantStore, ITransientDependency
return null;
}
return new TenantConfiguration(tenantResultDto.TenantId.Value, tenantResultDto.Name);
return new TenantConfiguration(tenantResultDto.TenantId.Value, tenantResultDto.Name!);
}
protected virtual string CreateCacheKey(string tenantName)

2
framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo.Abp.AspNetCore.Mvc.Client.Common.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.AspNetCore.Mvc.Client.Common</AssemblyName>
<PackageId>Volo.Abp.AspNetCore.Mvc.Client.Common</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

6
framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteExternalLocalizationStore.cs

@ -22,13 +22,13 @@ public class RemoteExternalLocalizationStore : IExternalLocalizationStore, ITran
LocalizationOptions = localizationOptions.Value;
}
public virtual LocalizationResourceBase GetResourceOrNull(string resourceName)
public virtual LocalizationResourceBase? GetResourceOrNull(string resourceName)
{
var configurationDto = ConfigurationClient.Get();
return CreateLocalizationResourceFromConfigurationOrNull(resourceName, configurationDto);
}
public virtual async Task<LocalizationResourceBase> GetResourceOrNullAsync(string resourceName)
public virtual async Task<LocalizationResourceBase?> GetResourceOrNullAsync(string resourceName)
{
var configurationDto = await ConfigurationClient.GetAsync();
return CreateLocalizationResourceFromConfigurationOrNull(resourceName, configurationDto);
@ -63,7 +63,7 @@ public class RemoteExternalLocalizationStore : IExternalLocalizationStore, ITran
return resources.ToArray();
}
protected virtual LocalizationResourceBase CreateLocalizationResourceFromConfigurationOrNull(
protected virtual LocalizationResourceBase? CreateLocalizationResourceFromConfigurationOrNull(
string resourceName,
ApplicationConfigurationDto configurationDto)
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteFeatureChecker.cs

@ -13,7 +13,7 @@ public class RemoteFeatureChecker : FeatureCheckerBase
ConfigurationClient = configurationClient;
}
public override async Task<string> GetOrNullAsync(string name)
public override async Task<string?> GetOrNullAsync(string name)
{
var configuration = await ConfigurationClient.GetAsync();
return configuration.Features.Values.GetOrDefault(name);

18
framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteLocalizationContributor.cs

@ -14,9 +14,9 @@ public class RemoteLocalizationContributor : ILocalizationResourceContributor
{
public bool IsDynamic => true;
private LocalizationResourceBase _resource;
private ICachedApplicationConfigurationClient _applicationConfigurationClient;
private ILogger<RemoteLocalizationContributor> _logger;
private LocalizationResourceBase _resource = default!;
private ICachedApplicationConfigurationClient _applicationConfigurationClient = default!;
private ILogger<RemoteLocalizationContributor> _logger = default!;
public void Initialize(LocalizationResourceInitializationContext context)
{
@ -26,7 +26,7 @@ public class RemoteLocalizationContributor : ILocalizationResourceContributor
?? NullLogger<RemoteLocalizationContributor>.Instance;
}
public virtual LocalizedString GetOrNull(string cultureName, string name)
public virtual LocalizedString? GetOrNull(string cultureName, string name)
{
/* cultureName is not used because remote localization can only
* be done in the current culture. */
@ -34,7 +34,7 @@ public class RemoteLocalizationContributor : ILocalizationResourceContributor
return GetOrNullInternal(_resource.ResourceName, name);
}
protected virtual LocalizedString GetOrNullInternal(string resourceName, string name)
protected virtual LocalizedString? GetOrNullInternal(string resourceName, string name)
{
var resource = GetResourceOrNull(resourceName);
if (resource == null)
@ -50,7 +50,7 @@ public class RemoteLocalizationContributor : ILocalizationResourceContributor
foreach (var baseResource in resource.BaseResources)
{
value = GetOrNullInternal(baseResource, name);
value = GetOrNullInternal(baseResource, name)?.ToString();
if (value != null)
{
return new LocalizedString(name, value);
@ -121,19 +121,19 @@ public class RemoteLocalizationContributor : ILocalizationResourceContributor
return Task.FromResult((IEnumerable<string>)Array.Empty<string>());
}
protected virtual ApplicationLocalizationResourceDto GetResourceOrNull(string resourceName)
protected virtual ApplicationLocalizationResourceDto? GetResourceOrNull(string resourceName)
{
var applicationConfigurationDto = _applicationConfigurationClient.Get();
return GetResourceOrNull(applicationConfigurationDto, resourceName);
}
protected virtual async Task<ApplicationLocalizationResourceDto> GetResourceOrNullAsync(string resourceName)
protected virtual async Task<ApplicationLocalizationResourceDto?> GetResourceOrNullAsync(string resourceName)
{
var applicationConfigurationDto = await _applicationConfigurationClient.GetAsync();
return GetResourceOrNull(applicationConfigurationDto, resourceName);
}
protected virtual ApplicationLocalizationResourceDto GetResourceOrNull(
protected virtual ApplicationLocalizationResourceDto? GetResourceOrNull(
ApplicationConfigurationDto applicationConfigurationDto,
string resourceName)
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteSettingProvider.cs

@ -15,7 +15,7 @@ public class RemoteSettingProvider : ISettingProvider, ITransientDependency
ConfigurationClient = configurationClient;
}
public async Task<string> GetOrNullAsync(string name)
public async Task<string?> GetOrNullAsync(string name)
{
var configuration = await ConfigurationClient.GetAsync();
return configuration.Setting.Values.GetOrDefault(name);

2
framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.AspNetCore.Mvc.Client</AssemblyName>
<PackageId>Volo.Abp.AspNetCore.Mvc.Client</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

4
framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs

@ -47,14 +47,14 @@ public class MvcCachedApplicationConfigurationClient : ICachedApplicationConfigu
return configuration;
}
configuration = await Cache.GetOrAddAsync(
configuration = (await Cache.GetOrAddAsync(
cacheKey,
async () => await GetRemoteConfigurationAsync(),
() => new DistributedCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = Options.ApplicationConfigurationDtoCacheAbsoluteExpiration
}
);
))!;
if (httpContext != null)
{

28
framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcRemoteTenantStore.cs

@ -31,7 +31,7 @@ public class MvcRemoteTenantStore : ITenantStore, ITransientDependency
Options = options.Value;
}
public async Task<TenantConfiguration> FindAsync(string name)
public async Task<TenantConfiguration?> FindAsync(string name)
{
var cacheKey = CreateCacheKey(name);
var httpContext = HttpContextAccessor?.HttpContext;
@ -41,14 +41,14 @@ public class MvcRemoteTenantStore : ITenantStore, ITransientDependency
return tenantConfiguration;
}
tenantConfiguration = await Cache.GetOrAddAsync(
tenantConfiguration = (await Cache.GetOrAddAsync(
cacheKey,
async () => CreateTenantConfiguration(await TenantAppService.FindTenantByNameAsync(name)),
async () => CreateTenantConfiguration(await TenantAppService.FindTenantByNameAsync(name))!,
() => new DistributedCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = Options.TenantConfigurationCacheAbsoluteExpiration
}
);
))!;
if (httpContext != null)
{
@ -58,7 +58,7 @@ public class MvcRemoteTenantStore : ITenantStore, ITransientDependency
return tenantConfiguration;
}
public async Task<TenantConfiguration> FindAsync(Guid id)
public async Task<TenantConfiguration?> FindAsync(Guid id)
{
var cacheKey = CreateCacheKey(id);
var httpContext = HttpContextAccessor?.HttpContext;
@ -68,14 +68,14 @@ public class MvcRemoteTenantStore : ITenantStore, ITransientDependency
return tenantConfiguration;
}
tenantConfiguration = await Cache.GetOrAddAsync(
tenantConfiguration = (await Cache.GetOrAddAsync(
cacheKey,
async () => CreateTenantConfiguration(await TenantAppService.FindTenantByIdAsync(id)),
async () => CreateTenantConfiguration(await TenantAppService.FindTenantByIdAsync(id))!,
() => new DistributedCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = Options.TenantConfigurationCacheAbsoluteExpiration
}
);
))!;
if (httpContext != null)
{
@ -97,12 +97,12 @@ public class MvcRemoteTenantStore : ITenantStore, ITransientDependency
tenantConfiguration = Cache.GetOrAdd(
cacheKey,
() => AsyncHelper.RunSync(async () => CreateTenantConfiguration(await TenantAppService.FindTenantByNameAsync(name))),
() => AsyncHelper.RunSync(async () => CreateTenantConfiguration(await TenantAppService.FindTenantByNameAsync(name))!),
() => new DistributedCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = Options.TenantConfigurationCacheAbsoluteExpiration
}
);
)!;
if (httpContext != null)
{
@ -124,12 +124,12 @@ public class MvcRemoteTenantStore : ITenantStore, ITransientDependency
tenantConfiguration = Cache.GetOrAdd(
cacheKey,
() => AsyncHelper.RunSync(async () => CreateTenantConfiguration(await TenantAppService.FindTenantByIdAsync(id))),
() => AsyncHelper.RunSync(async () => CreateTenantConfiguration(await TenantAppService.FindTenantByIdAsync(id))!),
() => new DistributedCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = Options.TenantConfigurationCacheAbsoluteExpiration
}
);
)!;
if (httpContext != null)
{
@ -139,14 +139,14 @@ public class MvcRemoteTenantStore : ITenantStore, ITransientDependency
return tenantConfiguration;
}
protected virtual TenantConfiguration CreateTenantConfiguration(FindTenantResultDto tenantResultDto)
protected virtual TenantConfiguration? CreateTenantConfiguration(FindTenantResultDto tenantResultDto)
{
if (!tenantResultDto.Success || tenantResultDto.TenantId == null)
{
return null;
}
return new TenantConfiguration(tenantResultDto.TenantId.Value, tenantResultDto.Name);
return new TenantConfiguration(tenantResultDto.TenantId.Value, tenantResultDto.Name!);
}
protected virtual string CreateCacheKey(string tenantName)

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.AspNetCore.Mvc.Contracts</AssemblyName>
<PackageId>Volo.Abp.AspNetCore.Mvc.Contracts</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

16
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationConfigurationDto.cs

@ -31,4 +31,20 @@ public class ApplicationConfigurationDto : IHasExtraProperties
public ObjectExtensionsDto ObjectExtensions { get; set; }
public ExtraPropertyDictionary ExtraProperties { get; set; }
public ApplicationConfigurationDto()
{
Localization = new ApplicationLocalizationConfigurationDto();
Auth = new ApplicationAuthConfigurationDto();
Setting = new ApplicationSettingConfigurationDto();
CurrentUser = new CurrentUserDto();
Features = new ApplicationFeatureConfigurationDto();
GlobalFeatures = new ApplicationGlobalFeatureConfigurationDto();
MultiTenancy = new MultiTenancyInfoDto();
CurrentTenant = new CurrentTenantDto();
Timing = new TimingDto();
Clock = new ClockDto();
ObjectExtensions = new ObjectExtensionsDto();
ExtraProperties = new ExtraPropertyDictionary();
}
}

5
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationConfigurationDto.cs

@ -28,7 +28,7 @@ public class ApplicationLocalizationConfigurationDto
public CurrentCultureDto CurrentCulture { get; set; }
public string DefaultResourceName { get; set; }
public string? DefaultResourceName { get; set; }
public Dictionary<string, List<NameValue>> LanguagesMap { get; set; }
@ -38,5 +38,8 @@ public class ApplicationLocalizationConfigurationDto
{
Values = new Dictionary<string, Dictionary<string, string>>();
Languages = new List<LanguageInfo>();
CurrentCulture = new CurrentCultureDto();
LanguagesMap = new Dictionary<string, List<NameValue>>();
LanguageFilesMap = new Dictionary<string, List<NameValue>>();
}
}

5
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationDto.cs

@ -7,4 +7,9 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
public class ApplicationLocalizationDto
{
public Dictionary<string, ApplicationLocalizationResourceDto> Resources { get; set; }
public ApplicationLocalizationDto()
{
Resources = new Dictionary<string, ApplicationLocalizationResourceDto>();
}
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationRequestDto.cs

@ -5,7 +5,7 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
public class ApplicationLocalizationRequestDto
{
[Required]
public string CultureName { get; set; }
public string CultureName { get; set; } = default!;
public bool OnlyDynamics { get; set; }
}

9
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationResourceDto.cs

@ -7,6 +7,11 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
public class ApplicationLocalizationResourceDto
{
public Dictionary<string, string> Texts { get; set; }
public string[] BaseResources { get; set; }
public string[] BaseResources { get; set; } = default!;
public ApplicationLocalizationResourceDto()
{
Texts = new Dictionary<string, string>();
}
}

7
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationSettingConfigurationDto.cs

@ -6,5 +6,10 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
[Serializable]
public class ApplicationSettingConfigurationDto
{
public Dictionary<string, string> Values { get; set; }
public Dictionary<string, string?> Values { get; set; }
public ApplicationSettingConfigurationDto()
{
Values = new Dictionary<string, string?>();
}
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ClockDto.cs

@ -2,5 +2,5 @@
public class ClockDto
{
public string Kind { get; set; }
public string Kind { get; set; } = default!;
}

16
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/CurrentCultureDto.cs

@ -5,21 +5,21 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
[Serializable]
public class CurrentCultureDto
{
public string DisplayName { get; set; }
public string DisplayName { get; set; } = default!;
public string EnglishName { get; set; }
public string EnglishName { get; set; } = default!;
public string ThreeLetterIsoLanguageName { get; set; }
public string ThreeLetterIsoLanguageName { get; set; } = default!;
public string TwoLetterIsoLanguageName { get; set; }
public string TwoLetterIsoLanguageName { get; set; } = default!;
public bool IsRightToLeft { get; set; }
public string CultureName { get; set; }
public string CultureName { get; set; } = default!;
public string Name { get; set; }
public string Name { get; set; } = default!;
public string NativeName { get; set; }
public string NativeName { get; set; } = default!;
public DateTimeFormatDto DateTimeFormat { get; set; }
public DateTimeFormatDto DateTimeFormat { get; set; } = default!;
}

16
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/CurrentUserDto.cs

@ -15,23 +15,23 @@ public class CurrentUserDto
public Guid? ImpersonatorTenantId { get; set; }
public string ImpersonatorUserName { get; set; }
public string? ImpersonatorUserName { get; set; }
public string ImpersonatorTenantName { get; set; }
public string? ImpersonatorTenantName { get; set; }
public string UserName { get; set; }
public string? UserName { get; set; }
public string Name { get; set; }
public string? Name { get; set; }
public string SurName { get; set; }
public string? SurName { get; set; }
public string Email { get; set; }
public string? Email { get; set; }
public bool EmailVerified { get; set; }
public string PhoneNumber { get; set; }
public string? PhoneNumber { get; set; }
public bool PhoneNumberVerified { get; set; }
public string[] Roles { get; set; }
public string[] Roles { get; set; } = default!;
}

14
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/DateTimeFormatDto.cs

@ -2,17 +2,17 @@
public class DateTimeFormatDto
{
public string CalendarAlgorithmType { get; set; }
public string CalendarAlgorithmType { get; set; } = default!;
public string DateTimeFormatLong { get; set; }
public string DateTimeFormatLong { get; set; } = default!;
public string ShortDatePattern { get; set; }
public string ShortDatePattern { get; set; } = default!;
public string FullDateTimePattern { get; set; }
public string FullDateTimePattern { get; set; } = default!;
public string DateSeparator { get; set; }
public string DateSeparator { get; set; } = default!;
public string ShortTimePattern { get; set; }
public string ShortTimePattern { get; set; } = default!;
public string LongTimePattern { get; set; }
public string LongTimePattern { get; set; } = default!;
}

6
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/EntityExtensionDto.cs

@ -9,4 +9,10 @@ public class EntityExtensionDto
public Dictionary<string, ExtensionPropertyDto> Properties { get; set; }
public Dictionary<string, object> Configuration { get; set; }
public EntityExtensionDto()
{
Properties = new Dictionary<string, ExtensionPropertyDto>();
Configuration = new Dictionary<string, object>();
}
}

7
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionEnumDto.cs

@ -8,5 +8,10 @@ public class ExtensionEnumDto
{
public List<ExtensionEnumFieldDto> Fields { get; set; }
public string LocalizationResource { get; set; }
public string? LocalizationResource { get; set; }
public ExtensionEnumDto()
{
Fields = new List<ExtensionEnumFieldDto>();
}
}

4
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionEnumFieldDto.cs

@ -5,7 +5,7 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending;
[Serializable]
public class ExtensionEnumFieldDto
{
public string Name { get; set; }
public string? Name { get; set; }
public object Value { get; set; }
public object? Value { get; set; }
}

7
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyAttributeDto.cs

@ -6,7 +6,12 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending;
[Serializable]
public class ExtensionPropertyAttributeDto
{
public string TypeSimple { get; set; }
public string TypeSimple { get; set; } = default!;
public Dictionary<string, object> Config { get; set; }
public ExtensionPropertyAttributeDto()
{
Config = new Dictionary<string, object>();
}
}

17
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyDto.cs

@ -7,12 +7,11 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending;
[Serializable]
public class ExtensionPropertyDto
{
public string Type { get; set; }
public string Type { get; set; } = default!;
public string TypeSimple { get; set; }
public string TypeSimple { get; set; } = default!;
[CanBeNull]
public LocalizableStringDto DisplayName { get; set; }
public LocalizableStringDto? DisplayName { get; set; }
public ExtensionPropertyApiDto Api { get; set; }
@ -22,5 +21,13 @@ public class ExtensionPropertyDto
public Dictionary<string, object> Configuration { get; set; }
public object DefaultValue { get; set; }
public object? DefaultValue { get; set; }
public ExtensionPropertyDto()
{
Api = new ExtensionPropertyApiDto();
Ui = new ExtensionPropertyUiDto();
Attributes = new List<ExtensionPropertyAttributeDto>();
Configuration = new Dictionary<string, object>();
}
}

8
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiDto.cs

@ -9,4 +9,12 @@ public class ExtensionPropertyUiDto
public ExtensionPropertyUiFormDto OnCreateForm { get; set; }
public ExtensionPropertyUiFormDto OnEditForm { get; set; }
public ExtensionPropertyUiLookupDto Lookup { get; set; }
public ExtensionPropertyUiDto()
{
OnTable = new ExtensionPropertyUiTableDto();
OnCreateForm = new ExtensionPropertyUiFormDto();
OnEditForm = new ExtensionPropertyUiFormDto();
Lookup = new ExtensionPropertyUiLookupDto();
}
}

10
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiLookupDto.cs

@ -5,9 +5,9 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending;
[Serializable]
public class ExtensionPropertyUiLookupDto
{
public string Url { get; set; }
public string ResultListPropertyName { get; set; }
public string DisplayPropertyName { get; set; }
public string ValuePropertyName { get; set; }
public string FilterParamName { get; set; }
public string Url { get; set; } = default!;
public string ResultListPropertyName { get; set; } = default!;
public string DisplayPropertyName { get; set; } = default!;
public string ValuePropertyName { get; set; } = default!;
public string FilterParamName { get; set; } = default!;
}

5
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/LocalizableStringDto.cs

@ -9,10 +9,9 @@ public class LocalizableStringDto
[NotNull]
public string Name { get; private set; }
[CanBeNull]
public string Resource { get; set; }
public string? Resource { get; set; }
public LocalizableStringDto([NotNull] string name, string resource = null)
public LocalizableStringDto([NotNull] string name, string? resource = null)
{
Name = Check.NotNullOrEmpty(name, nameof(name));
Resource = resource;

6
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleExtensionDto.cs

@ -9,4 +9,10 @@ public class ModuleExtensionDto
public Dictionary<string, EntityExtensionDto> Entities { get; set; }
public Dictionary<string, object> Configuration { get; set; }
public ModuleExtensionDto()
{
Entities = new Dictionary<string, EntityExtensionDto>();
Configuration = new Dictionary<string, object>();
}
}

6
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ObjectExtensionsDto.cs

@ -9,4 +9,10 @@ public class ObjectExtensionsDto
public Dictionary<string, ModuleExtensionDto> Modules { get; set; }
public Dictionary<string, ExtensionEnumDto> Enums { get; set; }
public ObjectExtensionsDto()
{
Modules = new Dictionary<string, ModuleExtensionDto>();
Enums = new Dictionary<string, ExtensionEnumDto>();
}
}

15
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/TimingDto.cs

@ -3,6 +3,11 @@
public class TimingDto
{
public TimeZone TimeZone { get; set; }
public TimingDto()
{
TimeZone = new TimeZone();
}
}
public class TimeZone
@ -10,14 +15,20 @@ public class TimeZone
public IanaTimeZone Iana { get; set; }
public WindowsTimeZone Windows { get; set; }
public TimeZone()
{
Iana = new IanaTimeZone();
Windows = new WindowsTimeZone();
}
}
public class WindowsTimeZone
{
public string TimeZoneId { get; set; }
public string? TimeZoneId { get; set; }
}
public class IanaTimeZone
{
public string TimeZoneName { get; set; }
public string? TimeZoneName { get; set; }
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/CurrentTenantDto.cs

@ -8,7 +8,7 @@ public class CurrentTenantDto
{
public Guid? Id { get; set; }
public string Name { get; set; }
public string? Name { get; set; }
public bool IsAvailable { get; set; }
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs

@ -9,7 +9,7 @@ public class FindTenantResultDto
public Guid? TenantId { get; set; }
public string Name { get; set; }
public string? Name { get; set; }
public bool IsActive { get; set; }
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<AssemblyName>Volo.Abp.AspNetCore.Mvc.NewtonsoftJson</AssemblyName>
<PackageId>Volo.Abp.AspNetCore.Mvc.NewtonsoftJson</PackageId>

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Microsoft/AspNetCore/Razor/TagHelpers/AbpTagHelperAttributeListExtensions.cs

@ -22,7 +22,7 @@ public static class AbpTagHelperAttributeListExtensions
}
else
{
var existingClasses = classAttribute.Value.ToString().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
var existingClasses = classAttribute.Value.ToString()!.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
existingClasses.AddIfNotContains(className);
attributes.SetAttribute("class", string.Join(" ", existingClasses));
}
@ -41,7 +41,7 @@ public static class AbpTagHelperAttributeListExtensions
return;
}
var classList = classAttribute.Value.ToString().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
var classList = classAttribute.Value.ToString()!.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
classList.RemoveAll(c => c == className);
attributes.SetAttribute("class", classList.JoinAsString(" "));

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelper.cs

@ -23,7 +23,7 @@ public abstract class AbpTagHelper<TTagHelper, TService> : AbpTagHelper
[HtmlAttributeNotBound]
[ViewContext]
public ViewContext ViewContext { get; set; }
public ViewContext ViewContext { get; set; } = default!;
protected AbpTagHelper(TService service)
{

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs

@ -27,12 +27,12 @@ public class AbpTagHelperLocalizer : IAbpTagHelperLocalizer
: localizer[text].Value;
}
public IStringLocalizer GetLocalizerOrNull(ModelExplorer explorer)
public IStringLocalizer? GetLocalizerOrNull(ModelExplorer explorer)
{
return GetLocalizerOrNull(explorer.Container.ModelType.Assembly);
}
public IStringLocalizer GetLocalizerOrNull(Assembly assembly)
public IStringLocalizer? GetLocalizerOrNull(Assembly assembly)
{
var resourceType = GetResourceType(assembly);
return resourceType == null
@ -40,7 +40,7 @@ public class AbpTagHelperLocalizer : IAbpTagHelperLocalizer
: _stringLocalizerFactory.Create(resourceType);
}
private Type GetResourceType(Assembly assembly)
private Type? GetResourceType(Assembly assembly)
{
return _options
.AssemblyResources

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperService.cs

@ -23,7 +23,7 @@ public abstract class AbpTagHelperService<TTagHelper> : IAbpTagHelperService<TTa
protected const string AbpTabItemSelectedPlaceholder = "{_Tab_Selected_Placeholder_}";
protected const string AbpAccordionParentIdPlaceholder = "{_Parent_Accordion_Id_}";
public TTagHelper TagHelper { get; internal set; }
public TTagHelper TagHelper { get; internal set; } = default!;
public virtual int Order { get; }

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/AbpBreadcrumbItemTagHelper.cs

@ -2,9 +2,9 @@
public class AbpBreadcrumbItemTagHelper : AbpTagHelper<AbpBreadcrumbItemTagHelper, AbpBreadcrumbItemTagHelperService>
{
public string Href { get; set; }
public string? Href { get; set; }
public string Title { get; set; }
public string Title { get; set; } = default!;
public bool Active { get; set; }

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/BreadcrumbItem.cs

@ -2,7 +2,7 @@
public class BreadcrumbItem
{
public string Html { get; set; }
public string Html { get; set; } = default!;
public bool Active { get; set; }
}

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs

@ -9,11 +9,11 @@ public class AbpButtonTagHelper : AbpTagHelper<AbpButtonTagHelper, AbpButtonTagH
public AbpButtonSize Size { get; set; } = AbpButtonSize.Default;
public string BusyText { get; set; }
public string? BusyText { get; set; }
public string Text { get; set; }
public string? Text { get; set; }
public string Icon { get; set; }
public string? Icon { get; set; }
public bool? Disabled { get; set; }

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperServiceBase.cs

@ -57,7 +57,7 @@ public abstract class AbpButtonTagHelperServiceBase<TTagHelper> : AbpTagHelperSe
case FontIconType.FontAwesome:
return "fa fa-" + TagHelper.Icon;
default:
return TagHelper.Icon;
return TagHelper.Icon!;
}
}
@ -69,7 +69,7 @@ public abstract class AbpButtonTagHelperServiceBase<TTagHelper> : AbpTagHelperSe
}
var span = new TagBuilder("span");
span.InnerHtml.AppendHtml(TagHelper.Text);
span.InnerHtml.AppendHtml(TagHelper.Text!);
output.Content.AppendHtml(span);
}

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpLinkButtonTagHelper.cs

@ -11,9 +11,9 @@ public class AbpLinkButtonTagHelper : AbpTagHelper<AbpLinkButtonTagHelper, AbpLi
public AbpButtonSize Size { get; set; } = AbpButtonSize.Default;
public string Text { get; set; }
public string? Text { get; set; }
public string Icon { get; set; }
public string? Icon { get; set; }
public bool? Disabled { get; set; }

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/IButtonTagHelperBase.cs

@ -6,9 +6,9 @@ public interface IButtonTagHelperBase
AbpButtonSize Size { get; }
string Text { get; }
string? Text { get; }
string Icon { get; }
string? Icon { get; }
bool? Disabled { get; }

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelper.cs

@ -2,9 +2,9 @@
public class AbpCardBodyTagHelper : AbpTagHelper<AbpCardBodyTagHelper, AbpCardBodyTagHelperService>
{
public string Title { get; set; }
public string? Title { get; set; }
public string Subtitle { get; set; }
public string? Subtitle { get; set; }
public AbpCardBodyTagHelper(AbpCardBodyTagHelperService tagHelperService)
: base(tagHelperService)

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelperService.cs

@ -22,7 +22,7 @@ public class AbpCardBodyTagHelperService : AbpTagHelperService<AbpCardBodyTagHel
{
var cardTitle = new TagBuilder(AbpCardTitleTagHelper.DefaultHeading.ToHtmlTag());
cardTitle.AddCssClass("card-title");
cardTitle.InnerHtml.AppendHtml(TagHelper.Title);
cardTitle.InnerHtml.AppendHtml(TagHelper.Title!);
output.PreContent.AppendHtml(cardTitle);
}
}
@ -33,7 +33,7 @@ public class AbpCardBodyTagHelperService : AbpTagHelperService<AbpCardBodyTagHel
{
var cardSubtitle = new TagBuilder(AbpCardSubtitleTagHelper.DefaultHeading.ToHtmlTag());
cardSubtitle.AddCssClass("card-subtitle text-muted mb-2");
cardSubtitle.InnerHtml.AppendHtml(TagHelper.Subtitle);
cardSubtitle.InnerHtml.AppendHtml(TagHelper.Subtitle!);
output.PreContent.AppendHtml(cardSubtitle);
}
}

8
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselItemTagHelper.cs

@ -4,13 +4,13 @@ public class AbpCarouselItemTagHelper : AbpTagHelper<AbpCarouselItemTagHelper, A
{
public bool? Active { get; set; }
public string Src { get; set; }
public string Src { get; set; } = default!;
public string Alt { get; set; }
public string Alt { get; set; } = default!;
public string CaptionTitle { get; set; }
public string? CaptionTitle { get; set; }
public string Caption { get; set; }
public string? Caption { get; set; }
public AbpCarouselItemTagHelper(AbpCarouselItemTagHelperService tagHelperService)
: base(tagHelperService)

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselItemTagHelperService.cs

@ -66,10 +66,10 @@ public class AbpCarouselItemTagHelperService : AbpTagHelperService<AbpCarouselIt
}
var title = new TagBuilder("h5");
title.InnerHtml.AppendHtml(TagHelper.CaptionTitle);
title.InnerHtml.AppendHtml(TagHelper.CaptionTitle!);
var caption = new TagBuilder("p");
caption.InnerHtml.AppendHtml(TagHelper.Caption);
caption.InnerHtml.AppendHtml(TagHelper.Caption!);
var wrapper = new TagBuilder("div");
wrapper.AddCssClass("carousel-caption d-none d-md-block");

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelper.cs

@ -2,7 +2,7 @@
public class AbpCarouselTagHelper : AbpTagHelper<AbpCarouselTagHelper, AbpCarouselTagHelperService>
{
public string Id { get; set; }
public string? Id { get; set; }
public bool? Crossfade { get; set; }

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs

@ -138,7 +138,7 @@ public class AbpCarouselTagHelperService : AbpTagHelperService<AbpCarouselTagHel
{
if (!itemList.Any(it => it.Active) && itemList.Count > 0)
{
itemList.FirstOrDefault().Active = true;
itemList.FirstOrDefault()!.Active = true;
}
}

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelper.cs

@ -2,9 +2,9 @@
public class AbpAccordionItemTagHelper : AbpTagHelper<AbpAccordionItemTagHelper, AbpAccordionItemTagHelperService>
{
public string Id { get; set; }
public string? Id { get; set; }
public string Title { get; set; }
public string Title { get; set; } = default!;
public bool? Active { get; set; }

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelper.cs

@ -2,7 +2,7 @@
public class AbpAccordionTagHelper : AbpTagHelper<AbpAccordionTagHelper, AbpAccordionTagHelperService>
{
public string Id { get; set; }
public string? Id { get; set; }
public AbpAccordionTagHelper(AbpAccordionTagHelperService tagHelperService)
: base(tagHelperService)

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelper.cs

@ -2,7 +2,7 @@
public class AbpCollapseBodyTagHelper : AbpTagHelper<AbpCollapseBodyTagHelper, AbpCollapseBodyTagHelperService>
{
public string Id { get; set; }
public string? Id { get; set; }
public bool? Multi { get; set; }

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseButtonTagHelper.cs

@ -8,7 +8,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse;
public class AbpCollapseButtonTagHelper : AbpTagHelper<AbpCollapseButtonTagHelper, AbpCollapseButtonTagHelperService>
{
[HtmlAttributeName("abp-collapse-id")]
public string BodyId { get; set; }
public string BodyId { get; set; } = default!;
public AbpCollapseButtonTagHelper(AbpCollapseButtonTagHelperService tagHelperService)
: base(tagHelperService)

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelper.cs

@ -4,7 +4,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Dropdown;
public class AbpDropdownButtonTagHelper : AbpTagHelper<AbpDropdownButtonTagHelper, AbpDropdownButtonTagHelperService>
{
public string Text { get; set; }
public string? Text { get; set; }
public AbpButtonSize Size { get; set; } = AbpButtonSize.Default;
@ -12,7 +12,7 @@ public class AbpDropdownButtonTagHelper : AbpTagHelper<AbpDropdownButtonTagHelpe
public AbpButtonType ButtonType { get; set; } = AbpButtonType.Default;
public string Icon { get; set; }
public string? Icon { get; set; }
public FontIconType IconType { get; set; } = FontIconType.FontAwesome;

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/ModelExplorerExtensions.cs

@ -7,9 +7,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions;
public static class ModelExplorerExtensions
{
public static T GetAttribute<T>(this ModelExplorer property) where T : Attribute
public static T? GetAttribute<T>(this ModelExplorer property) where T : Attribute
{
return property?.Metadata?.ContainerType?.GetTypeInfo()?.GetProperty(property.Metadata.PropertyName)?.GetCustomAttribute<T>();
return property?.Metadata?.ContainerType?.GetTypeInfo()?.GetProperty(property.Metadata.PropertyName!)?.GetCustomAttribute<T>();
}
public static int GetDisplayOrder(this ModelExplorer explorer)

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperContextExtensions.cs

@ -11,7 +11,7 @@ public static class TagHelperContextExtensions
{
if (!context.Items.ContainsKey(key))
{
return default(T);
return default(T)!;
}
return (T)context.Items[key];

20
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs

@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form;
public class AbpDynamicFormTagHelper : AbpTagHelper<AbpDynamicFormTagHelper, AbpDynamicFormTagHelperService>
{
[HtmlAttributeName("abp-model")]
public ModelExpression Model { get; set; }
public ModelExpression Model { get; set; } = default!;
[HtmlAttributeName("column-size")]
public ColumnSize ColumnSize { get; set; }
@ -23,7 +23,7 @@ public class AbpDynamicFormTagHelper : AbpTagHelper<AbpDynamicFormTagHelper, Abp
#region MvcFormTagHelperAttiributes
private IDictionary<string, string> _routeValues;
private IDictionary<string, string>? _routeValues;
private const string ActionAttributeName = "asp-action";
private const string AreaAttributeName = "asp-area";
@ -36,28 +36,28 @@ public class AbpDynamicFormTagHelper : AbpTagHelper<AbpDynamicFormTagHelper, Abp
private const string RouteValuesPrefix = "asp-route-";
[HtmlAttributeName(ActionAttributeName)]
public string Action { get; set; }
public string Action { get; set; } = default!;
[HtmlAttributeName(ControllerAttributeName)]
public string Controller { get; set; }
public string Controller { get; set; } = default!;
[HtmlAttributeName(AreaAttributeName)]
public string Area { get; set; }
public string Area { get; set; } = default!;
[HtmlAttributeName(PageAttributeName)]
public string Page { get; set; }
public string Page { get; set; } = default!;
[HtmlAttributeName(PageHandlerAttributeName)]
public string PageHandler { get; set; }
public string PageHandler { get; set; } = default!;
[HtmlAttributeName(FragmentAttributeName)]
public string Fragment { get; set; }
public string Fragment { get; set; } = default!;
[HtmlAttributeName(RouteAttributeName)]
public string Route { get; set; }
public string Route { get; set; } = default!;
[EditorBrowsable(EditorBrowsableState.Never)]
public string Method { get; set; }
public string Method { get; set; } = default!;
[HtmlAttributeName(RouteValuesDictionaryName, DictionaryAttributePrefix = RouteValuesPrefix)]
public IDictionary<string, string> RouteValues

12
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs

@ -201,7 +201,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
private AbpTagHelper GetAbpDateRangeInputTagHelper(TagHelperContext context, TagHelperOutput output, ModelExpression model)
{
var modelAttribute = model.ModelExplorer.GetAttribute<DateRangePickerAttribute>();
var modelAttribute = model.ModelExplorer.GetAttribute<DateRangePickerAttribute>()!;
var pickerId = modelAttribute.PickerId;
@ -214,16 +214,16 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
abpDateRangeInputTagHelper.AspForStart = model;
var otherModelExists = TryToGetOtherDateModel(model, pickerId, out var otherModel);
if (otherModelExists && otherModel.GetAttribute<DateRangePickerAttribute>().IsEnd)
if (otherModelExists && otherModel!.GetAttribute<DateRangePickerAttribute>()!.IsEnd)
{
abpDateRangeInputTagHelper.AspForEnd = ModelExplorerToModelExpressionConverter(otherModel);
abpDateRangeInputTagHelper.AspForEnd = ModelExplorerToModelExpressionConverter(otherModel!);
}
}
return abpDateRangeInputTagHelper;
}
private bool TryToGetOtherDateModel(ModelExpression model, string pickerId, out ModelExplorer otherModel)
private bool TryToGetOtherDateModel(ModelExpression model, string pickerId, out ModelExplorer? otherModel)
{
otherModel = TagHelper.Model.ModelExplorer.Properties.SingleOrDefault(x => x != model.ModelExplorer && x.GetAttribute<DateRangePickerAttribute>()?.PickerId == pickerId);
return otherModel != null;
@ -266,7 +266,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
protected virtual AbpTagHelper GetAbpRadioInputTagHelper(ModelExpression model)
{
var radioButtonAttribute = model.ModelExplorer.GetAttribute<AbpRadioButton>();
var radioButtonAttribute = model.ModelExplorer.GetAttribute<AbpRadioButton>()!;
var abpRadioInputTagHelper = _serviceProvider.GetRequiredService<AbpRadioInputTagHelper>();
abpRadioInputTagHelper.AspFor = model;
abpRadioInputTagHelper.AspItems = null;
@ -356,7 +356,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
return type.ToString().StartsWith("System.Collections.Generic.IEnumerable`") || type.ToString().StartsWith("System.Collections.Generic.List`");
}
protected virtual bool IsCsharpClassOrPrimitive(Type type)
protected virtual bool IsCsharpClassOrPrimitive(Type? type)
{
if (type == null)
{

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpIdNameTagHelper.cs

@ -18,7 +18,7 @@ public class AbpIdNameTagHelper : AbpTagHelper
public override int Order => -1000 - 1;
[HtmlAttributeName("abp-id-name")]
public ModelExpression IdNameFor { get; set; }
public ModelExpression? IdNameFor { get; set; }
private readonly MvcViewOptions _mvcViewOptions;

16
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs

@ -6,11 +6,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form;
public class AbpInputTagHelper : AbpTagHelper<AbpInputTagHelper, AbpInputTagHelperService>
{
public ModelExpression AspFor { get; set; }
public ModelExpression AspFor { get; set; } = default!;
public string Label { get; set; }
public string? Label { get; set; }
public string LabelTooltip { get; set; }
public string? LabelTooltip { get; set; }
public string LabelTooltipIcon { get; set; } = "bi-info-circle";
@ -19,7 +19,7 @@ public class AbpInputTagHelper : AbpTagHelper<AbpInputTagHelper, AbpInputTagHelp
public bool LabelTooltipHtml { get; set; } = false;
[HtmlAttributeName("info")]
public string InfoText { get; set; }
public string? InfoText { get; set; }
[HtmlAttributeName("disabled")]
public bool IsDisabled { get; set; } = false;
@ -30,7 +30,7 @@ public class AbpInputTagHelper : AbpTagHelper<AbpInputTagHelper, AbpInputTagHelp
public bool AutoFocus { get; set; }
[HtmlAttributeName("type")]
public string InputTypeName { get; set; }
public string? InputTypeName { get; set; }
public AbpFormControlSize Size { get; set; } = AbpFormControlSize.Default;
@ -38,11 +38,11 @@ public class AbpInputTagHelper : AbpTagHelper<AbpInputTagHelper, AbpInputTagHelp
public bool DisplayRequiredSymbol { get; set; } = true;
[HtmlAttributeName("asp-format")]
public string Format { get; set; }
public string? Format { get; set; }
public string Name { get; set; }
public string? Name { get; set; }
public string Value { get; set; }
public string? Value { get; set; }
public bool SuppressLabel { get; set; }

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs

@ -397,7 +397,7 @@ public class AbpInputTagHelperService : AbpTagHelperService<AbpInputTagHelper>
}
}
protected virtual TextArea TryGetTextAreaAttribute(TagHelperOutput output)
protected virtual TextArea? TryGetTextAreaAttribute(TagHelperOutput output)
{
var textAreaAttribute = TagHelper.AspFor.ModelExplorer.GetAttribute<TextArea>();
@ -479,14 +479,14 @@ public class AbpInputTagHelperService : AbpTagHelperService<AbpInputTagHelper>
protected virtual bool IsOutputHidden(TagHelperOutput inputTag)
{
return inputTag.Attributes.Any(a => a.Name.ToLowerInvariant() == "type" && a.Value.ToString().ToLowerInvariant() == "hidden");
return inputTag.Attributes.Any(a => a.Name.ToLowerInvariant() == "type" && a.Value.ToString()!.ToLowerInvariant() == "hidden");
}
protected virtual string GetIdAttributeValue(TagHelperOutput inputTag)
{
var idAttr = inputTag.Attributes.FirstOrDefault(a => a.Name == "id");
return idAttr != null ? idAttr.Value.ToString() : string.Empty;
return idAttr != null ? idAttr.Value.ToString()! : string.Empty;
}
protected virtual string GetIdAttributeAsString(TagHelperOutput inputTag)

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelper.cs

@ -8,15 +8,15 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form;
[HtmlTargetElement("abp-radio")]
public class AbpRadioInputTagHelper : AbpTagHelper<AbpRadioInputTagHelper, AbpRadioInputTagHelperService>
{
public ModelExpression AspFor { get; set; }
public ModelExpression AspFor { get; set; } = default!;
public string Label { get; set; }
public string? Label { get; set; }
public bool? Inline { get; set; }
public bool? Disabled { get; set; }
public IEnumerable<SelectListItem> AspItems { get; set; }
public IEnumerable<SelectListItem>? AspItems { get; set; }
public AbpRadioInputTagHelper(AbpRadioInputTagHelperService tagHelperService)
: base(tagHelperService)

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs

@ -113,12 +113,12 @@ public class AbpRadioInputTagHelperService : AbpTagHelperService<AbpRadioInputTa
var localizer = _tagHelperLocalizer.GetLocalizerOrNull(explorer);
var selectItems = explorer.Metadata.IsEnum ? explorer.ModelType.GetTypeInfo().GetMembers(BindingFlags.Public | BindingFlags.Static)
.Select((t, i) => new SelectListItem { Value = i.ToString(), Text = GetLocalizedPropertyName(localizer, explorer.ModelType, t.Name) }).ToList() : null;
.Select((t, i) => new SelectListItem { Value = i.ToString(), Text = GetLocalizedPropertyName(localizer, explorer.ModelType, t.Name) }).ToList() : new List<SelectListItem>();
return selectItems;
}
protected virtual string GetLocalizedPropertyName(IStringLocalizer localizer, Type enumType, string propertyName)
protected virtual string GetLocalizedPropertyName(IStringLocalizer? localizer, Type enumType, string propertyName)
{
if (localizer == null)
{
@ -159,7 +159,7 @@ public class AbpRadioInputTagHelperService : AbpTagHelperService<AbpRadioInputTa
}
}
protected virtual string GetSelectedValue(TagHelperContext context, TagHelperOutput output)
protected virtual string? GetSelectedValue(TagHelperContext context, TagHelperOutput output)
{
if (TagHelper.AspFor.ModelExplorer.Metadata.IsEnum)
{

28
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelper.cs

@ -8,41 +8,41 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form;
[OutputElementHint("select")]
public class AbpSelectTagHelper : AbpTagHelper<AbpSelectTagHelper, AbpSelectTagHelperService>
{
public ModelExpression AspFor { get; set; }
public ModelExpression AspFor { get; set; } = default!;
public string Label { get; set; }
public string? Label { get; set; }
public bool SuppressLabel { get; set; }
public IEnumerable<SelectListItem> AspItems { get; set; }
public IEnumerable<SelectListItem>? AspItems { get; set; }
public AbpFormControlSize Size { get; set; } = AbpFormControlSize.Default;
[HtmlAttributeName("info")]
public string InfoText { get; set; }
public string? InfoText { get; set; }
[HtmlAttributeName("required-symbol")]
public bool DisplayRequiredSymbol { get; set; } = true;
public string AutocompleteApiUrl { get; set; }
public string? AutocompleteApiUrl { get; set; }
public string AutocompleteItemsPropertyName { get; set; }
public string? AutocompleteItemsPropertyName { get; set; }
public string AutocompleteDisplayPropertyName { get; set; }
public string? AutocompleteDisplayPropertyName { get; set; }
public string AutocompleteValuePropertyName { get; set; }
public string? AutocompleteValuePropertyName { get; set; }
public string AutocompleteFilterParamName { get; set; }
public string? AutocompleteFilterParamName { get; set; }
public string AutocompleteSelectedItemName { get; set; }
public string? AutocompleteSelectedItemName { get; set; }
public string AutocompleteSelectedItemValue { get; set; }
public string? AutocompleteSelectedItemValue { get; set; }
public string AutocompleteParentSelector { get; set; }
public string? AutocompleteParentSelector { get; set; }
public string AllowClear { get; set; }
public string? AllowClear { get; set; }
public string Placeholder { get; set; }
public string? Placeholder { get; set; }
[HtmlAttributeName("floating-label")]

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs

@ -266,7 +266,7 @@ public class AbpSelectTagHelperService : AbpTagHelperService<AbpSelectTagHelper>
if (isNullableType)
{
enumType = Nullable.GetUnderlyingType(explorer.ModelType);
enumType = Nullable.GetUnderlyingType(explorer.ModelType)!;
selectItems.Add(new SelectListItem());
}
@ -279,7 +279,7 @@ public class AbpSelectTagHelperService : AbpTagHelperService<AbpSelectTagHelper>
{
containerLocalizer,
_stringLocalizerFactory.CreateDefaultOrNull()
});
}!);
selectItems.Add(new SelectListItem
{
Value = enumValue.ToString(),
@ -386,7 +386,7 @@ public class AbpSelectTagHelperService : AbpTagHelperService<AbpSelectTagHelper>
{
var idAttr = inputTag.Attributes.FirstOrDefault(a => a.Name == "id");
return idAttr != null ? idAttr.Value.ToString() : string.Empty;
return idAttr != null ? idAttr.Value.ToString()! : string.Empty;
}
protected virtual string GetIdAttributeAsString(TagHelperOutput inputTag)

32
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelper.cs

@ -11,9 +11,9 @@ public abstract class
{
private IAbpDatePickerOptions _abpDatePickerOptionsImplementation;
public string Label { get; set; }
public string? Label { get; set; }
public string LabelTooltip { get; set; }
public string? LabelTooltip { get; set; }
public string LabelTooltipIcon { get; set; } = "bi-info-circle";
@ -22,7 +22,7 @@ public abstract class
public bool LabelTooltipHtml { get; set; } = false;
[HtmlAttributeName("info")]
public string InfoText { get; set; }
public string? InfoText { get; set; }
[HtmlAttributeName("disabled")]
public bool IsDisabled { get; set; } = false;
@ -37,9 +37,9 @@ public abstract class
[HtmlAttributeName("required-symbol")]
public bool DisplayRequiredSymbol { get; set; } = true;
public string Name { get; set; }
public string? Name { get; set; }
public string Value { get; set; }
public string? Value { get; set; }
public bool SuppressLabel { get; set; }
@ -53,7 +53,7 @@ public abstract class
_abpDatePickerOptionsImplementation = options;
}
public string PickerId {
public string? PickerId {
get => _abpDatePickerOptionsImplementation.PickerId;
set => _abpDatePickerOptionsImplementation.PickerId = value;
}
@ -68,7 +68,7 @@ public abstract class
set => _abpDatePickerOptionsImplementation.MaxDate = value;
}
public object MaxSpan {
public object? MaxSpan {
get => _abpDatePickerOptionsImplementation.MaxSpan;
set => _abpDatePickerOptionsImplementation.MaxSpan = value;
}
@ -113,7 +113,7 @@ public abstract class
set => _abpDatePickerOptionsImplementation.TimePickerSeconds = value;
}
public List<AbpDatePickerRange> Ranges {
public List<AbpDatePickerRange>? Ranges {
get => _abpDatePickerOptionsImplementation.Ranges;
set => _abpDatePickerOptionsImplementation.Ranges = value;
}
@ -138,27 +138,27 @@ public abstract class
set => _abpDatePickerOptionsImplementation.Drops = value;
}
public string ButtonClasses {
public string? ButtonClasses {
get => _abpDatePickerOptionsImplementation.ButtonClasses;
set => _abpDatePickerOptionsImplementation.ButtonClasses = value;
}
public string TodayButtonClasses {
public string? TodayButtonClasses {
get => _abpDatePickerOptionsImplementation.TodayButtonClasses;
set => _abpDatePickerOptionsImplementation.TodayButtonClasses = value;
}
public string ApplyButtonClasses {
public string? ApplyButtonClasses {
get => _abpDatePickerOptionsImplementation.ApplyButtonClasses;
set => _abpDatePickerOptionsImplementation.ApplyButtonClasses = value;
}
public string ClearButtonClasses {
public string? ClearButtonClasses {
get => _abpDatePickerOptionsImplementation.ClearButtonClasses;
set => _abpDatePickerOptionsImplementation.ClearButtonClasses = value;
}
public object Locale {
public object? Locale {
get => _abpDatePickerOptionsImplementation.Locale;
set => _abpDatePickerOptionsImplementation.Locale = value;
}
@ -178,12 +178,12 @@ public abstract class
set => _abpDatePickerOptionsImplementation.AutoUpdateInput = value;
}
public string ParentEl {
public string? ParentEl {
get => _abpDatePickerOptionsImplementation.ParentEl;
set => _abpDatePickerOptionsImplementation.ParentEl = value;
}
public string DateFormat {
public string? DateFormat {
get => _abpDatePickerOptionsImplementation.DateFormat;
set => _abpDatePickerOptionsImplementation.DateFormat = value;
}
@ -213,7 +213,7 @@ public abstract class
set => _abpDatePickerOptionsImplementation.IsIso = value;
}
public object Options {
public object? Options {
get => _abpDatePickerOptionsImplementation.Options;
set => _abpDatePickerOptionsImplementation.Options = value;
}

48
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs

@ -46,7 +46,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
return string.Empty;
}
},
{typeof(DateTime?), o => ((DateTime?) o)?.ToString("O")},
{typeof(DateTime?), o => ((DateTime?) o)?.ToString("O")!},
{
typeof(DateTimeOffset), o =>
{
@ -58,7 +58,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
return string.Empty;
}
},
{typeof(DateTimeOffset?), o => ((DateTimeOffset?) o)?.ToString("O")}
{typeof(DateTimeOffset?), o => ((DateTimeOffset?) o)?.ToString("O")!}
};
protected readonly IJsonSerializer JsonSerializer;
@ -85,12 +85,12 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
InputTagHelper = new InputTagHelper(Generator) { InputTypeName = "text" };
}
protected virtual T GetAttribute<T>() where T : Attribute
protected virtual T? GetAttribute<T>() where T : Attribute
{
return GetAttributeAndModelExpression<T>(out _);
}
protected abstract T GetAttributeAndModelExpression<T>(out ModelExpression modelExpression) where T : Attribute;
protected abstract T? GetAttributeAndModelExpression<T>(out ModelExpression? modelExpression) where T : Attribute;
public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
@ -118,7 +118,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
var optionsAttribute = GetAttributeAndModelExpression<DatePickerOptionsAttribute>(out var modelExpression);
if (optionsAttribute != null)
{
TagHelper.SetDatePickerOptions(optionsAttribute.GetDatePickerOptions(modelExpression.ModelExplorer));
TagHelper.SetDatePickerOptions(optionsAttribute.GetDatePickerOptions(modelExpression!.ModelExplorer)!);
}
// Open and close button
@ -250,7 +250,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
return string.Empty;
}
protected TagHelperAttributeList ConvertDatePickerOptionsToAttributeList(IAbpDatePickerOptions options)
protected TagHelperAttributeList ConvertDatePickerOptionsToAttributeList(IAbpDatePickerOptions? options)
{
var attrList = new TagHelperAttributeList();
@ -281,7 +281,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
if (options.ShowDropdowns == false)
{
attrList.Add("data-show-dropdowns", options.ShowDropdowns.ToString().ToLowerInvariant());
attrList.Add("data-show-dropdowns", options.ShowDropdowns.ToString()!.ToLowerInvariant());
}
if (options.MinYear != null)
@ -306,7 +306,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
if (options.TimePicker != null)
{
attrList.Add("data-time-picker", options.TimePicker.ToString().ToLowerInvariant());
attrList.Add("data-time-picker", options.TimePicker.ToString()!.ToLowerInvariant());
}
if (options.TimePickerIncrement != null)
@ -316,12 +316,12 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
if (options.TimePicker24Hour != null)
{
attrList.Add("data-time-picker24-hour", options.TimePicker24Hour.ToString().ToLowerInvariant());
attrList.Add("data-time-picker24-hour", options.TimePicker24Hour.ToString()!.ToLowerInvariant());
}
if (options.TimePickerSeconds != null)
{
attrList.Add("data-time-picker-seconds", options.TimePickerSeconds.ToString().ToLowerInvariant());
attrList.Add("data-time-picker-seconds", options.TimePickerSeconds.ToString()!.ToLowerInvariant());
}
if (options.Opens != AbpDatePickerOpens.Center)
@ -356,17 +356,17 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
if (options.AutoApply != null)
{
attrList.Add("data-auto-apply", options.AutoApply.ToString().ToLowerInvariant());
attrList.Add("data-auto-apply", options.AutoApply.ToString()!.ToLowerInvariant());
}
if (options.LinkedCalendars != null)
{
attrList.Add("data-linked-calendars", options.LinkedCalendars.ToString().ToLowerInvariant());
attrList.Add("data-linked-calendars", options.LinkedCalendars.ToString()!.ToLowerInvariant());
}
if (options.AutoUpdateInput != null)
{
attrList.Add("data-auto-update-input", options.AutoUpdateInput.ToString().ToLowerInvariant());
attrList.Add("data-auto-update-input", options.AutoUpdateInput.ToString()!.ToLowerInvariant());
}
if (!options.ParentEl.IsNullOrEmpty())
@ -388,12 +388,12 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
if(options.AlwaysShowCalendars != null)
{
attrList.Add("data-always-show-calendars", options.AlwaysShowCalendars.ToString().ToLowerInvariant());
attrList.Add("data-always-show-calendars", options.AlwaysShowCalendars.ToString()!.ToLowerInvariant());
}
if(options.ShowCustomRangeLabel == false)
{
attrList.Add("data-show-custom-range-label", options.ShowCustomRangeLabel.ToString().ToLowerInvariant());
attrList.Add("data-show-custom-range-label", options.ShowCustomRangeLabel.ToString()!.ToLowerInvariant());
}
if(options.Options != null)
@ -403,12 +403,12 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
if (options.IsUtc != null)
{
attrList.Add("data-is-utc", options.IsUtc.ToString().ToLowerInvariant());
attrList.Add("data-is-utc", options.IsUtc.ToString()!.ToLowerInvariant());
}
if (options.IsIso != null)
{
attrList.Add("data-is-iso", options.IsIso.ToString().ToLowerInvariant());
attrList.Add("data-is-iso", options.IsIso.ToString()!.ToLowerInvariant());
}
if (!options.PickerId.IsNullOrWhiteSpace())
@ -481,7 +481,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
}
string text;
ModelExplorer modelExplorer = null;
ModelExplorer? modelExplorer = null;
if (!string.IsNullOrEmpty(TagHelper.InfoText))
{
@ -492,7 +492,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
var infoAttribute = GetAttributeAndModelExpression<InputInfoText>(out var modelExpression);
if (infoAttribute != null)
{
modelExplorer = modelExpression.ModelExplorer;
modelExplorer = modelExpression!.ModelExplorer;
text = infoAttribute.Text;
}
else
@ -502,7 +502,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
}
var idAttr = inputTag.Attributes.FirstOrDefault(a => a.Name == "id");
modelExplorer ??= GetModelExpression().ModelExplorer;
modelExplorer ??= GetModelExpression()!.ModelExplorer;
var localizedText = TagHelperLocalizer.GetLocalizedText(text, modelExplorer);
var div = new TagBuilder("div");
@ -553,7 +553,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
{
var idAttr = inputTag.Attributes.FirstOrDefault(a => a.Name == "id");
return idAttr != null ? idAttr.Value.ToString() : string.Empty;
return idAttr != null ? idAttr.Value.ToString()! : string.Empty;
}
protected virtual string GetRequiredSymbol(TagHelperContext context, TagHelperOutput output)
@ -568,7 +568,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
return GetAttribute<RequiredAttribute>() != null || isHaveRequiredAttribute ? "<span> * </span>" : "";
}
protected abstract ModelExpression GetModelExpression();
protected abstract ModelExpression? GetModelExpression();
protected virtual async Task<string> GetLabelAsHtmlUsingTagHelperAsync(TagHelperContext context,
TagHelperOutput output)
@ -651,7 +651,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
if (infoAttribute != null)
{
return TagHelperLocalizer.GetLocalizedText(infoAttribute.Text, modelExpression.ModelExplorer);
return TagHelperLocalizer.GetLocalizedText(infoAttribute.Text, modelExpression!.ModelExplorer);
}
return string.Empty;
@ -669,7 +669,7 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
if (attribute != null)
{
var placeholderLocalized =
TagHelperLocalizer.GetLocalizedText(attribute.Value, modelExpression.ModelExplorer);
TagHelperLocalizer.GetLocalizedText(attribute.Value, modelExpression!.ModelExplorer);
inputTagHelperOutput.Attributes.Add("placeholder", placeholderLocalized);
}

22
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs

@ -5,10 +5,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker;
public class AbpDatePickerOptions : IAbpDatePickerOptions
{
public string PickerId { get; set; }
public string? PickerId { get; set; }
public DateTime? MinDate { get; set; }
public DateTime? MaxDate { get; set; }
public object MaxSpan { get; set; }
public object? MaxSpan { get; set; }
public bool? ShowDropdowns { get; set; }
public int? MinYear { get; set; }
public int? MaxYear { get; set; }
@ -17,25 +17,25 @@ public class AbpDatePickerOptions : IAbpDatePickerOptions
public int? TimePickerIncrement { get; set; }
public bool? TimePicker24Hour { get; set; }
public bool? TimePickerSeconds { get; set; }
public List<AbpDatePickerRange> Ranges { get; set; }
public List<AbpDatePickerRange>? Ranges { get; set; }
public bool? ShowCustomRangeLabel { get; set; }
public bool? AlwaysShowCalendars { get; set; }
public AbpDatePickerOpens Opens { get; set; } = AbpDatePickerOpens.Center;
public AbpDatePickerDrops Drops { get; set; } = AbpDatePickerDrops.Down;
public string ButtonClasses { get; set; }
public string TodayButtonClasses { get; set; }
public string ApplyButtonClasses { get; set; }
public string ClearButtonClasses { get; set; }
public object Locale { get; set; }
public string? ButtonClasses { get; set; }
public string? TodayButtonClasses { get; set; }
public string? ApplyButtonClasses { get; set; }
public string? ClearButtonClasses { get; set; }
public object? Locale { get; set; }
public bool? AutoApply { get; set; }
public bool? LinkedCalendars { get; set; }
public bool? AutoUpdateInput { get; set; }
public string ParentEl { get; set; }
public string DateFormat { get; set; }
public string? ParentEl { get; set; }
public string? DateFormat { get; set; }
public bool OpenButton { get; set; } = true;
public bool ClearButton { get; set; } = true;
public bool SingleOpenAndClearButton { get; set; } = true;
public bool? IsUtc { get; set; }
public bool? IsIso { get; set; }
public object Options { get; set; }
public object? Options { get; set; }
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerRange.cs

@ -6,7 +6,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker;
public class AbpDatePickerRange
{
private readonly List<string> _dates = new List<string>();
public string Label { get; set; }
public string Label { get; set; } = default!;
public IReadOnlyList<string> Dates => _dates;
public AbpDatePickerRange()

3
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelper.cs

@ -7,8 +7,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker;
[HtmlTargetElement("abp-date-picker", TagStructure = TagStructure.NormalOrSelfClosing)]
public class AbpDatePickerTagHelper : AbpDatePickerBaseTagHelper<AbpDatePickerTagHelper>
{
[CanBeNull]
public ModelExpression AspFor { get; set; }
public ModelExpression? AspFor { get; set; }
public AbpDatePickerTagHelper(AbpDatePickerTagHelperService service) : base(service)
{

14
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs

@ -19,19 +19,17 @@ public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService<A
}
protected override TagHelperOutput TagHelperOutput { get; set; }
protected override TagHelperOutput TagHelperOutput { get; set; } = default!;
[CanBeNull]
protected virtual InputTagHelper DateTagHelper { get; set; }
protected virtual InputTagHelper? DateTagHelper { get; set; }
[CanBeNull]
protected virtual TagHelperOutput DateTagHelperOutput { get; set; }
protected virtual TagHelperOutput? DateTagHelperOutput { get; set; }
protected override string GetPropertyName()
{
return TagHelper.AspFor?.Name ?? string.Empty;
}
protected override T GetAttributeAndModelExpression<T>(out ModelExpression modelExpression)
protected override T? GetAttributeAndModelExpression<T>(out ModelExpression? modelExpression) where T : class
{
modelExpression = TagHelper.AspFor;
return modelExpression?.ModelExplorer.GetAttribute<T>();
@ -74,7 +72,7 @@ public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService<A
}
}
protected override ModelExpression GetModelExpression()
protected override ModelExpression? GetModelExpression()
{
return TagHelper.AspFor;
}
@ -86,6 +84,6 @@ public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService<A
protected override string GetExtraInputHtml(TagHelperContext context, TagHelperOutput output)
{
return DateTagHelperOutput?.Render(Encoder);
return DateTagHelperOutput?.Render(Encoder)!;
}
}

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelper.cs

@ -7,11 +7,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker;
[HtmlTargetElement("abp-date-range-picker", TagStructure = TagStructure.NormalOrSelfClosing)]
public class AbpDateRangePickerTagHelper : AbpDatePickerBaseTagHelper<AbpDateRangePickerTagHelper>
{
[CanBeNull]
public ModelExpression AspForStart { get; set; }
public ModelExpression? AspForStart { get; set; }
[CanBeNull]
public ModelExpression AspForEnd { get; set; }
public ModelExpression? AspForEnd { get; set; }
public AbpDateRangePickerTagHelper(AbpDateRangePickerTagHelperService tagHelperService) :
base(tagHelperService)

18
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs

@ -25,7 +25,7 @@ public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperServ
protected override string TagName { get; set; } = "abp-date-range-picker";
protected override T GetAttributeAndModelExpression<T>(out ModelExpression modelExpression)
protected override T? GetAttributeAndModelExpression<T>(out ModelExpression? modelExpression) where T : class
{
modelExpression = new[] { TagHelper.AspForStart, TagHelper.AspForEnd }.FirstOrDefault(x => x?.ModelExplorer?.GetAttribute<T>() != null);
return modelExpression?.ModelExplorer.GetAttribute<T>();
@ -62,19 +62,15 @@ public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperServ
await base.ProcessAsync(context, output);
}
protected override TagHelperOutput TagHelperOutput { get; set; }
protected override TagHelperOutput TagHelperOutput { get; set; } = default!;
[CanBeNull]
protected virtual InputTagHelper StartDateTagHelper { get; set; }
protected virtual InputTagHelper? StartDateTagHelper { get; set; }
[CanBeNull]
protected virtual TagHelperOutput StartDateTagHelperOutput { get; set; }
protected virtual TagHelperOutput? StartDateTagHelperOutput { get; set; }
[CanBeNull]
protected virtual InputTagHelper EndDateTagHelper { get; set; }
protected virtual InputTagHelper? EndDateTagHelper { get; set; }
[CanBeNull]
protected virtual TagHelperOutput EndDateTagHelperOutput { get; set; }
protected virtual TagHelperOutput? EndDateTagHelperOutput { get; set; }
protected override string GetPropertyName()
{
@ -108,7 +104,7 @@ public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperServ
return StartDateTagHelperOutput?.Render(Encoder) + EndDateTagHelperOutput?.Render(Encoder);
}
protected override ModelExpression GetModelExpression()
protected override ModelExpression? GetModelExpression()
{
return TagHelper.AspForStart;
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs

@ -14,7 +14,7 @@ public class DatePickerOptionsAttribute : Attribute
DatePickerOptionsPropertyName = datePickerOptionsPropertyName;
}
public IAbpDatePickerOptions GetDatePickerOptions(ModelExplorer explorer)
public IAbpDatePickerOptions? GetDatePickerOptions(ModelExplorer explorer)
{
var properties = explorer.Container.Properties.Where(p => p.Metadata.PropertyName != null && p.Metadata.PropertyName.Equals(DatePickerOptionsPropertyName)).ToList();

29
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs

@ -6,7 +6,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker;
public interface IAbpDatePickerOptions
{
public string PickerId { get; set; }
public string? PickerId { get; set; }
/// <summary>
/// Min date allowed
@ -21,7 +21,7 @@ public interface IAbpDatePickerOptions
/// <summary>
/// The maximum span between the selected start and end dates. Can have any property you can add to a moment object (i.e. days, months)
/// </summary>
object MaxSpan { get; set; }
object? MaxSpan { get; set; }
/// <summary>
/// Show year and month select boxes above calendars to jump to a specific month and year.
@ -66,7 +66,7 @@ public interface IAbpDatePickerOptions
/// <summary>
/// Set predefined date ranges the user can select from. Each key is the label for the range, and its value an array with two dates representing the bounds of the range.
/// </summary>
List<AbpDatePickerRange> Ranges { get; set; }
List<AbpDatePickerRange>? Ranges { get; set; }
/// <summary>
/// Displays "Custom Range" at the end of the list of predefined ranges, when the ranges option is used. This option will be highlighted whenever the current date range selection does not match one of the predefined ranges. Clicking it will display the calendars to select a new range.
@ -91,32 +91,28 @@ public interface IAbpDatePickerOptions
/// <summary>
/// CSS class names that will be added to both the today, clear, and apply buttons.
/// </summary>
[CanBeNull]
string ButtonClasses { get; set; }
string? ButtonClasses { get; set; }
/// <summary>
/// CSS class names that will be added only to the today button.
/// </summary>
[CanBeNull]
string TodayButtonClasses { get; set; }
string? TodayButtonClasses { get; set; }
/// <summary>
/// CSS class names that will be added only to the apply button.
/// </summary>
[CanBeNull]
string ApplyButtonClasses { get; set; }
string? ApplyButtonClasses { get; set; }
/// <summary>
/// CSS class names that will be added only to the clear button.
/// </summary>
[CanBeNull]
string ClearButtonClasses { get; set; }
string? ClearButtonClasses { get; set; }
/// <summary>
/// Allows you to provide localized strings for buttons and labels, customize the date format, and change the first day of week for the calendars.
/// </summary>
[CanBeNull]
object Locale { get; set; }
object? Locale { get; set; }
/// <summary>
/// Hide the apply button, and automatically apply a new date range as soon as two dates are clicked.
@ -136,11 +132,9 @@ public interface IAbpDatePickerOptions
/// <summary>
/// jQuery selector of the parent element that the date range picker will be added to, if not provided this will be 'body'
/// </summary>
[CanBeNull]
string ParentEl { get; set; }
string? ParentEl { get; set; }
[CanBeNull]
string DateFormat { get; set; }
string? DateFormat { get; set; }
bool OpenButton { get; set; }
@ -155,6 +149,5 @@ public interface IAbpDatePickerOptions
/// <summary>
/// Other non-mapped attributes will be automatically added to the input element as is.
/// </summary>
[CanBeNull]
object Options { get; set; }
object? Options { get; set; }
}

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/FormGroupItem.cs

@ -2,9 +2,9 @@
public class FormGroupItem
{
public string HtmlContent { get; set; }
public string HtmlContent { get; set; } = default!;
public int Order { get; set; }
public string PropertyName { get; set; }
public string PropertyName { get; set; } = default!;
}

8
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/SelectItems.cs

@ -16,9 +16,9 @@ public class SelectItems : Attribute
ItemsListPropertyName = itemsListPropertyName;
}
public IEnumerable<SelectListItem> GetItems(ModelExplorer explorer)
public IEnumerable<SelectListItem>? GetItems(ModelExplorer explorer)
{
var properties = explorer.Container.Properties.Where(p => p.Metadata.PropertyName.Equals(ItemsListPropertyName)).ToList();
var properties = explorer.Container.Properties.Where(p => p.Metadata.PropertyName!.Equals(ItemsListPropertyName)).ToList();
while (properties.Count == 0)
{
@ -28,10 +28,10 @@ public class SelectItems : Attribute
return null;
}
properties = explorer.Container.Properties.Where(p => p.Metadata.PropertyName.Equals(ItemsListPropertyName)).ToList();
properties = explorer.Container.Properties.Where(p => p.Metadata.PropertyName!.Equals(ItemsListPropertyName)).ToList();
}
var selectItems = (properties.First().Model as IEnumerable<SelectListItem>).ToList();
var selectItems = (properties.First().Model as IEnumerable<SelectListItem>)!.ToList();
return selectItems;
}

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/IAbpTagHelperLocalizer.cs

@ -10,7 +10,7 @@ public interface IAbpTagHelperLocalizer : ITransientDependency
{
string GetLocalizedText(string text, ModelExplorer explorer);
IStringLocalizer GetLocalizerOrNull(ModelExplorer explorer);
IStringLocalizer? GetLocalizerOrNull(ModelExplorer explorer);
IStringLocalizer GetLocalizerOrNull(Assembly assembly);
IStringLocalizer? GetLocalizerOrNull(Assembly assembly);
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/ListGroup/AbpListGroupItemTagHelper.cs

@ -6,7 +6,7 @@ public class AbpListGroupItemTagHelper : AbpTagHelper<AbpListGroupItemTagHelper,
public bool? Disabled { get; set; }
public string Href { get; set; }
public string? Href { get; set; }
public AbpListItemTagType TagType { get; set; } = AbpListItemTagType.Default;

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalHeaderTagHelper.cs

@ -2,7 +2,7 @@
public class AbpModalHeaderTagHelper : AbpTagHelper<AbpModalHeaderTagHelper, AbpModalHeaderTagHelperService>
{
public string Title { get; set; }
public string Title { get; set; } = default!;
public AbpModalHeaderTagHelper(AbpModalHeaderTagHelperService tagHelperService)
: base(tagHelperService)

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Nav/AbpNavbarToggleTagHelper.cs

@ -2,7 +2,7 @@
public class AbpNavbarToggleTagHelper : AbpTagHelper<AbpNavbarToggleTagHelper, AbpNavbarToggleTagHelperService>
{
public string Id { get; set; }
public string? Id { get; set; }
public AbpNavbarToggleTagHelper(AbpNavbarToggleTagHelperService tagHelperService)
: base(tagHelperService)

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Nav/NavItem.cs

@ -2,7 +2,7 @@
public class NavItem
{
public string Html { get; set; }
public string Html { get; set; } = default!;
public bool Active { get; set; }
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelper.cs

@ -7,7 +7,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination;
[HtmlTargetElement("abp-paginator")]
public class AbpPaginationTagHelper : AbpTagHelper<AbpPaginationTagHelper, AbpPaginationTagHelperService>
{
public PagerModel Model { get; set; }
public PagerModel Model { get; set; } = default!;
public bool? ShowInfo { get; set; }

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/PageItem.cs

@ -16,7 +16,7 @@ public class PageItem
IsGap = isGap;
}
public override bool Equals(object obj)
public override bool Equals(object? obj)
{
if (!(obj is PageItem item))
{

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/PagerModel.cs

@ -25,13 +25,13 @@ public class PagerModel
public int NextPage { get; set; }
public string Sort { get; set; }
public string? Sort { get; set; }
public string PageUrl { get; set; }
private const int MaxItemsCountToShowAllPages = 4;
public PagerModel(long totalCount, int shownItemsCount, int currentPage, int pageSize, string pageUrl, string sort = null)
public PagerModel(long totalCount, int shownItemsCount, int currentPage, int pageSize, string pageUrl, string? sort = null)
{
TotalItemsCount = totalCount;
ShownItemsCount = shownItemsCount;

10
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Popover/AbpPopoverTagHelper.cs

@ -20,15 +20,15 @@ public class AbpPopoverTagHelper : AbpTagHelper<AbpPopoverTagHelper, AbpPopoverT
public bool? Hoverable { get; set; }
public string AbpPopover { get; set; }
public string? AbpPopover { get; set; }
public string AbpPopoverRight { get; set; }
public string? AbpPopoverRight { get; set; }
public string AbpPopoverLeft { get; set; }
public string? AbpPopoverLeft { get; set; }
public string AbpPopoverTop { get; set; }
public string? AbpPopoverTop { get; set; }
public string AbpPopoverBottom { get; set; }
public string? AbpPopoverBottom { get; set; }
public AbpPopoverTagHelper(AbpPopoverTagHelperService tagHelperService)
: base(tagHelperService)

10
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Popover/AbpPopoverTagHelperService.cs

@ -124,15 +124,15 @@ public class AbpPopoverTagHelperService : AbpTagHelperService<AbpPopoverTagHelpe
switch (GetDirectory())
{
case PopoverDirectory.Top:
return TagHelper.AbpPopoverTop;
return TagHelper.AbpPopoverTop!;
case PopoverDirectory.Right:
return TagHelper.AbpPopoverRight;
return TagHelper.AbpPopoverRight!;
case PopoverDirectory.Bottom:
return TagHelper.AbpPopoverBottom;
return TagHelper.AbpPopoverBottom!;
case PopoverDirectory.Left:
return TagHelper.AbpPopoverLeft;
return TagHelper.AbpPopoverLeft!;
default:
return TagHelper.AbpPopover;
return TagHelper.AbpPopover!;
}
}

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabDropdownTagHelper.cs

@ -5,9 +5,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab;
[HtmlTargetElement("abp-tab-dropdown")]
public class AbpTabDropdownTagHelper : AbpTagHelper<AbpTabDropdownTagHelper, AbpTabDropdownTagHelperService>
{
public string Name { get; set; }
public string? Name { get; set; }
public string Title { get; set; }
public string Title { get; set; } = default!;
public AbpTabDropdownTagHelper(AbpTabDropdownTagHelperService tagHelperService)
: base(tagHelperService)

8
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabLinkTagHelper.cs

@ -5,13 +5,13 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab;
[HtmlTargetElement("abp-tab-link", TagStructure = TagStructure.WithoutEndTag)]
public class AbpTabLinkTagHelper : AbpTagHelper<AbpTabLinkTagHelper, AbpTabLinkTagHelperService>
{
public string Name { get; set; }
public string? Name { get; set; }
public string Title { get; set; }
public string Title { get; set; } = default!;
public string ParentDropdownName { get; set; }
public string? ParentDropdownName { get; set; }
public string Href { get; set; }
public string Href { get; set; } = default!;
public AbpTabLinkTagHelper(AbpTabLinkTagHelperService tagHelperService)
: base(tagHelperService)

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabLinkTagHelperService.cs

@ -16,7 +16,7 @@ public class AbpTabLinkTagHelperService : AbpTagHelperService<AbpTabLinkTagHelpe
var tabHeaderItems = context.GetValue<List<TabItem>>(TabItems);
tabHeaderItems.Add(new TabItem(tabHeader, "", false, TagHelper.Name, TagHelper.ParentDropdownName, false));
tabHeaderItems.Add(new TabItem(tabHeader, "", false, TagHelper.Name!, TagHelper.ParentDropdownName, false));
output.SuppressOutput();

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelper.cs

@ -5,13 +5,13 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab;
[HtmlTargetElement("abp-tab")]
public class AbpTabTagHelper : AbpTagHelper<AbpTabTagHelper, AbpTabTagHelperService>
{
public string Name { get; set; }
public string? Name { get; set; }
public string Title { get; set; }
public string Title { get; set; } = default!;
public bool? Active { get; set; }
public string ParentDropdownName { get; set; }
public string? ParentDropdownName { get; set; }
public AbpTabTagHelper(AbpTabTagHelperService tagHelperService)
: base(tagHelperService)

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs

@ -21,7 +21,7 @@ public class AbpTabTagHelperService : AbpTagHelperService<AbpTabTagHelper>
var active = TagHelper.Active ?? false;
tabHeaderItems.Add(new TabItem(tabHeader, tabContent, active, TagHelper.Name, TagHelper.ParentDropdownName, false));
tabHeaderItems.Add(new TabItem(tabHeader, tabContent, active, TagHelper.Name!, TagHelper.ParentDropdownName, false));
output.SuppressOutput();
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabsTagHelper.cs

@ -5,7 +5,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab;
public class AbpTabsTagHelper : AbpTagHelper<AbpTabsTagHelper, AbpTabsTagHelperService>
{
public string Name { get; set; }
public string? Name { get; set; }
public TabStyle TabStyle { get; set; } = TabStyle.Tab;

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/TabItem.cs

@ -2,7 +2,7 @@
public class TabItem
{
public TabItem(string header, string content, bool active, string id, string parentId, bool isDropdown)
public TabItem(string header, string content, bool active, string id, string? parentId, bool isDropdown)
{
Header = header;
Content = content;
@ -22,5 +22,5 @@ public class TabItem
public string Id { get; set; }
public string ParentId { get; set; }
public string? ParentId { get; set; }
}

12
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/AbpTooltipTagHelper.cs

@ -14,17 +14,17 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tooltip;
[HtmlTargetElement("abp-button", Attributes = "abp-tooltip-bottom")]
public class AbpTooltipTagHelper : AbpTagHelper<AbpTooltipTagHelper, AbpTooltipTagHelperService>
{
public string AbpTooltip { get; set; }
public string? AbpTooltip { get; set; }
public string AbpTooltipRight { get; set; }
public string? AbpTooltipRight { get; set; }
public string AbpTooltipLeft { get; set; }
public string? AbpTooltipLeft { get; set; }
public string AbpTooltipTop { get; set; }
public string? AbpTooltipTop { get; set; }
public string AbpTooltipBottom { get; set; }
public string? AbpTooltipBottom { get; set; }
public string Title { get; set; }
public string? Title { get; set; }
public AbpTooltipTagHelper(AbpTooltipTagHelperService tagHelperService)
: base(tagHelperService)

10
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tooltip/AbpTooltipTagHelperService.cs

@ -59,15 +59,15 @@ public class AbpTooltipTagHelperService : AbpTagHelperService<AbpTooltipTagHelpe
switch (GetDirectory())
{
case TooltipDirectory.Top:
return TagHelper.AbpTooltipTop;
return TagHelper.AbpTooltipTop!;
case TooltipDirectory.Right:
return TagHelper.AbpTooltipRight;
return TagHelper.AbpTooltipRight!;
case TooltipDirectory.Bottom:
return TagHelper.AbpTooltipBottom;
return TagHelper.AbpTooltipBottom!;
case TooltipDirectory.Left:
return TagHelper.AbpTooltipLeft;
return TagHelper.AbpTooltipLeft!;
default:
return TagHelper.AbpTooltip;
return TagHelper.AbpTooltip!;
}
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<AssemblyName>Volo.Abp.AspNetCore.Mvc.UI.Bootstrap</AssemblyName>
<PackageId>Volo.Abp.AspNetCore.Mvc.UI.Bootstrap</PackageId>

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<RootNamespace />
</PropertyGroup>

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs

@ -27,7 +27,7 @@ public class BundleConfigurationCollection
/// <returns>Returns this object for chained calls.</returns>
public BundleConfigurationCollection Add(
[NotNull] string bundleName,
[CanBeNull] Action<BundleConfiguration> configureAction = null)
Action<BundleConfiguration>? configureAction = null)
{
if (!TryAdd(bundleName, configureAction))
{
@ -52,7 +52,7 @@ public class BundleConfigurationCollection
/// <returns>Returns true if added. Returns false if it's already added before.</returns>
public bool TryAdd(
[NotNull] string bundleName,
[CanBeNull] Action<BundleConfiguration> configureAction = null,
Action<BundleConfiguration>? configureAction = null,
bool overrideIfExists = false)
{
Check.NotNull(bundleName, nameof(bundleName));
@ -78,7 +78,7 @@ public class BundleConfigurationCollection
return true;
}
private BundleConfiguration CreateBundle(string bundleName, Action<BundleConfiguration> configureAction)
private BundleConfiguration CreateBundle(string bundleName, Action<BundleConfiguration>? configureAction)
{
var bundle = new BundleConfiguration(bundleName);

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

Loading…
Cancel
Save