From ab0451ef99e4f5ca3be040cd5def479ebb9319cb Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 7 Jul 2023 16:06:18 +0800 Subject: [PATCH] Enable nullable annotations for Volo.Abp.AspNetCore.Components.Web.Theming --- .../Components/DynamicLayoutComponent.razor.cs | 2 +- .../Components/LayoutHooks/LayoutHook.razor.cs | 8 ++++---- .../Layout/PageHeader.razor.cs | 10 +++++----- .../Layout/PageLayout.cs | 12 ++++++------ .../PageToolbars/PageToolbarExtensions.cs | 16 ++++++++-------- .../PageToolbars/PageToolbarItem.cs | 5 ++--- .../PageToolbars/SimplePageToolbarContributor.cs | 8 ++++---- .../Routing/AbpRouterOptions.cs | 2 +- .../Theming/AbpThemingOptions.cs | 2 +- .../Theming/DefaultThemeManager.cs | 2 +- .../Toolbars/IToolbarConfigurationContext.cs | 3 +-- .../Toolbars/ToolbarConfigurationContext.cs | 3 +-- .../Toolbars/ToolbarItem.cs | 2 +- ....Abp.AspNetCore.Components.Web.Theming.csproj | 2 ++ .../Abp/Ui/LayoutHooks/LayoutHookViewModel.cs | 4 ++-- 15 files changed, 40 insertions(+), 41 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/DynamicLayoutComponent.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/DynamicLayoutComponent.razor.cs index 3c4d68178e..4363b674c0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/DynamicLayoutComponent.razor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/DynamicLayoutComponent.razor.cs @@ -6,5 +6,5 @@ namespace Volo.Abp.AspNetCore.Components.Web.Theming.Components; public partial class DynamicLayoutComponent : ComponentBase { [Inject] - protected IOptions AbpDynamicLayoutComponentOptions { get; set; } + protected IOptions AbpDynamicLayoutComponentOptions { get; set; } = default!; } \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/LayoutHooks/LayoutHook.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/LayoutHooks/LayoutHook.razor.cs index 729b990f34..f5ce191f20 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/LayoutHooks/LayoutHook.razor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/LayoutHooks/LayoutHook.razor.cs @@ -10,15 +10,15 @@ namespace Volo.Abp.AspNetCore.Components.Web.Theming.Components.LayoutHooks; public partial class LayoutHook : ComponentBase { [Parameter] - public string Name { get; set; } + public string Name { get; set; } = default!; [Parameter] - public string Layout { get; set; } + public string? Layout { get; set; } [Inject] - protected IOptions LayoutHookOptions { get; set; } + protected IOptions LayoutHookOptions { get; set; } = default!; - protected LayoutHookViewModel LayoutHookViewModel { get; private set; } + protected LayoutHookViewModel LayoutHookViewModel { get; private set; } = default!; protected override Task OnInitializedAsync() { diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs index ea0b810765..91485d5bf8 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs @@ -13,13 +13,13 @@ public partial class PageHeader : ComponentBase { protected List ToolbarItemRenders { get; set; } - public IPageToolbarManager PageToolbarManager { get; set; } + public IPageToolbarManager PageToolbarManager { get; set; } = default!; [Inject] - public PageLayout PageLayout { get; private set; } + public PageLayout PageLayout { get; private set; } = default!; [Parameter] // TODO: Consider removing this property in future and use only PageLayout. - public string Title { get => PageLayout.Title; set => PageLayout.Title = value; } + public string? Title { get => PageLayout.Title; set => PageLayout.Title = value; } [Parameter] public bool BreadcrumbShowHome { get; set; } = true; @@ -28,7 +28,7 @@ public partial class PageHeader : ComponentBase public bool BreadcrumbShowCurrent { get; set; } = true; [Parameter] - public RenderFragment ChildContent { get; set; } + public RenderFragment ChildContent { get; set; } = default!; [Parameter] // TODO: Consider removing this property in future and use only PageLayout. public List BreadcrumbItems { @@ -44,7 +44,7 @@ public partial class PageHeader : ComponentBase } [Parameter] - public PageToolbar Toolbar { get; set; } + public PageToolbar? Toolbar { get; set; } public PageHeader() { diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageLayout.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageLayout.cs index 4d04bd2ad7..077ca5b32c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageLayout.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageLayout.cs @@ -9,10 +9,10 @@ namespace Volo.Abp.AspNetCore.Components.Web.Theming.Layout; public class PageLayout : IScopedDependency, INotifyPropertyChanged { - private string title; + private string? title; // TODO: Consider using this property for setting Page Title too. - public virtual string Title { + public virtual string? Title { get => title; set { title = value; @@ -20,9 +20,9 @@ public class PageLayout : IScopedDependency, INotifyPropertyChanged } } - private string menuItemName; + private string? menuItemName; - public string MenuItemName { + public string? MenuItemName { get => menuItemName; set { @@ -35,9 +35,9 @@ public class PageLayout : IScopedDependency, INotifyPropertyChanged public virtual ObservableCollection ToolbarItems { get; } = new(); - public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; - protected void OnPropertyChanged([CallerMemberName] string propertyName = null) + protected void OnPropertyChanged([CallerMemberName] string? propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarExtensions.cs index 9d9448d281..673c004fdb 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarExtensions.cs @@ -11,9 +11,9 @@ public static class PageToolbarExtensions { public static PageToolbar AddComponent( this PageToolbar toolbar, - Dictionary arguments = null, + Dictionary? arguments = null, int order = 0, - string requiredPolicyName = null) + string? requiredPolicyName = null) { return toolbar.AddComponent( typeof(TComponent), @@ -26,9 +26,9 @@ public static class PageToolbarExtensions public static PageToolbar AddComponent( this PageToolbar toolbar, Type componentType, - Dictionary arguments = null, + Dictionary? arguments = null, int order = 0, - string requiredPolicyName = null) + string? requiredPolicyName = null) { toolbar.Contributors.Add( new SimplePageToolbarContributor( @@ -46,14 +46,14 @@ public static class PageToolbarExtensions this PageToolbar toolbar, string text, Func clicked, - object icon = null, - Color color = null, + object? icon = null, + Color? color = null, bool disabled = false, int order = 0, - string requiredPolicyName = null) + string? requiredPolicyName = null) { toolbar.AddComponent( - new Dictionary + new Dictionary { { nameof(ToolbarButton.Color), color ?? Color.Primary}, { nameof(ToolbarButton.Text), text}, diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarItem.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarItem.cs index f62d770403..3e38fb9b1a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarItem.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarItem.cs @@ -9,14 +9,13 @@ public class PageToolbarItem [NotNull] public Type ComponentType { get; } - [CanBeNull] - public Dictionary Arguments { get; set; } + public Dictionary? Arguments { get; set; } public int Order { get; set; } public PageToolbarItem( [NotNull] Type componentType, - [CanBeNull] Dictionary arguments = null, + Dictionary? arguments = null, int order = 0) { ComponentType = Check.NotNull(componentType, nameof(componentType)); diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/SimplePageToolbarContributor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/SimplePageToolbarContributor.cs index d31b12e73c..647538c121 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/SimplePageToolbarContributor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/SimplePageToolbarContributor.cs @@ -10,17 +10,17 @@ public class SimplePageToolbarContributor : IPageToolbarContributor { public Type ComponentType { get; } - public Dictionary Arguments { get; set; } + public Dictionary? Arguments { get; set; } public int Order { get; } - public string RequiredPolicyName { get; } + public string? RequiredPolicyName { get; } public SimplePageToolbarContributor( Type componentType, - Dictionary arguments = null, + Dictionary? arguments = null, int order = 0, - string requiredPolicyName = null) + string? requiredPolicyName = null) { ComponentType = componentType; Arguments = arguments; diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Routing/AbpRouterOptions.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Routing/AbpRouterOptions.cs index ce3b2746e4..9c21e9485d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Routing/AbpRouterOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Routing/AbpRouterOptions.cs @@ -4,7 +4,7 @@ namespace Volo.Abp.AspNetCore.Components.Web.Theming.Routing; public class AbpRouterOptions { - public Assembly AppAssembly { get; set; } + public Assembly AppAssembly { get; set; } = default!; public RouterAssemblyList AdditionalAssemblies { get; } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/AbpThemingOptions.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/AbpThemingOptions.cs index 6bba37e0f8..71b0d8bb35 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/AbpThemingOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/AbpThemingOptions.cs @@ -4,7 +4,7 @@ public class AbpThemingOptions { public ThemeDictionary Themes { get; } - public string DefaultThemeName { get; set; } + public string? DefaultThemeName { get; set; } public AbpThemingOptions() { diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/DefaultThemeManager.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/DefaultThemeManager.cs index c85a25bf19..5abd114f83 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/DefaultThemeManager.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/DefaultThemeManager.cs @@ -9,7 +9,7 @@ public class DefaultThemeManager : IThemeManager, IScopedDependency, IServicePro public IServiceProvider ServiceProvider { get; } public ITheme CurrentTheme => GetCurrentTheme(); - private ITheme _currentTheme; + private ITheme? _currentTheme; protected IThemeSelector ThemeSelector { get; } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/IToolbarConfigurationContext.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/IToolbarConfigurationContext.cs index e2bfaf06d0..23c565eb5f 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/IToolbarConfigurationContext.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/IToolbarConfigurationContext.cs @@ -17,8 +17,7 @@ public interface IToolbarConfigurationContext : IServiceProviderAccessor Task IsGrantedAsync(string policyName); - [CanBeNull] - IStringLocalizer GetDefaultLocalizer(); + IStringLocalizer? GetDefaultLocalizer(); [NotNull] public IStringLocalizer GetLocalizer(); diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarConfigurationContext.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarConfigurationContext.cs index f773ba14e1..7870743851 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarConfigurationContext.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarConfigurationContext.cs @@ -32,8 +32,7 @@ public class ToolbarConfigurationContext : IToolbarConfigurationContext return AuthorizationService.IsGrantedAsync(policyName); } - [CanBeNull] - public IStringLocalizer GetDefaultLocalizer() + public IStringLocalizer? GetDefaultLocalizer() { return StringLocalizerFactory.CreateDefaultOrNull(); } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarItem.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarItem.cs index 966145a4ee..32816d7a3b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarItem.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarItem.cs @@ -9,7 +9,7 @@ public class ToolbarItem get => _componentType; set => _componentType = Check.NotNull(value, nameof(value)); } - private Type _componentType; + private Type _componentType = default!; public int Order { get; set; } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Volo.Abp.AspNetCore.Components.Web.Theming.csproj b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Volo.Abp.AspNetCore.Components.Web.Theming.csproj index d0abc31cdc..1dd5b61131 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Volo.Abp.AspNetCore.Components.Web.Theming.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Volo.Abp.AspNetCore.Components.Web.Theming.csproj @@ -5,6 +5,8 @@ net7.0 + enable + Nullable diff --git a/framework/src/Volo.Abp.UI/Volo/Abp/Ui/LayoutHooks/LayoutHookViewModel.cs b/framework/src/Volo.Abp.UI/Volo/Abp/Ui/LayoutHooks/LayoutHookViewModel.cs index 107ad6990a..fe3974296f 100644 --- a/framework/src/Volo.Abp.UI/Volo/Abp/Ui/LayoutHooks/LayoutHookViewModel.cs +++ b/framework/src/Volo.Abp.UI/Volo/Abp/Ui/LayoutHooks/LayoutHookViewModel.cs @@ -4,9 +4,9 @@ public class LayoutHookViewModel { public LayoutHookInfo[] Hooks { get; } - public string Layout { get; } + public string? Layout { get; } - public LayoutHookViewModel(LayoutHookInfo[] hooks, string layout) + public LayoutHookViewModel(LayoutHookInfo[] hooks, string? layout) { Hooks = hooks; Layout = layout;