Browse Source

Enable nullable annotations for Volo.Abp.BlazoriseUI

pull/17120/head
liangshiwei 3 years ago
parent
commit
b8c9e8ed04
  1. 6
      framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageEventArgs.cs
  2. 4
      framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationEventArgs.cs
  3. 4
      framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs
  4. 40
      framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs
  5. 12
      framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs
  6. 10
      framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs
  7. 10
      framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs
  8. 4
      framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiPageProgressService.cs
  9. 6
      framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs
  10. 2
      framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor
  11. 12
      framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs
  12. 2
      framework/src/Volo.Abp.BlazoriseUI/Components/AlertWrapper.cs
  13. 2
      framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs
  14. 18
      framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs
  15. 2
      framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor
  16. 12
      framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor.cs
  17. 16
      framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/EnumHelper.cs
  18. 6
      framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs
  19. 12
      framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionPropertyComponentBase.cs
  20. 12
      framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/LookupExtensionProperty.razor.cs
  21. 6
      framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/SelectExtensionProperty.razor.cs
  22. 2
      framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextExtensionProperty.razor.cs
  23. 10
      framework/src/Volo.Abp.BlazoriseUI/Components/PageAlert.razor.cs
  24. 6
      framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor.cs
  25. 8
      framework/src/Volo.Abp.BlazoriseUI/Components/ToolbarButton.razor.cs
  26. 23
      framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor.cs
  27. 21
      framework/src/Volo.Abp.BlazoriseUI/Components/UiNotificationAlert.razor.cs
  28. 13
      framework/src/Volo.Abp.BlazoriseUI/Components/UiPageProgress.razor.cs
  29. 2
      framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj
  30. 2
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpInternalLocalizationHelper.cs
  31. 2
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/IAbpEnumLocalizer.cs
  32. 4
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/Data/ExtraPropertyDictionary.cs
  33. 16
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/Data/ExtraPropertyDictionaryExtensions.cs
  34. 6
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/Data/HasExtraPropertiesExtensions.cs
  35. 8
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensibleObjectMapper.cs

6
framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageEventArgs.cs

@ -5,7 +5,7 @@ namespace Volo.Abp.AspNetCore.Components.Messages;
public class UiMessageEventArgs : EventArgs public class UiMessageEventArgs : EventArgs
{ {
public UiMessageEventArgs(UiMessageType messageType, string message, string title, UiMessageOptions options) public UiMessageEventArgs(UiMessageType messageType, string message, string? title, UiMessageOptions options)
{ {
MessageType = messageType; MessageType = messageType;
Message = message; Message = message;
@ -13,7 +13,7 @@ public class UiMessageEventArgs : EventArgs
Options = options; Options = options;
} }
public UiMessageEventArgs(UiMessageType messageType, string message, string title, UiMessageOptions options, TaskCompletionSource<bool> callback) public UiMessageEventArgs(UiMessageType messageType, string message, string? title, UiMessageOptions options, TaskCompletionSource<bool> callback)
{ {
MessageType = messageType; MessageType = messageType;
Message = message; Message = message;
@ -26,7 +26,7 @@ public class UiMessageEventArgs : EventArgs
public string Message { get; } public string Message { get; }
public string Title { get; } public string? Title { get; }
public UiMessageOptions Options { get; } public UiMessageOptions Options { get; }

4
framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationEventArgs.cs

@ -4,7 +4,7 @@ namespace Volo.Abp.AspNetCore.Components.Notifications;
public class UiNotificationEventArgs : EventArgs public class UiNotificationEventArgs : EventArgs
{ {
public UiNotificationEventArgs(UiNotificationType notificationType, string message, string title, UiNotificationOptions options) public UiNotificationEventArgs(UiNotificationType notificationType, string message, string? title, UiNotificationOptions options)
{ {
NotificationType = notificationType; NotificationType = notificationType;
Message = message; Message = message;
@ -16,7 +16,7 @@ public class UiNotificationEventArgs : EventArgs
public string Message { get; } public string Message { get; }
public string Title { get; } public string? Title { get; }
public UiNotificationOptions Options { get; } public UiNotificationOptions Options { get; }
} }

4
framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs

@ -22,8 +22,8 @@ public static class AbpAutoMapperExtensibleDtoExtensions
(source, destination, extraProps) => (source, destination, extraProps) =>
{ {
var result = extraProps.IsNullOrEmpty() var result = extraProps.IsNullOrEmpty()
? new Dictionary<string, object>() ? new Dictionary<string, object?>()
: new Dictionary<string, object>(extraProps); : new Dictionary<string, object?>(extraProps);
ExtensibleObjectMapper ExtensibleObjectMapper
.MapExtraPropertiesTo<TSource, TDestination>( .MapExtraPropertiesTo<TSource, TDestination>(

40
framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs

@ -174,32 +174,32 @@ public abstract class AbpCrudPageBase<
where TCreateViewModel : class, new() where TCreateViewModel : class, new()
where TUpdateViewModel : class, new() where TUpdateViewModel : class, new()
{ {
[Inject] protected TAppService AppService { get; set; } [Inject] protected TAppService AppService { get; set; } = default!;
[Inject] protected IStringLocalizer<AbpUiResource> UiLocalizer { get; set; } [Inject] protected IStringLocalizer<AbpUiResource> UiLocalizer { get; set; } = default!;
[Inject] public IAbpEnumLocalizer AbpEnumLocalizer { get; set; } [Inject] public IAbpEnumLocalizer AbpEnumLocalizer { get; set; } = default!;
protected virtual int PageSize { get; } = LimitedResultRequestDto.DefaultMaxResultCount; protected virtual int PageSize { get; } = LimitedResultRequestDto.DefaultMaxResultCount;
protected int CurrentPage = 1; protected int CurrentPage = 1;
protected string CurrentSorting; protected string CurrentSorting = default!;
protected int? TotalCount; protected int? TotalCount;
protected TGetListInput GetListInput = new TGetListInput(); protected TGetListInput GetListInput = new TGetListInput();
protected IReadOnlyList<TListViewModel> Entities = Array.Empty<TListViewModel>(); protected IReadOnlyList<TListViewModel> Entities = Array.Empty<TListViewModel>();
protected TCreateViewModel NewEntity; protected TCreateViewModel NewEntity;
protected TKey EditingEntityId; protected TKey EditingEntityId = default!;
protected TUpdateViewModel EditingEntity; protected TUpdateViewModel EditingEntity;
protected Modal CreateModal; protected Modal? CreateModal;
protected Modal EditModal; protected Modal? EditModal;
protected Validations CreateValidationsRef; protected Validations? CreateValidationsRef;
protected Validations EditValidationsRef; protected Validations? EditValidationsRef;
protected List<BreadcrumbItem> BreadcrumbItems = new List<BreadcrumbItem>(2); protected List<BreadcrumbItem> BreadcrumbItems = new List<BreadcrumbItem>(2);
protected DataGridEntityActionsColumn<TListViewModel> EntityActionsColumn; protected DataGridEntityActionsColumn<TListViewModel> EntityActionsColumn = default!;
protected EntityActionDictionary EntityActions { get; set; } protected EntityActionDictionary EntityActions { get; set; }
protected TableColumnDictionary TableColumns { get; set; } protected TableColumnDictionary TableColumns { get; set; }
protected string CreatePolicyName { get; set; } protected string? CreatePolicyName { get; set; }
protected string UpdatePolicyName { get; set; } protected string? UpdatePolicyName { get; set; }
protected string DeletePolicyName { get; set; } protected string? DeletePolicyName { get; set; }
public bool HasCreatePermission { get; set; } public bool HasCreatePermission { get; set; }
public bool HasUpdatePermission { get; set; } public bool HasUpdatePermission { get; set; }
@ -360,7 +360,7 @@ public abstract class AbpCrudPageBase<
protected virtual Task CloseCreateModalAsync() protected virtual Task CloseCreateModalAsync()
{ {
NewEntity = new TCreateViewModel(); NewEntity = new TCreateViewModel();
return InvokeAsync(CreateModal.Hide); return InvokeAsync(CreateModal!.Hide);
} }
protected virtual Task ClosingCreateModal(ModalClosingEventArgs eventArgs) protected virtual Task ClosingCreateModal(ModalClosingEventArgs eventArgs)
@ -429,7 +429,7 @@ public abstract class AbpCrudPageBase<
protected virtual Task CloseEditModalAsync() protected virtual Task CloseEditModalAsync()
{ {
InvokeAsync(EditModal.Hide); InvokeAsync(EditModal!.Hide);
return Task.CompletedTask; return Task.CompletedTask;
} }
@ -477,7 +477,7 @@ public abstract class AbpCrudPageBase<
NewEntity = new TCreateViewModel(); NewEntity = new TCreateViewModel();
await GetEntitiesAsync(); await GetEntitiesAsync();
await InvokeAsync(CreateModal.Hide); await InvokeAsync(CreateModal!.Hide);
} }
protected virtual async Task UpdateEntityAsync() protected virtual async Task UpdateEntityAsync()
@ -515,7 +515,7 @@ public abstract class AbpCrudPageBase<
{ {
await GetEntitiesAsync(); await GetEntitiesAsync();
await InvokeAsync(EditModal.Hide); await InvokeAsync(EditModal!.Hide);
} }
protected virtual async Task DeleteEntityAsync(TListViewModel entity) protected virtual async Task DeleteEntityAsync(TListViewModel entity)
@ -572,7 +572,7 @@ public abstract class AbpCrudPageBase<
/// Does nothing if <paramref name="policyName"/> is null or empty. /// Does nothing if <paramref name="policyName"/> is null or empty.
/// </summary> /// </summary>
/// <param name="policyName">A policy name to check</param> /// <param name="policyName">A policy name to check</param>
protected virtual async Task CheckPolicyAsync([CanBeNull] string policyName) protected virtual async Task CheckPolicyAsync(string? policyName)
{ {
if (string.IsNullOrEmpty(policyName)) if (string.IsNullOrEmpty(policyName))
{ {
@ -633,7 +633,7 @@ public abstract class AbpCrudPageBase<
if (propertyInfo.Name.EndsWith("_Text")) if (propertyInfo.Name.EndsWith("_Text"))
{ {
var lookupPropertyName = propertyInfo.Name.RemovePostFix("_Text"); var lookupPropertyName = propertyInfo.Name.RemovePostFix("_Text");
var lookupPropertyDefinition = properties.SingleOrDefault(t => t.Name == lookupPropertyName); var lookupPropertyDefinition = properties.SingleOrDefault(t => t.Name == lookupPropertyName)!;
yield return new TableColumn yield return new TableColumn
{ {
Title = lookupPropertyDefinition.GetLocalizedDisplayName(StringLocalizerFactory), Title = lookupPropertyDefinition.GetLocalizedDisplayName(StringLocalizerFactory),
@ -658,7 +658,7 @@ public abstract class AbpCrudPageBase<
if (propertyInfo.Type.IsEnum) if (propertyInfo.Type.IsEnum)
{ {
column.ValueConverter = (val) => column.ValueConverter = (val) =>
AbpEnumLocalizer.GetString(propertyInfo.Type, val.As<ExtensibleObject>().ExtraProperties[propertyInfo.Name], new IStringLocalizer[]{ StringLocalizerFactory.CreateDefaultOrNull() }); AbpEnumLocalizer.GetString(propertyInfo.Type, val.As<ExtensibleObject>().ExtraProperties[propertyInfo.Name]!, new IStringLocalizer?[]{ StringLocalizerFactory.CreateDefaultOrNull() });
} }
yield return column; yield return column;

12
framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs

@ -15,7 +15,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency
/// <summary> /// <summary>
/// An event raised after the message is received. Used to notify the message dialog. /// An event raised after the message is received. Used to notify the message dialog.
/// </summary> /// </summary>
public event EventHandler<UiMessageEventArgs> MessageReceived; public event EventHandler<UiMessageEventArgs>? MessageReceived ;
private readonly IStringLocalizer<AbpUiResource> localizer; private readonly IStringLocalizer<AbpUiResource> localizer;
@ -29,7 +29,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency
Logger = NullLogger<BlazoriseUiMessageService>.Instance; Logger = NullLogger<BlazoriseUiMessageService>.Instance;
} }
public Task Info(string message, string title = null, Action<UiMessageOptions> options = null) public Task Info(string message, string? title = null, Action<UiMessageOptions>? options = null)
{ {
var uiMessageOptions = CreateDefaultOptions(); var uiMessageOptions = CreateDefaultOptions();
options?.Invoke(uiMessageOptions); options?.Invoke(uiMessageOptions);
@ -39,7 +39,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency
return Task.CompletedTask; return Task.CompletedTask;
} }
public Task Success(string message, string title = null, Action<UiMessageOptions> options = null) public Task Success(string message, string? title = null, Action<UiMessageOptions>? options = null)
{ {
var uiMessageOptions = CreateDefaultOptions(); var uiMessageOptions = CreateDefaultOptions();
options?.Invoke(uiMessageOptions); options?.Invoke(uiMessageOptions);
@ -49,7 +49,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency
return Task.CompletedTask; return Task.CompletedTask;
} }
public Task Warn(string message, string title = null, Action<UiMessageOptions> options = null) public Task Warn(string message, string? title = null, Action<UiMessageOptions>? options = null)
{ {
var uiMessageOptions = CreateDefaultOptions(); var uiMessageOptions = CreateDefaultOptions();
options?.Invoke(uiMessageOptions); options?.Invoke(uiMessageOptions);
@ -59,7 +59,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency
return Task.CompletedTask; return Task.CompletedTask;
} }
public Task Error(string message, string title = null, Action<UiMessageOptions> options = null) public Task Error(string message, string? title = null, Action<UiMessageOptions>? options = null)
{ {
var uiMessageOptions = CreateDefaultOptions(); var uiMessageOptions = CreateDefaultOptions();
options?.Invoke(uiMessageOptions); options?.Invoke(uiMessageOptions);
@ -69,7 +69,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency
return Task.CompletedTask; return Task.CompletedTask;
} }
public Task<bool> Confirm(string message, string title = null, Action<UiMessageOptions> options = null) public Task<bool> Confirm(string message, string? title = null, Action<UiMessageOptions>? options = null)
{ {
var uiMessageOptions = CreateDefaultOptions(); var uiMessageOptions = CreateDefaultOptions();
options?.Invoke(uiMessageOptions); options?.Invoke(uiMessageOptions);

10
framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs

@ -11,9 +11,9 @@ public class BlazoriseUiNotificationService : IUiNotificationService, IScopedDep
/// <summary> /// <summary>
/// An event raised after the notification is received. /// An event raised after the notification is received.
/// </summary> /// </summary>
public event EventHandler<UiNotificationEventArgs> NotificationReceived; public event EventHandler<UiNotificationEventArgs>? NotificationReceived;
public Task Info(string message, string title = null, Action<UiNotificationOptions> options = null) public Task Info(string message, string? title = null, Action<UiNotificationOptions>? options = null)
{ {
var uiNotificationOptions = CreateDefaultOptions(); var uiNotificationOptions = CreateDefaultOptions();
options?.Invoke(uiNotificationOptions); options?.Invoke(uiNotificationOptions);
@ -23,7 +23,7 @@ public class BlazoriseUiNotificationService : IUiNotificationService, IScopedDep
return Task.CompletedTask; return Task.CompletedTask;
} }
public Task Success(string message, string title = null, Action<UiNotificationOptions> options = null) public Task Success(string message, string? title = null, Action<UiNotificationOptions>? options = null)
{ {
var uiNotificationOptions = CreateDefaultOptions(); var uiNotificationOptions = CreateDefaultOptions();
options?.Invoke(uiNotificationOptions); options?.Invoke(uiNotificationOptions);
@ -33,7 +33,7 @@ public class BlazoriseUiNotificationService : IUiNotificationService, IScopedDep
return Task.CompletedTask; return Task.CompletedTask;
} }
public Task Warn(string message, string title = null, Action<UiNotificationOptions> options = null) public Task Warn(string message, string? title = null, Action<UiNotificationOptions>? options = null)
{ {
var uiNotificationOptions = CreateDefaultOptions(); var uiNotificationOptions = CreateDefaultOptions();
options?.Invoke(uiNotificationOptions); options?.Invoke(uiNotificationOptions);
@ -43,7 +43,7 @@ public class BlazoriseUiNotificationService : IUiNotificationService, IScopedDep
return Task.CompletedTask; return Task.CompletedTask;
} }
public Task Error(string message, string title = null, Action<UiNotificationOptions> options = null) public Task Error(string message, string? title = null, Action<UiNotificationOptions>? options = null)
{ {
var uiNotificationOptions = CreateDefaultOptions(); var uiNotificationOptions = CreateDefaultOptions();
options?.Invoke(uiNotificationOptions); options?.Invoke(uiNotificationOptions);

10
framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs

@ -44,7 +44,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions
typeof(PhoneAttribute) typeof(PhoneAttribute)
}; };
public static string GetDateEditInputFormatOrNull(this IBasicObjectExtensionPropertyInfo property) public static string? GetDateEditInputFormatOrNull(this IBasicObjectExtensionPropertyInfo property)
{ {
if (property.IsDate()) if (property.IsDate())
{ {
@ -59,7 +59,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions
return null; return null;
} }
public static string GetTextInputValueOrNull(this IBasicObjectExtensionPropertyInfo property, object value) public static string? GetTextInputValueOrNull(this IBasicObjectExtensionPropertyInfo property, object? value)
{ {
if (value == null) if (value == null)
{ {
@ -74,7 +74,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions
return value.ToString(); return value.ToString();
} }
public static T GetInputValueOrDefault<T>(this IBasicObjectExtensionPropertyInfo property, object value) public static T? GetInputValueOrDefault<T>(this IBasicObjectExtensionPropertyInfo property, object? value)
{ {
if (value == null) if (value == null)
{ {
@ -204,7 +204,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions
?? typeof(TextExtensionProperty<,>); //default ?? typeof(TextExtensionProperty<,>); //default
} }
private static Type GetInputTypeFromAttributeOrNull(Attribute attribute) private static Type? GetInputTypeFromAttributeOrNull(Attribute attribute)
{ {
var hasTextEditSupport = TextEditSupportedAttributeTypes.Any(t => t == attribute.GetType()); var hasTextEditSupport = TextEditSupportedAttributeTypes.Any(t => t == attribute.GetType());
@ -238,7 +238,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions
return null; return null;
} }
private static Type GetInputTypeFromTypeOrNull(Type type) private static Type? GetInputTypeFromTypeOrNull(Type type)
{ {
if (type == typeof(bool)) if (type == typeof(bool))
{ {

4
framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiPageProgressService.cs

@ -12,9 +12,9 @@ public class BlazoriseUiPageProgressService : IUiPageProgressService,
/// <summary> /// <summary>
/// An event raised after the notification is received. /// An event raised after the notification is received.
/// </summary> /// </summary>
public event EventHandler<UiPageProgressEventArgs> ProgressChanged; public event EventHandler<UiPageProgressEventArgs>? ProgressChanged;
public Task Go(int? percentage, Action<UiPageProgressOptions> options = null) public Task Go(int? percentage, Action<UiPageProgressOptions>? options = null)
{ {
var uiPageProgressOptions = CreateDefaultOptions(); var uiPageProgressOptions = CreateDefaultOptions();
options?.Invoke(uiPageProgressOptions); options?.Invoke(uiPageProgressOptions);

6
framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs

@ -6,11 +6,11 @@ public class BreadcrumbItem
{ {
public string Text { get; set; } public string Text { get; set; }
public object Icon { get; set; } public object? Icon { get; set; }
public string Url { get; set; } public string? Url { get; set; }
public BreadcrumbItem(string text, string url = null, object icon = null) public BreadcrumbItem(string text, string? url = null, object? icon = null)
{ {
Text = text; Text = text;
Url = url; Url = url;

2
framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor

@ -121,7 +121,7 @@
@{ @{
var entity = context as IHasExtraProperties; var entity = context as IHasExtraProperties;
var propertyName = ExtensionPropertiesRegex.Match(column.Data).Groups[1].Value; var propertyName = ExtensionPropertiesRegex.Match(column.Data).Groups[1].Value;
var propertyValue = entity.GetProperty(propertyName); var propertyValue = entity?.GetProperty(propertyName);
if (propertyValue != null && propertyValue.GetType() == typeof(bool)) if (propertyValue != null && propertyValue.GetType() == typeof(bool))
{ {
if ((bool) propertyValue) if ((bool) propertyValue)

12
framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs

@ -18,7 +18,7 @@ public partial class AbpExtensibleDataGrid<TItem> : ComponentBase
protected Regex ExtensionPropertiesRegex = new Regex(@"ExtraProperties\[(.*?)\]"); protected Regex ExtensionPropertiesRegex = new Regex(@"ExtraProperties\[(.*?)\]");
[Parameter] public IEnumerable<TItem> Data { get; set; } [Parameter] public IEnumerable<TItem> Data { get; set; } = default!;
[Parameter] public EventCallback<DataGridReadDataEventArgs<TItem>> ReadData { get; set; } [Parameter] public EventCallback<DataGridReadDataEventArgs<TItem>> ReadData { get; set; }
@ -28,16 +28,16 @@ public partial class AbpExtensibleDataGrid<TItem> : ComponentBase
[Parameter] public int PageSize { get; set; } [Parameter] public int PageSize { get; set; }
[Parameter] public IEnumerable<TableColumn> Columns { get; set; } [Parameter] public IEnumerable<TableColumn> Columns { get; set; } = default!;
[Parameter] public int CurrentPage { get; set; } = 1; [Parameter] public int CurrentPage { get; set; } = 1;
[Parameter] public string Class { get; set; } [Parameter] public string? Class { get; set; }
[Parameter] public bool Responsive { get; set; } [Parameter] public bool Responsive { get; set; }
[Inject] [Inject]
public IStringLocalizerFactory StringLocalizerFactory { get; set; } public IStringLocalizerFactory StringLocalizerFactory { get; set; } = default!;
protected virtual RenderFragment RenderCustomTableColumnComponent(Type type, object data) protected virtual RenderFragment RenderCustomTableColumnComponent(Type type, object data)
{ {
@ -51,10 +51,10 @@ public partial class AbpExtensibleDataGrid<TItem> : ComponentBase
protected virtual string GetConvertedFieldValue(TItem item, TableColumn columnDefinition) protected virtual string GetConvertedFieldValue(TItem item, TableColumn columnDefinition)
{ {
var convertedValue = columnDefinition.ValueConverter.Invoke(item); var convertedValue = columnDefinition.ValueConverter!.Invoke(item!);
if (!columnDefinition.DisplayFormat.IsNullOrEmpty()) if (!columnDefinition.DisplayFormat.IsNullOrEmpty())
{ {
return string.Format(columnDefinition.DisplayFormatProvider, columnDefinition.DisplayFormat, return string.Format(columnDefinition.DisplayFormatProvider, columnDefinition.DisplayFormat!,
convertedValue); convertedValue);
} }

2
framework/src/Volo.Abp.BlazoriseUI/Components/AlertWrapper.cs

@ -4,6 +4,6 @@ namespace Volo.Abp.BlazoriseUI.Components;
internal class AlertWrapper internal class AlertWrapper
{ {
public AlertMessage AlertMessage { get; set; } public AlertMessage AlertMessage { get; set; } = default!;
public bool IsVisible { get; set; } public bool IsVisible { get; set; }
} }

2
framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs

@ -10,7 +10,7 @@ namespace Volo.Abp.BlazoriseUI.Components;
public partial class DataGridEntityActionsColumn<TItem> : DataGridColumn<TItem> public partial class DataGridEntityActionsColumn<TItem> : DataGridColumn<TItem>
{ {
[Inject] [Inject]
public IStringLocalizer<AbpUiResource> UiLocalizer { get; set; } public IStringLocalizer<AbpUiResource> UiLocalizer { get; set; } = default!;
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {

18
framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs

@ -18,7 +18,7 @@ public partial class EntityAction<TItem> : ComponentBase
internal bool HasPermission { get; set; } = true; internal bool HasPermission { get; set; } = true;
[Parameter] [Parameter]
public string Text { get; set; } public string Text { get; set; } = default!;
[Parameter] [Parameter]
public bool Primary { get; set; } public bool Primary { get; set; }
@ -28,25 +28,25 @@ public partial class EntityAction<TItem> : ComponentBase
[Parameter] [Parameter]
[Obsolete("Use Visible to hide actions based on permissions. Check the permission yourself. It is more performant. This option might be removed in future versions.")] [Obsolete("Use Visible to hide actions based on permissions. Check the permission yourself. It is more performant. This option might be removed in future versions.")]
public string RequiredPolicy { get; set; } public string? RequiredPolicy { get; set; }
[Parameter] [Parameter]
public Color Color { get; set; } public Color? Color { get; set; }
[Parameter] [Parameter]
public Func<string> ConfirmationMessage { get; set; } public Func<string>? ConfirmationMessage { get; set; }
[Parameter] [Parameter]
public string Icon { get; set; } public string? Icon { get; set; }
[CascadingParameter] [CascadingParameter]
public EntityActions<TItem> ParentActions { get; set; } public EntityActions<TItem> ParentActions { get; set; } = default!;
[Inject] [Inject]
protected IAuthorizationService AuthorizationService { get; set; } protected IAuthorizationService AuthorizationService { get; set; } = default!;
[Inject] [Inject]
protected IUiMessageService UiMessageService { get; set; } protected IUiMessageService UiMessageService { get; set; } = default!;
protected async override Task OnInitializedAsync() protected async override Task OnInitializedAsync()
{ {
@ -55,7 +55,7 @@ public partial class EntityAction<TItem> : ComponentBase
if (!RequiredPolicy.IsNullOrEmpty()) if (!RequiredPolicy.IsNullOrEmpty())
{ {
HasPermission = await AuthorizationService.IsGrantedAsync(RequiredPolicy); HasPermission = await AuthorizationService.IsGrantedAsync(RequiredPolicy!);
} }
ParentActions.AddAction(this); ParentActions.AddAction(this);
} }

2
framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor

@ -6,7 +6,7 @@
@if ( HasPrimaryAction ) @if ( HasPrimaryAction )
{ {
<Button Block="true" <Button Block="true"
Color="@PrimaryAction.Color" Color="@PrimaryAction!.Color"
Clicked="async ()=> await PrimaryAction.ActionClickedAsync()" Clicked="async ()=> await PrimaryAction.ActionClickedAsync()"
Disabled=@PrimaryAction.Disabled> Disabled=@PrimaryAction.Disabled>
@PrimaryAction.Text @PrimaryAction.Text

12
framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor.cs

@ -12,19 +12,19 @@ public partial class EntityActions<TItem> : ComponentBase
{ {
protected readonly List<EntityAction<TItem>> Actions = new List<EntityAction<TItem>>(); protected readonly List<EntityAction<TItem>> Actions = new List<EntityAction<TItem>>();
protected bool HasPrimaryAction => Actions.Any(t => t.Primary); protected bool HasPrimaryAction => Actions.Any(t => t.Primary);
protected EntityAction<TItem> PrimaryAction => Actions.FirstOrDefault(t => t.Primary); protected EntityAction<TItem>? PrimaryAction => Actions.FirstOrDefault(t => t.Primary);
[Parameter] [Parameter]
public Color ToggleColor { get; set; } = Color.Primary; public Color ToggleColor { get; set; } = Color.Primary;
[Parameter] [Parameter]
public string ToggleText { get; set; } public string? ToggleText { get; set; }
[Parameter] [Parameter]
public RenderFragment ChildContent { get; set; } public RenderFragment ChildContent { get; set; } = default!;
[Parameter] [Parameter]
public DataGridEntityActionsColumn<TItem> EntityActionsColumn { get; set; } public DataGridEntityActionsColumn<TItem> EntityActionsColumn { get; set; } = default!;
[Parameter] [Parameter]
public ActionType Type { get; set; } = ActionType.Dropdown; public ActionType Type { get; set; } = ActionType.Dropdown;
@ -33,10 +33,10 @@ public partial class EntityActions<TItem> : ComponentBase
public bool Disabled { get; set; } = false; public bool Disabled { get; set; } = false;
[CascadingParameter] [CascadingParameter]
public DataGridEntityActionsColumn<TItem> ParentEntityActionsColumn { get; set; } public DataGridEntityActionsColumn<TItem>? ParentEntityActionsColumn { get; set; }
[Inject] [Inject]
public IStringLocalizer<AbpUiResource> UiLocalizer { get; set; } public IStringLocalizer<AbpUiResource> UiLocalizer { get; set; } = default!;
internal void AddAction(EntityAction<TItem> action) internal void AddAction(EntityAction<TItem> action)
{ {

16
framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/EnumHelper.cs

@ -17,17 +17,17 @@ public static class EnumHelper
var localizedMemberName = AbpInternalLocalizationHelper.LocalizeWithFallback( var localizedMemberName = AbpInternalLocalizationHelper.LocalizeWithFallback(
new[] new[]
{ {
stringLocalizerFactory.CreateDefaultOrNull() stringLocalizerFactory.CreateDefaultOrNull()
}, },
new[] new[]
{ {
$"Enum:{enumType.Name}.{value}", $"Enum:{enumType.Name}.{value}",
$"Enum:{enumType.Name}.{memberName}", $"Enum:{enumType.Name}.{memberName}",
$"{enumType.Name}.{value}", $"{enumType.Name}.{value}",
$"{enumType.Name}.{memberName}", $"{enumType.Name}.{memberName}",
memberName memberName
}, }!,
memberName memberName!
); );
return localizedMemberName; return localizedMemberName;

6
framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs

@ -10,13 +10,13 @@ public partial class ExtensionProperties<TEntityType, TResourceType> : Component
where TEntityType : IHasExtraProperties where TEntityType : IHasExtraProperties
{ {
[Inject] [Inject]
public IStringLocalizerFactory StringLocalizerFactory { get; set; } public IStringLocalizerFactory StringLocalizerFactory { get; set; } = default!;
[Parameter] [Parameter]
public AbpBlazorMessageLocalizerHelper<TResourceType> LH { get; set; } public AbpBlazorMessageLocalizerHelper<TResourceType> LH { get; set; } = default!;
[Parameter] [Parameter]
public TEntityType Entity { get; set; } public TEntityType Entity { get; set; } = default!;
[Parameter] [Parameter]
public ExtensionPropertyModalType? ModalType { get; set; } public ExtensionPropertyModalType? ModalType { get; set; }

12
framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionPropertyComponentBase.cs

@ -16,22 +16,22 @@ public abstract class ExtensionPropertyComponentBase<TEntity, TResourceType> : O
where TEntity : IHasExtraProperties where TEntity : IHasExtraProperties
{ {
[Inject] [Inject]
public IStringLocalizerFactory StringLocalizerFactory { get; set; } public IStringLocalizerFactory StringLocalizerFactory { get; set; } = default!;
[Inject] [Inject]
public IAbpEnumLocalizer AbpEnumLocalizer { get; set; } public IAbpEnumLocalizer AbpEnumLocalizer { get; set; } = default!;
[Inject] [Inject]
public IValidationMessageLocalizerAttributeFinder ValidationMessageLocalizerAttributeFinder { get; set; } public IValidationMessageLocalizerAttributeFinder ValidationMessageLocalizerAttributeFinder { get; set; } = default!;
[Parameter] [Parameter]
public TEntity Entity { get; set; } public TEntity Entity { get; set; } = default!;
[Parameter] [Parameter]
public ObjectExtensionPropertyInfo PropertyInfo { get; set; } public ObjectExtensionPropertyInfo PropertyInfo { get; set; } = default!;
[Parameter] [Parameter]
public AbpBlazorMessageLocalizerHelper<TResourceType> LH { get; set; } public AbpBlazorMessageLocalizerHelper<TResourceType> LH { get; set; } = default!;
[Parameter] [Parameter]
public ExtensionPropertyModalType? ModalType { get; set; } public ExtensionPropertyModalType? ModalType { get; set; }

12
framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/LookupExtensionProperty.razor.cs

@ -25,11 +25,11 @@ public partial class LookupExtensionProperty<TEntity, TResourceType>
{ {
protected List<SelectItem<object>> lookupItems = new(); protected List<SelectItem<object>> lookupItems = new();
[Inject] public ILookupApiRequestService LookupApiService { get; set; } [Inject] public ILookupApiRequestService LookupApiService { get; set; } = default!;
public string TextPropertyName => PropertyInfo.Name + "_Text"; public string TextPropertyName => PropertyInfo.Name + "_Text";
public object SelectedValue { public object? SelectedValue {
get { return Entity.GetProperty(PropertyInfo.Name); } get { return Entity.GetProperty(PropertyInfo.Name); }
set { set {
Entity.SetProperty(PropertyInfo.Name, value, false); Entity.SetProperty(PropertyInfo.Name, value, false);
@ -45,7 +45,7 @@ public partial class LookupExtensionProperty<TEntity, TResourceType>
{ {
lookupItems.Add(new SelectItem<object> lookupItems.Add(new SelectItem<object>
{ {
Text = Entity.GetProperty(TextPropertyName).ToString(), Text = Entity.GetProperty(TextPropertyName)!.ToString()!,
Value = value Value = value
}); });
} }
@ -61,7 +61,7 @@ public partial class LookupExtensionProperty<TEntity, TResourceType>
} }
} }
protected virtual void UpdateLookupTextProperty(object value) protected virtual void UpdateLookupTextProperty(object? value)
{ {
var selectedItemText = lookupItems.SingleOrDefault(t => t.Value.Equals(value))?.Text; var selectedItemText = lookupItems.SingleOrDefault(t => t.Value.Equals(value))?.Text;
Entity.SetProperty(TextPropertyName, selectedItemText); Entity.SetProperty(TextPropertyName, selectedItemText);
@ -85,8 +85,8 @@ public partial class LookupExtensionProperty<TEntity, TResourceType>
{ {
selectItems.Add(new SelectItem<object> selectItems.Add(new SelectItem<object>
{ {
Text = item.GetProperty(PropertyInfo.Lookup.DisplayPropertyName).GetString(), Text = item.GetProperty(PropertyInfo.Lookup.DisplayPropertyName).GetString()!,
Value = JsonSerializer.Deserialize(item.GetProperty(PropertyInfo.Lookup.ValuePropertyName).GetRawText(), PropertyInfo.Type) Value = JsonSerializer.Deserialize(item.GetProperty(PropertyInfo.Lookup.ValuePropertyName).GetRawText(), PropertyInfo.Type)!
}); });
} }

6
framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/SelectExtensionProperty.razor.cs

@ -44,13 +44,13 @@ public partial class SelectExtensionProperty<TEntity, TResourceType>
if (!Entity.HasProperty(PropertyInfo.Name)) if (!Entity.HasProperty(PropertyInfo.Name))
{ {
SelectedValue = (int)PropertyInfo.Type.GetEnumValues().GetValue(0); SelectedValue = (int)PropertyInfo.Type.GetEnumValues().GetValue(0)!;
} }
} }
} }
public class SelectItem<TValue> public class SelectItem<TValue>
{ {
public string Text { get; set; } public string Text { get; set; } = default!;
public TValue Value { get; set; } public TValue Value { get; set; } = default!;
} }

2
framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextExtensionProperty.razor.cs

@ -5,7 +5,7 @@ namespace Volo.Abp.BlazoriseUI.Components.ObjectExtending;
public partial class TextExtensionProperty<TEntity, TResourceType> public partial class TextExtensionProperty<TEntity, TResourceType>
where TEntity : IHasExtraProperties where TEntity : IHasExtraProperties
{ {
protected string Value { protected string? Value {
get { get {
return PropertyInfo.GetTextInputValueOrNull(Entity.GetProperty(PropertyInfo.Name)); return PropertyInfo.GetTextInputValueOrNull(Entity.GetProperty(PropertyInfo.Name));
} }

10
framework/src/Volo.Abp.BlazoriseUI/Components/PageAlert.razor.cs

@ -14,10 +14,10 @@ public partial class PageAlert : ComponentBase, IDisposable
private List<AlertWrapper> Alerts = new List<AlertWrapper>(); private List<AlertWrapper> Alerts = new List<AlertWrapper>();
[Inject] [Inject]
protected IAlertManager AlertManager { get; set; } protected IAlertManager AlertManager { get; set; } = default!;
[Inject] [Inject]
protected NavigationManager NavigationManager { get; set; } protected NavigationManager NavigationManager { get; set; } = default!;
protected override void OnInitialized() protected override void OnInitialized()
{ {
@ -33,17 +33,17 @@ public partial class PageAlert : ComponentBase, IDisposable
} }
//Since Blazor WASM doesn't support scoped dependency, we need to clear alerts on each location changed event. //Since Blazor WASM doesn't support scoped dependency, we need to clear alerts on each location changed event.
private void NavigationManager_LocationChanged(object sender, LocationChangedEventArgs e) private void NavigationManager_LocationChanged(object? sender, LocationChangedEventArgs e)
{ {
AlertManager.Alerts.Clear(); AlertManager.Alerts.Clear();
Alerts.Clear(); Alerts.Clear();
} }
private void Alerts_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) private void Alerts_CollectionChanged(object? sender, NotifyCollectionChangedEventArgs e)
{ {
if (e.Action == NotifyCollectionChangedAction.Add) if (e.Action == NotifyCollectionChangedAction.Add)
{ {
foreach (var item in e.NewItems) foreach (var item in e.NewItems!)
{ {
Alerts.Add(new AlertWrapper Alerts.Add(new AlertWrapper
{ {

6
framework/src/Volo.Abp.BlazoriseUI/Components/SubmitButton.razor.cs

@ -12,7 +12,7 @@ public partial class SubmitButton : ComponentBase
protected bool Submiting { get; set; } protected bool Submiting { get; set; }
[Parameter] [Parameter]
public string Form { get; set; } public string Form { get; set; } = default!;
[Parameter] [Parameter]
public ButtonType Type { get; set; } = ButtonType.Submit; public ButtonType Type { get; set; } = ButtonType.Submit;
@ -36,10 +36,10 @@ public partial class SubmitButton : ComponentBase
public EventCallback Clicked { get; set; } public EventCallback Clicked { get; set; }
[Parameter] [Parameter]
public RenderFragment ChildContent { get; set; } public RenderFragment? ChildContent { get; set; }
[Inject] [Inject]
protected IStringLocalizer<AbpUiResource> StringLocalizer { get; set; } protected IStringLocalizer<AbpUiResource> StringLocalizer { get; set; } = default!;
protected bool IsDisabled protected bool IsDisabled
=> Disabled == true || Submiting; => Disabled == true || Submiting;

8
framework/src/Volo.Abp.BlazoriseUI/Components/ToolbarButton.razor.cs

@ -8,16 +8,16 @@ namespace Volo.Abp.BlazoriseUI.Components;
public partial class ToolbarButton : ComponentBase public partial class ToolbarButton : ComponentBase
{ {
[Parameter] [Parameter]
public Color Color { get; set; } public Color? Color { get; set; }
[Parameter] [Parameter]
public object Icon { get; set; } public object? Icon { get; set; }
[Parameter] [Parameter]
public string Text { get; set; } public string Text { get; set; } = default!;
[Parameter] [Parameter]
public Func<Task> Clicked { get; set; } public Func<Task> Clicked { get; set; } = default!;
[Parameter] [Parameter]
public bool Disabled { get; set; } public bool Disabled { get; set; }

23
framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor.cs

@ -10,7 +10,7 @@ namespace Volo.Abp.BlazoriseUI.Components;
public partial class UiMessageAlert : ComponentBase, IDisposable public partial class UiMessageAlert : ComponentBase, IDisposable
{ {
protected Modal ModalRef { get; set; } protected Modal ModalRef { get; set; } = default!;
protected virtual bool IsConfirmation protected virtual bool IsConfirmation
=> MessageType == UiMessageType.Confirmation; => MessageType == UiMessageType.Confirmation;
@ -21,7 +21,7 @@ public partial class UiMessageAlert : ComponentBase, IDisposable
protected virtual bool ShowMessageIcon protected virtual bool ShowMessageIcon
=> Options?.ShowMessageIcon ?? true; => Options?.ShowMessageIcon ?? true;
protected virtual object MessageIcon => Options?.MessageIcon ?? MessageType switch protected virtual object? MessageIcon => Options?.MessageIcon ?? MessageType switch
{ {
UiMessageType.Info => IconName.Info, UiMessageType.Info => IconName.Info,
UiMessageType.Success => IconName.Check, UiMessageType.Success => IconName.Check,
@ -31,7 +31,7 @@ public partial class UiMessageAlert : ComponentBase, IDisposable
_ => null, _ => null,
}; };
protected virtual string MessageIconColor => MessageType switch protected virtual string? MessageIconColor => MessageType switch
{ {
// gets the color in the order of importance: Blazorise > Bootstrap > fallback color // gets the color in the order of importance: Blazorise > Bootstrap > fallback color
UiMessageType.Info => "var(--b-theme-info, var(--info, #17a2b8))", UiMessageType.Info => "var(--b-theme-info, var(--info, #17a2b8))",
@ -63,13 +63,13 @@ public partial class UiMessageAlert : ComponentBase, IDisposable
[Parameter] public UiMessageType MessageType { get; set; } [Parameter] public UiMessageType MessageType { get; set; }
[Parameter] public string Title { get; set; } [Parameter] public string? Title { get; set; }
[Parameter] public string Message { get; set; } [Parameter] public string Message { get; set; } = default!;
[Parameter] public TaskCompletionSource<bool> Callback { get; set; } [Parameter] public TaskCompletionSource<bool>? Callback { get; set; }
[Parameter] public UiMessageOptions Options { get; set; } [Parameter] public UiMessageOptions? Options { get; set; }
[Parameter] public EventCallback Okayed { get; set; } [Parameter] public EventCallback Okayed { get; set; }
@ -77,16 +77,19 @@ public partial class UiMessageAlert : ComponentBase, IDisposable
[Parameter] public EventCallback Canceled { get; set; } [Parameter] public EventCallback Canceled { get; set; }
[Inject] protected BlazoriseUiMessageService UiMessageService { get; set; } [Inject] protected BlazoriseUiMessageService? UiMessageService { get; set; }
protected override void OnInitialized() protected override void OnInitialized()
{ {
base.OnInitialized(); base.OnInitialized();
UiMessageService.MessageReceived += OnMessageReceived; if (UiMessageService != null)
{
UiMessageService.MessageReceived += OnMessageReceived;
}
} }
private async void OnMessageReceived(object sender, UiMessageEventArgs e) private async void OnMessageReceived(object? sender, UiMessageEventArgs e)
{ {
MessageType = e.MessageType; MessageType = e.MessageType;
Message = e.Message; Message = e.Message;

21
framework/src/Volo.Abp.BlazoriseUI/Components/UiNotificationAlert.razor.cs

@ -11,23 +11,23 @@ namespace Volo.Abp.BlazoriseUI.Components;
public partial class UiNotificationAlert : ComponentBase, IDisposable public partial class UiNotificationAlert : ComponentBase, IDisposable
{ {
protected SnackbarStack SnackbarStack { get; set; } protected SnackbarStack SnackbarStack { get; set; } = default!;
[Parameter] public UiNotificationType NotificationType { get; set; } [Parameter] public UiNotificationType NotificationType { get; set; }
[Parameter] public string Message { get; set; } [Parameter] public string Message { get; set; } = default!;
[Parameter] public string Title { get; set; } [Parameter] public string? Title { get; set; }
[Parameter] public UiNotificationOptions Options { get; set; } [Parameter] public UiNotificationOptions? Options { get; set; }
[Parameter] public EventCallback Okayed { get; set; } [Parameter] public EventCallback Okayed { get; set; }
[Parameter] public EventCallback Closed { get; set; } [Parameter] public EventCallback Closed { get; set; }
[Inject] protected BlazoriseUiNotificationService UiNotificationService { get; set; } [Inject] protected BlazoriseUiNotificationService? UiNotificationService { get; set; }
[Inject] protected IStringLocalizerFactory StringLocalizerFactory { get; set; } [Inject] protected IStringLocalizerFactory StringLocalizerFactory { get; set; } = default!;
protected virtual SnackbarColor GetSnackbarColor(UiNotificationType notificationType) protected virtual SnackbarColor GetSnackbarColor(UiNotificationType notificationType)
{ {
@ -45,10 +45,13 @@ public partial class UiNotificationAlert : ComponentBase, IDisposable
{ {
base.OnInitialized(); base.OnInitialized();
UiNotificationService.NotificationReceived += OnNotificationReceived; if (UiNotificationService != null)
{
UiNotificationService.NotificationReceived += OnNotificationReceived;
}
} }
protected virtual async void OnNotificationReceived(object sender, UiNotificationEventArgs e) protected virtual async void OnNotificationReceived(object? sender, UiNotificationEventArgs e)
{ {
NotificationType = e.NotificationType; NotificationType = e.NotificationType;
Message = e.Message; Message = e.Message;
@ -62,7 +65,7 @@ public partial class UiNotificationAlert : ComponentBase, IDisposable
await SnackbarStack.PushAsync(Message, Title, GetSnackbarColor(e.NotificationType), (options) => await SnackbarStack.PushAsync(Message, Title, GetSnackbarColor(e.NotificationType), (options) =>
{ {
options.CloseButtonIcon = IconName.Times; options.CloseButtonIcon = IconName.Times;
options.ActionButtonText = okButtonText; options.ActionButtonText = okButtonText!;
}); });
} }

13
framework/src/Volo.Abp.BlazoriseUI/Components/UiPageProgress.razor.cs

@ -7,24 +7,27 @@ namespace Volo.Abp.BlazoriseUI.Components;
public partial class UiPageProgress : ComponentBase, IDisposable public partial class UiPageProgress : ComponentBase, IDisposable
{ {
protected PageProgress PageProgressRef { get; set; } protected PageProgress PageProgressRef { get; set; } = default!;
protected int? Percentage { get; set; } protected int? Percentage { get; set; }
protected bool Visible { get; set; } protected bool Visible { get; set; }
protected Color Color { get; set; } protected Color Color { get; set; } = default!;
[Inject] protected IUiPageProgressService UiPageProgressService { get; set; } [Inject] protected IUiPageProgressService? UiPageProgressService { get; set; }
protected override void OnInitialized() protected override void OnInitialized()
{ {
base.OnInitialized(); base.OnInitialized();
UiPageProgressService.ProgressChanged += OnProgressChanged; if (UiPageProgressService != null)
{
UiPageProgressService.ProgressChanged += OnProgressChanged;
}
} }
private async void OnProgressChanged(object sender, UiPageProgressEventArgs e) private async void OnProgressChanged(object? sender, UiPageProgressEventArgs e)
{ {
Percentage = e.Percentage; Percentage = e.Percentage;
Visible = e.Percentage == null || (e.Percentage >= 0 && e.Percentage <= 100); Visible = e.Percentage == null || (e.Percentage >= 0 && e.Percentage <= 100);

2
framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj

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

2
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpInternalLocalizationHelper.cs

@ -25,7 +25,7 @@ public static class AbpInternalLocalizationHelper
/// <returns></returns> /// <returns></returns>
[Obsolete("Use IAbpEnumLocalizer instead.")] [Obsolete("Use IAbpEnumLocalizer instead.")]
public static string LocalizeWithFallback( public static string LocalizeWithFallback(
IStringLocalizer[] localizers, IStringLocalizer?[] localizers,
string[] keys, string[] keys,
string defaultValue) string defaultValue)
{ {

2
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/IAbpEnumLocalizer.cs

@ -7,5 +7,5 @@ public interface IAbpEnumLocalizer
{ {
string GetString(Type enumType, object enumValue); string GetString(Type enumType, object enumValue);
string GetString(Type enumType, object enumValue, IStringLocalizer[] specifyLocalizers); string GetString(Type enumType, object enumValue, IStringLocalizer?[] specifyLocalizers);
} }

4
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/Data/ExtraPropertyDictionary.cs

@ -4,14 +4,14 @@ using System.Collections.Generic;
namespace Volo.Abp.Data; namespace Volo.Abp.Data;
[Serializable] [Serializable]
public class ExtraPropertyDictionary : Dictionary<string, object> public class ExtraPropertyDictionary : Dictionary<string, object?>
{ {
public ExtraPropertyDictionary() public ExtraPropertyDictionary()
{ {
} }
public ExtraPropertyDictionary(IDictionary<string, object> dictionary) public ExtraPropertyDictionary(IDictionary<string, object?> dictionary)
: base(dictionary) : base(dictionary)
{ {
} }

16
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/Data/ExtraPropertyDictionaryExtensions.cs

@ -8,24 +8,24 @@ public static class ExtraPropertyDictionaryExtensions
public static T ToEnum<T>(this ExtraPropertyDictionary extraPropertyDictionary, string key) public static T ToEnum<T>(this ExtraPropertyDictionary extraPropertyDictionary, string key)
where T : Enum where T : Enum
{ {
if (extraPropertyDictionary[key].GetType() == typeof(T)) if (extraPropertyDictionary[key]!.GetType() == typeof(T))
{ {
return (T)extraPropertyDictionary[key]; return (T)extraPropertyDictionary[key]!;
} }
extraPropertyDictionary[key] = Enum.Parse(typeof(T), extraPropertyDictionary[key].ToString()!, ignoreCase: true); extraPropertyDictionary[key] = Enum.Parse(typeof(T), extraPropertyDictionary[key]!.ToString()!, ignoreCase: true);
return (T)extraPropertyDictionary[key]; return (T)extraPropertyDictionary[key]!;
} }
public static object ToEnum(this ExtraPropertyDictionary extraPropertyDictionary, string key, Type enumType) public static object ToEnum(this ExtraPropertyDictionary extraPropertyDictionary, string key, Type enumType)
{ {
if (!enumType.IsEnum || extraPropertyDictionary[key].GetType() == enumType) if (!enumType.IsEnum || extraPropertyDictionary[key]!.GetType() == enumType)
{ {
return extraPropertyDictionary[key]; return extraPropertyDictionary[key]!;
} }
extraPropertyDictionary[key] = Enum.Parse(enumType, extraPropertyDictionary[key].ToString()!, ignoreCase: true); extraPropertyDictionary[key] = Enum.Parse(enumType, extraPropertyDictionary[key]!.ToString()!, ignoreCase: true);
return extraPropertyDictionary[key]; return extraPropertyDictionary[key]!;
} }
public static bool HasSameItems( public static bool HasSameItems(

6
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/Data/HasExtraPropertiesExtensions.cs

@ -20,7 +20,7 @@ public static class HasExtraPropertiesExtensions
public static object? GetProperty(this IHasExtraProperties source, string name, object? defaultValue = null) public static object? GetProperty(this IHasExtraProperties source, string name, object? defaultValue = null)
{ {
return source.ExtraProperties?.GetOrDefault(name) return source.ExtraProperties.GetOrDefault(name)
?? defaultValue; ?? defaultValue;
} }
@ -59,7 +59,7 @@ public static class HasExtraPropertiesExtensions
public static TSource SetProperty<TSource>( public static TSource SetProperty<TSource>(
this TSource source, this TSource source,
string name, string name,
object value, object? value,
bool validate = true) bool validate = true)
where TSource : IHasExtraProperties where TSource : IHasExtraProperties
{ {
@ -98,7 +98,7 @@ public static class HasExtraPropertiesExtensions
continue; continue;
} }
source.ExtraProperties[property.Name] = property.GetDefaultValue()!; source.ExtraProperties[property.Name] = property.GetDefaultValue();
} }
return source; return source;

8
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensibleObjectMapper.cs

@ -75,8 +75,8 @@ public static class ExtensibleObjectMapper
/// </param> /// </param>
/// <param name="ignoredProperties">Used to ignore some properties</param> /// <param name="ignoredProperties">Used to ignore some properties</param>
public static void MapExtraPropertiesTo<TSource, TDestination>( public static void MapExtraPropertiesTo<TSource, TDestination>(
[NotNull] Dictionary<string, object> sourceDictionary, [NotNull] Dictionary<string, object?> sourceDictionary,
[NotNull] Dictionary<string, object> destinationDictionary, [NotNull] Dictionary<string, object?> destinationDictionary,
MappingPropertyDefinitionChecks? definitionChecks = null, MappingPropertyDefinitionChecks? definitionChecks = null,
string[]? ignoredProperties = null) string[]? ignoredProperties = null)
where TSource : IHasExtraProperties where TSource : IHasExtraProperties
@ -110,8 +110,8 @@ public static class ExtensibleObjectMapper
public static void MapExtraPropertiesTo( public static void MapExtraPropertiesTo(
[NotNull] Type sourceType, [NotNull] Type sourceType,
[NotNull] Type destinationType, [NotNull] Type destinationType,
[NotNull] Dictionary<string, object> sourceDictionary, [NotNull] Dictionary<string, object?> sourceDictionary,
[NotNull] Dictionary<string, object> destinationDictionary, [NotNull] Dictionary<string, object?> destinationDictionary,
MappingPropertyDefinitionChecks? definitionChecks = null, MappingPropertyDefinitionChecks? definitionChecks = null,
string[]? ignoredProperties = null) string[]? ignoredProperties = null)
{ {

Loading…
Cancel
Save