diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index acbc322f12..c2b1557405 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -16,6 +16,7 @@ on: - 'templates/**/*.cshtml' - 'templates/**/*.csproj' - 'templates/**/*.razor' + - 'Directory.Build.props' pull_request: paths: @@ -31,6 +32,7 @@ on: - 'templates/**/*.cshtml' - 'templates/**/*.csproj' - 'templates/**/*.razor' + - 'Directory.Build.props' types: - opened - synchronize diff --git a/Directory.Build.props b/Directory.Build.props index 2b04bcc025..838ffcc995 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -43,7 +43,7 @@ true - 4.5.0 + 4.6.0 @@ -54,4 +54,4 @@ - \ No newline at end of file + diff --git a/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/POST.md b/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/POST.md index 5b1eba10ab..89cf9e340d 100644 --- a/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/POST.md +++ b/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/POST.md @@ -51,6 +51,14 @@ Please see the following migration documents, if you are upgrading from v7.2: ## Community News +### ABP Community Talks 2023.5: Mobile Development with the ABP Framework + +![](community-talks.png) + +In this episode, we'll talk about Exploring Options for Mobile Development with the ABP Framework. + +> Join us to explore the options for Mobile Development in ABP Framework on July 27, 2023, at 17:00 UTC. You can register from [here](https://kommunity.com/volosoft/events/abp-community-talks-20235-mobile-development-with-the-abp-framework-68e64e59). + ### New ABP Community Posts There are exciting articles contributed by the ABP community as always. I will highlight some of them here: diff --git a/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/community-talks.png b/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/community-talks.png new file mode 100644 index 0000000000..f6fded181f Binary files /dev/null and b/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/community-talks.png differ diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageEventArgs.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageEventArgs.cs index adae13a4c2..45bb66aaac 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageEventArgs.cs +++ b/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 UiMessageEventArgs(UiMessageType messageType, string message, string title, UiMessageOptions options) + public UiMessageEventArgs(UiMessageType messageType, string message, string? title, UiMessageOptions options) { MessageType = messageType; Message = message; @@ -13,7 +13,7 @@ public class UiMessageEventArgs : EventArgs Options = options; } - public UiMessageEventArgs(UiMessageType messageType, string message, string title, UiMessageOptions options, TaskCompletionSource callback) + public UiMessageEventArgs(UiMessageType messageType, string message, string? title, UiMessageOptions options, TaskCompletionSource callback) { MessageType = messageType; Message = message; @@ -26,7 +26,7 @@ public class UiMessageEventArgs : EventArgs public string Message { get; } - public string Title { get; } + public string? Title { get; } public UiMessageOptions Options { get; } diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationEventArgs.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationEventArgs.cs index 554450d025..c12f7a0f06 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationEventArgs.cs +++ b/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 UiNotificationEventArgs(UiNotificationType notificationType, string message, string title, UiNotificationOptions options) + public UiNotificationEventArgs(UiNotificationType notificationType, string message, string? title, UiNotificationOptions options) { NotificationType = notificationType; Message = message; @@ -16,7 +16,7 @@ public class UiNotificationEventArgs : EventArgs public string Message { get; } - public string Title { get; } + public string? Title { get; } public UiNotificationOptions Options { get; } } diff --git a/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs b/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs index a564edf18f..f4697a443a 100644 --- a/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs +++ b/framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs @@ -22,8 +22,8 @@ public static class AbpAutoMapperExtensibleDtoExtensions (source, destination, extraProps) => { var result = extraProps.IsNullOrEmpty() - ? new Dictionary() - : new Dictionary(extraProps); + ? new Dictionary() + : new Dictionary(extraProps); ExtensibleObjectMapper .MapExtraPropertiesTo( diff --git a/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj b/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj index 98a67869cf..aef38c1e10 100644 --- a/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj +++ b/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.AzureServiceBus Volo.Abp.AzureServiceBus $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/AzureServiceBusMessageConsumer.cs b/framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/AzureServiceBusMessageConsumer.cs index 71143b834e..4417a6ef79 100644 --- a/framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/AzureServiceBusMessageConsumer.cs +++ b/framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/AzureServiceBusMessageConsumer.cs @@ -20,9 +20,9 @@ public class AzureServiceBusMessageConsumer : IAzureServiceBusMessageConsumer, I private readonly IExceptionNotifier _exceptionNotifier; private readonly IProcessorPool _processorPool; private readonly ConcurrentBag> _callbacks; - private string _connectionName; - private string _subscriptionName; - private string _topicName; + private string _connectionName = default!; + private string _subscriptionName = default!; + private string _topicName = default!; public AzureServiceBusMessageConsumer( IExceptionNotifier exceptionNotifier, @@ -37,7 +37,7 @@ public class AzureServiceBusMessageConsumer : IAzureServiceBusMessageConsumer, I public virtual void Initialize( [NotNull] string topicName, [NotNull] string subscriptionName, - string connectionName) + string? connectionName) { Check.NotNull(topicName, nameof(topicName)); Check.NotNull(subscriptionName, nameof(subscriptionName)); diff --git a/framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/ClientConfig.cs b/framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/ClientConfig.cs index 9b9cbd6843..02b8397917 100644 --- a/framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/ClientConfig.cs +++ b/framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/ClientConfig.cs @@ -5,7 +5,7 @@ namespace Volo.Abp.AzureServiceBus; public class ClientConfig { - public string ConnectionString { get; set; } + public string ConnectionString { get; set; } = default!; public ServiceBusAdministrationClientOptions Admin { get; set; } = new(); diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj index 3633fd45e3..e12574e992 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.BackgroundJobs.Abstractions Volo.Abp.BackgroundJobs.Abstractions $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecuter.cs b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecuter.cs index 7798a8d9a6..6b6d822c50 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecuter.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecuter.cs @@ -54,7 +54,7 @@ public class BackgroundJobExecuter : IBackgroundJobExecuter, ITransientDependenc { if (jobExecuteMethod.Name == nameof(IAsyncBackgroundJob.ExecuteAsync)) { - await ((Task)jobExecuteMethod.Invoke(job, new[] { context.JobArgs })); + await ((Task)jobExecuteMethod.Invoke(job, new[] { context.JobArgs })!); } else { @@ -74,7 +74,7 @@ public class BackgroundJobExecuter : IBackgroundJobExecuter, ITransientDependenc throw new BackgroundJobExecutionException("A background job execution is failed. See inner exception for details.", ex) { - JobType = context.JobType.AssemblyQualifiedName, + JobType = context.JobType.AssemblyQualifiedName!, JobArgs = context.JobArgs }; } diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecutionException.cs b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecutionException.cs index 6c2df10a4f..f8c98437dc 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecutionException.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecutionException.cs @@ -6,9 +6,9 @@ namespace Volo.Abp.BackgroundJobs; [Serializable] public class BackgroundJobExecutionException : AbpException { - public string JobType { get; set; } + public string JobType { get; set; } = default!; - public object JobArgs { get; set; } + public object JobArgs { get; set; } = default!; public BackgroundJobExecutionException() { diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobNameAttribute.cs b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobNameAttribute.cs index edac395039..012569c423 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobNameAttribute.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobNameAttribute.cs @@ -22,11 +22,11 @@ public class BackgroundJobNameAttribute : Attribute, IBackgroundJobNameProvider { Check.NotNull(jobArgsType, nameof(jobArgsType)); - return jobArgsType - .GetCustomAttributes(true) - .OfType() - .FirstOrDefault() - ?.Name - ?? jobArgsType.FullName; + return (jobArgsType + .GetCustomAttributes(true) + .OfType() + .FirstOrDefault() + ?.Name + ?? jobArgsType.FullName)!; } } diff --git a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj index 5823174e54..8e79738248 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.BackgroundJobs.HangFire Volo.Abp.BackgroundJobs.HangFire $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs index ce2babaabc..ca874cd701 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs @@ -30,7 +30,7 @@ public class AbpBackgroundJobsHangfireModule : AbpModule } } - private BackgroundJobServer CreateOnlyEnqueueJobServer(IServiceProvider serviceProvider) + private BackgroundJobServer? CreateOnlyEnqueueJobServer(IServiceProvider serviceProvider) { serviceProvider.GetRequiredService(); return null; diff --git a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/HangfireJobExecutionAdapter.cs b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/HangfireJobExecutionAdapter.cs index 58d2863618..8790243334 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/HangfireJobExecutionAdapter.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/HangfireJobExecutionAdapter.cs @@ -39,7 +39,7 @@ public class HangfireJobExecutionAdapter using (var scope = ServiceScopeFactory.CreateScope()) { var jobType = Options.GetJob(typeof(TArgs)).JobType; - var context = new JobExecutionContext(scope.ServiceProvider, jobType, args, cancellationToken: cancellationToken); + var context = new JobExecutionContext(scope.ServiceProvider, jobType, args!, cancellationToken: cancellationToken); await JobExecuter.ExecuteAsync(context); } } diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj index 1326926d55..47847d00c8 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.BackgroundJobs.Quartz Volo.Abp.BackgroundJobs.Quartz $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs index fb0a7bb406..2aac41e885 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs @@ -30,7 +30,7 @@ public class AbpBackgroundJobQuartzOptions { exception.RefireImmediately = true; - var retryCount = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + nameof(RetryCount)).To(); + var retryCount = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + nameof(RetryCount))!.To(); if (retryIndex > retryCount) { exception.RefireImmediately = false; @@ -38,7 +38,7 @@ public class AbpBackgroundJobQuartzOptions return; } - var retryInterval = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + nameof(RetryIntervalMillisecond)).To(); + var retryInterval = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + nameof(RetryIntervalMillisecond))!.To(); await Task.Delay(retryInterval); } } diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs index 500cc8538e..6b2d8f36e0 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs @@ -19,10 +19,10 @@ public class AbpBackgroundJobsQuartzModule : AbpModule public override void OnPreApplicationInitialization(ApplicationInitializationContext context) { - var options = context.ServiceProvider.GetService>().Value; + var options = context.ServiceProvider.GetRequiredService>().Value; if (!options.IsJobExecutionEnabled) { - var quartzOptions = context.ServiceProvider.GetService>().Value; + var quartzOptions = context.ServiceProvider.GetRequiredService>().Value; quartzOptions.StartSchedulerFactory = scheduler => Task.CompletedTask; } } diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManageExtensions.cs b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManageExtensions.cs index 9eaa40574c..5c1e883888 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManageExtensions.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManageExtensions.cs @@ -6,7 +6,7 @@ namespace Volo.Abp.BackgroundJobs.Quartz; public static class QuartzBackgroundJobManageExtensions { - public static async Task EnqueueAsync(this IBackgroundJobManager backgroundJobManager, + public static async Task EnqueueAsync(this IBackgroundJobManager backgroundJobManager, TArgs args, int retryCount, int retryIntervalMillisecond, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null) { diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs index 99ef72adf6..135c2fc6f7 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs @@ -37,7 +37,7 @@ public class QuartzBackgroundJobManager : IBackgroundJobManager, ITransientDepen { var jobDataMap = new JobDataMap { - {nameof(TArgs), JsonSerializer.Serialize(args)}, + {nameof(TArgs), JsonSerializer.Serialize(args!)}, {JobDataPrefix+ nameof(Options.RetryCount), retryCount.ToString()}, {JobDataPrefix+ nameof(Options.RetryIntervalMillisecond), retryIntervalMillisecond.ToString()}, {JobDataPrefix+ RetryIndex, "0"} diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs index 588e844153..9005164043 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs @@ -38,9 +38,9 @@ public class QuartzJobExecutionAdapter : IJob { using (var scope = ServiceScopeFactory.CreateScope()) { - var args = JsonSerializer.Deserialize(context.JobDetail.JobDataMap.GetString(nameof(TArgs))); + var args = JsonSerializer.Deserialize(context.JobDetail.JobDataMap.GetString(nameof(TArgs))!); var jobType = Options.GetJob(typeof(TArgs)).JobType; - var jobContext = new JobExecutionContext(scope.ServiceProvider, jobType, args, cancellationToken: context.CancellationToken); + var jobContext = new JobExecutionContext(scope.ServiceProvider, jobType, args!, cancellationToken: context.CancellationToken); try { await JobExecuter.ExecuteAsync(jobContext); @@ -49,7 +49,7 @@ public class QuartzJobExecutionAdapter : IJob { var jobExecutionException = new JobExecutionException(exception); - var retryIndex = context.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + QuartzBackgroundJobManager.RetryIndex).To(); + var retryIndex = context.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + QuartzBackgroundJobManager.RetryIndex)!.To(); retryIndex++; context.JobDetail.JobDataMap.Put(QuartzBackgroundJobManager.JobDataPrefix + QuartzBackgroundJobManager.RetryIndex, retryIndex.ToString()); diff --git a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj index 40f87898ba..c4675f6039 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.BackgroundJobs.RabbitMQ Volo.Abp.BackgroundJobs.RabbitMQ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/IJobQueue.cs b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/IJobQueue.cs index b244707f04..b285f598cc 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/IJobQueue.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/IJobQueue.cs @@ -6,7 +6,7 @@ namespace Volo.Abp.BackgroundJobs.RabbitMQ; public interface IJobQueue : IRunnable, IDisposable { - Task EnqueueAsync( + Task EnqueueAsync( TArgs args, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null diff --git a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueue.cs b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueue.cs index 9c3bf26e62..9947ba64ac 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueue.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueue.cs @@ -21,8 +21,8 @@ public class JobQueue : IJobQueue protected BackgroundJobConfiguration JobConfiguration { get; } protected JobQueueConfiguration QueueConfiguration { get; } - protected IChannelAccessor ChannelAccessor { get; private set; } - protected AsyncEventingBasicConsumer Consumer { get; private set; } + protected IChannelAccessor? ChannelAccessor { get; private set; } + protected AsyncEventingBasicConsumer? Consumer { get; private set; } public ILogger> Logger { get; set; } @@ -71,7 +71,7 @@ public class JobQueue : IJobQueue ); } - public virtual async Task EnqueueAsync( + public virtual async Task EnqueueAsync( TArgs args, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null) @@ -176,11 +176,11 @@ public class JobQueue : IJobQueue basicProperties.Expiration = delay.Value.TotalMilliseconds.ToString(); } - ChannelAccessor.Channel.BasicPublish( + ChannelAccessor!.Channel.BasicPublish( exchange: "", routingKey: routingKey, basicProperties: basicProperties, - body: Serializer.Serialize(args) + body: Serializer.Serialize(args!) ); return Task.CompletedTask; @@ -188,7 +188,7 @@ public class JobQueue : IJobQueue protected virtual IBasicProperties CreateBasicPropertiesToPublish() { - var properties = ChannelAccessor.Channel.CreateBasicProperties(); + var properties = ChannelAccessor!.Channel.CreateBasicProperties(); properties.Persistent = true; return properties; } @@ -206,17 +206,17 @@ public class JobQueue : IJobQueue try { await JobExecuter.ExecuteAsync(context); - ChannelAccessor.Channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false); + ChannelAccessor!.Channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false); } catch (BackgroundJobExecutionException) { //TODO: Reject like that? - ChannelAccessor.Channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: true); + ChannelAccessor!.Channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: true); } catch (Exception) { //TODO: Reject like that? - ChannelAccessor.Channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: false); + ChannelAccessor!.Channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: false); } } } diff --git a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueueConfiguration.cs b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueueConfiguration.cs index ee706ab864..9425cd0604 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueueConfiguration.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueueConfiguration.cs @@ -9,7 +9,7 @@ public class JobQueueConfiguration : QueueDeclareConfiguration { public Type JobArgsType { get; } - public string ConnectionName { get; set; } + public string? ConnectionName { get; set; } public string DelayedQueueName { get; set; } @@ -17,7 +17,7 @@ public class JobQueueConfiguration : QueueDeclareConfiguration Type jobArgsType, string queueName, string delayedQueueName, - string connectionName = null, + string? connectionName = null, bool durable = true, bool exclusive = false, bool autoDelete = false, diff --git a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/RabbitMqBackgroundJobManager.cs b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/RabbitMqBackgroundJobManager.cs index ae550077e0..d81b2758b0 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/RabbitMqBackgroundJobManager.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/RabbitMqBackgroundJobManager.cs @@ -20,6 +20,6 @@ public class RabbitMqBackgroundJobManager : IBackgroundJobManager, ITransientDep TimeSpan? delay = null) { var jobQueue = await _jobQueueManager.GetAsync(); - return await jobQueue.EnqueueAsync(args, priority, delay); + return (await jobQueue.EnqueueAsync(args, priority, delay))!; } } diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj b/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj index 0ef692a9f2..29a4ed2edc 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.BackgroundJobs Volo.Abp.BackgroundJobs $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobInfo.cs b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobInfo.cs index deba940d12..0d5441a4bc 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobInfo.cs +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobInfo.cs @@ -12,12 +12,12 @@ public class BackgroundJobInfo /// /// Name of the job. /// - public virtual string JobName { get; set; } + public virtual string JobName { get; set; } = default!; /// /// Job arguments as serialized to string. /// - public virtual string JobArgs { get; set; } + public virtual string JobArgs { get; set; } = default!; /// /// Try count of this job. diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs index a222f91362..7218776cfe 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs @@ -32,7 +32,7 @@ public class DefaultBackgroundJobManager : IBackgroundJobManager, ITransientDepe public virtual async Task EnqueueAsync(TArgs args, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null) { var jobName = BackgroundJobNameAttribute.GetName(); - var jobId = await EnqueueAsync(jobName, args, priority, delay); + var jobId = await EnqueueAsync(jobName, args!, priority, delay); return jobId.ToString(); } diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/InMemoryBackgroundJobStore.cs b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/InMemoryBackgroundJobStore.cs index 726d65d513..7abbc188ce 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/InMemoryBackgroundJobStore.cs +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/InMemoryBackgroundJobStore.cs @@ -25,7 +25,7 @@ public class InMemoryBackgroundJobStore : IBackgroundJobStore, ISingletonDepende public virtual Task FindAsync(Guid jobId) { - return Task.FromResult(_jobs.GetOrDefault(jobId)); + return Task.FromResult(_jobs.GetOrDefault(jobId))!; } public virtual Task InsertAsync(BackgroundJobInfo jobInfo) diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj index 9792dbf1ff..bec3d235e6 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj +++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.BackgroundWorkers.Hangfire Volo.Abp.BackgroundWorkers.Hangfire $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs index 50f43736ff..afe9a90a8a 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs @@ -38,7 +38,7 @@ public class AbpBackgroundWorkersHangfireModule : AbpModule AsyncHelper.RunSync(() => OnPreApplicationInitializationAsync(context)); } - private BackgroundJobServer CreateOnlyEnqueueJobServer(IServiceProvider serviceProvider) + private BackgroundJobServer? CreateOnlyEnqueueJobServer(IServiceProvider serviceProvider) { serviceProvider.GetRequiredService(); return null; diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerBase.cs b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerBase.cs index c4cf1d6be0..e5cef1ce42 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerBase.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerBase.cs @@ -6,11 +6,11 @@ namespace Volo.Abp.BackgroundWorkers.Hangfire; public abstract class HangfireBackgroundWorkerBase : BackgroundWorkerBase, IHangfireBackgroundWorker { - public string RecurringJobId { get; set; } + public string? RecurringJobId { get; set; } - public string CronExpression { get; set; } + public string CronExpression { get; set; } = default!; - public TimeZoneInfo TimeZone { get; set; } + public TimeZoneInfo? TimeZone { get; set; } public string Queue { get; set; } diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs index 594f01343e..4b6582d03d 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs @@ -14,7 +14,7 @@ namespace Volo.Abp.BackgroundWorkers.Hangfire; [Dependency(ReplaceServices = true)] public class HangfireBackgroundWorkerManager : BackgroundWorkerManager, ISingletonDependency { - protected AbpHangfireBackgroundJobServer BackgroundJobServer { get; set; } + protected AbpHangfireBackgroundJobServer BackgroundJobServer { get; set; } = default!; protected IServiceProvider ServiceProvider { get; } public HangfireBackgroundWorkerManager(IServiceProvider serviceProvider) @@ -57,7 +57,7 @@ public class HangfireBackgroundWorkerManager : BackgroundWorkerManager, ISinglet var timer = worker.GetType() .GetProperty("Timer", BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(worker); - var period = worker is AsyncPeriodicBackgroundWorkerBase ? ((AbpAsyncTimer)timer)?.Period : ((AbpTimer)timer)?.Period; + var period = worker is AsyncPeriodicBackgroundWorkerBase ? ((AbpAsyncTimer?)timer)?.Period : ((AbpTimer?)timer)?.Period; if (period == null) { @@ -65,7 +65,7 @@ public class HangfireBackgroundWorkerManager : BackgroundWorkerManager, ISinglet } var adapterType = typeof(HangfirePeriodicBackgroundWorkerAdapter<>).MakeGenericType(ProxyHelper.GetUnProxiedType(worker)); - var workerAdapter = Activator.CreateInstance(adapterType) as IHangfireBackgroundWorker; + var workerAdapter = (Activator.CreateInstance(adapterType) as IHangfireBackgroundWorker)!; RecurringJob.AddOrUpdate(() => workerAdapter.DoWorkAsync(cancellationToken), GetCron(period.Value), workerAdapter.TimeZone, workerAdapter.Queue); diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfirePeriodicBackgroundWorkerAdapter.cs b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfirePeriodicBackgroundWorkerAdapter.cs index e1cec7da85..d624966fe4 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfirePeriodicBackgroundWorkerAdapter.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfirePeriodicBackgroundWorkerAdapter.cs @@ -14,8 +14,8 @@ public class HangfirePeriodicBackgroundWorkerAdapter : HangfireBackgrou public HangfirePeriodicBackgroundWorkerAdapter() { _doWorkAsyncMethod = - typeof(TWorker).GetMethod("DoWorkAsync", BindingFlags.Instance | BindingFlags.NonPublic); - _doWorkMethod = typeof(TWorker).GetMethod("DoWork", BindingFlags.Instance | BindingFlags.NonPublic); + typeof(TWorker).GetMethod("DoWorkAsync", BindingFlags.Instance | BindingFlags.NonPublic)!; + _doWorkMethod = typeof(TWorker).GetMethod("DoWork", BindingFlags.Instance | BindingFlags.NonPublic)!; } public async override Task DoWorkAsync(CancellationToken cancellationToken = default) @@ -26,7 +26,7 @@ public class HangfirePeriodicBackgroundWorkerAdapter : HangfireBackgrou switch (worker) { case AsyncPeriodicBackgroundWorkerBase asyncPeriodicBackgroundWorker: - await (Task)_doWorkAsyncMethod.Invoke(asyncPeriodicBackgroundWorker, new object[] { workerContext }); + await (Task)(_doWorkAsyncMethod.Invoke(asyncPeriodicBackgroundWorker, new object[] { workerContext })!); break; case PeriodicBackgroundWorkerBase periodicBackgroundWorker: _doWorkMethod.Invoke(periodicBackgroundWorker, new object[] { workerContext }); diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/IHangfireBackgroundWorker.cs b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/IHangfireBackgroundWorker.cs index 883f488684..4371ceb8b3 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/IHangfireBackgroundWorker.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/IHangfireBackgroundWorker.cs @@ -6,11 +6,11 @@ namespace Volo.Abp.BackgroundWorkers.Hangfire; public interface IHangfireBackgroundWorker : IBackgroundWorker { - string RecurringJobId { get; set; } + string? RecurringJobId { get; set; } string CronExpression { get; set; } - TimeZoneInfo TimeZone { get; set; } + TimeZoneInfo? TimeZone { get; set; } string Queue { get; set; } diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj index 2c43a121d1..0f4d807456 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj @@ -6,6 +6,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.BackgroundWorkers.Quartz Volo.Abp.BackgroundWorkers.Quartz $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs index 1e96efbe45..23ba05bc94 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs @@ -12,5 +12,5 @@ public interface IQuartzBackgroundWorker : IBackgroundWorker, IJob bool AutoRegister { get; set; } - Func ScheduleJob { get; set; } + Func? ScheduleJob { get; set; } } diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs index 0956dc2218..2ba8f6d8bd 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs @@ -6,13 +6,13 @@ namespace Volo.Abp.BackgroundWorkers.Quartz; public abstract class QuartzBackgroundWorkerBase : BackgroundWorkerBase, IQuartzBackgroundWorker { - public ITrigger Trigger { get; set; } + public ITrigger Trigger { get; set; } = default!; - public IJobDetail JobDetail { get; set; } + public IJobDetail JobDetail { get; set; } = default!; public bool AutoRegister { get; set; } = true; - public Func ScheduleJob { get; set; } = null; + public Func? ScheduleJob { get; set; } = null; public abstract Task Execute(IJobExecutionContext context); } diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzPeriodicBackgroundWorkerAdapter.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzPeriodicBackgroundWorkerAdapter.cs index fb94408bfe..767ac36412 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzPeriodicBackgroundWorkerAdapter.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzPeriodicBackgroundWorkerAdapter.cs @@ -1,6 +1,7 @@ using System; using System.Reflection; using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; using Quartz; using Volo.Abp.DynamicProxy; using Volo.Abp.Threading; @@ -12,8 +13,8 @@ public class QuartzPeriodicBackgroundWorkerAdapter : QuartzBackgroundWo IQuartzBackgroundWorkerAdapter where TWorker : IBackgroundWorker { - private readonly MethodInfo _doWorkAsyncMethod; - private readonly MethodInfo _doWorkMethod; + private readonly MethodInfo? _doWorkAsyncMethod; + private readonly MethodInfo? _doWorkMethod; public QuartzPeriodicBackgroundWorkerAdapter() { @@ -40,11 +41,11 @@ public class QuartzPeriodicBackgroundWorkerAdapter : QuartzBackgroundWo if (worker is AsyncPeriodicBackgroundWorkerBase) { - period = ((AbpAsyncTimer)timer)?.Period; + period = ((AbpAsyncTimer?)timer)?.Period; } else { - period = ((AbpTimer)timer)?.Period; + period = ((AbpTimer?)timer)?.Period; } } else @@ -59,17 +60,17 @@ public class QuartzPeriodicBackgroundWorkerAdapter : QuartzBackgroundWo JobDetail = JobBuilder .Create>() - .WithIdentity(workerType.FullName) + .WithIdentity(workerType.FullName!) .Build(); Trigger = TriggerBuilder.Create() - .WithIdentity(workerType.FullName) + .WithIdentity(workerType.FullName!) .WithSimpleSchedule(builder => builder.WithInterval(TimeSpan.FromMilliseconds(period.Value)).RepeatForever()) .Build(); } public async override Task Execute(IJobExecutionContext context) { - var worker = (IBackgroundWorker) ServiceProvider.GetService(typeof(TWorker)); + var worker = (IBackgroundWorker) ServiceProvider.GetRequiredService(typeof(TWorker)); var workerContext = new PeriodicBackgroundWorkerContext(ServiceProvider, context.CancellationToken); switch (worker) @@ -78,7 +79,7 @@ public class QuartzPeriodicBackgroundWorkerAdapter : QuartzBackgroundWo { if (_doWorkAsyncMethod != null) { - await (Task) _doWorkAsyncMethod.Invoke(asyncWorker, new object[] {workerContext}); + await (Task) (_doWorkAsyncMethod.Invoke(asyncWorker, new object[] {workerContext})!); } break; diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj b/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj index f01a73d7a1..48e4b5fdf7 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.BackgroundWorkers Volo.Abp.BackgroundWorkers $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/BackgroundWorkerBase.cs b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/BackgroundWorkerBase.cs index dc32981d58..91bc360f72 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/BackgroundWorkerBase.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/BackgroundWorkerBase.cs @@ -14,13 +14,13 @@ public abstract class BackgroundWorkerBase : IBackgroundWorker { //TODO: Add UOW, Localization and other useful properties..? - public IAbpLazyServiceProvider LazyServiceProvider { get; set; } + public IAbpLazyServiceProvider LazyServiceProvider { get; set; } = default!; - public IServiceProvider ServiceProvider { get; set; } + public IServiceProvider ServiceProvider { get; set; } = default!; protected ILoggerFactory LoggerFactory => LazyServiceProvider.LazyGetRequiredService(); - protected ILogger Logger => LazyServiceProvider.LazyGetService(provider => LoggerFactory?.CreateLogger(GetType().FullName) ?? NullLogger.Instance); + protected ILogger Logger => LazyServiceProvider.LazyGetService(provider => LoggerFactory?.CreateLogger(GetType().FullName!) ?? NullLogger.Instance); protected CancellationTokenSource StoppingTokenSource { get; } protected CancellationToken StoppingToken { get; } @@ -47,6 +47,6 @@ public abstract class BackgroundWorkerBase : IBackgroundWorker public override string ToString() { - return GetType().FullName; + return GetType().FullName!; } } diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs index 393a4766cf..9d78d9237d 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs @@ -37,7 +37,7 @@ public abstract class PeriodicBackgroundWorkerBase : BackgroundWorkerBase await base.StopAsync(cancellationToken); } - private void Timer_Elapsed(object sender, System.EventArgs e) + private void Timer_Elapsed(object? sender, System.EventArgs e) { using (var scope = ServiceScopeFactory.CreateScope()) { diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index f476ecad89..58867d6e5d 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -174,32 +174,32 @@ public abstract class AbpCrudPageBase< where TCreateViewModel : class, new() where TUpdateViewModel : class, new() { - [Inject] protected TAppService AppService { get; set; } - [Inject] protected IStringLocalizer UiLocalizer { get; set; } - [Inject] public IAbpEnumLocalizer AbpEnumLocalizer { get; set; } + [Inject] protected TAppService AppService { get; set; } = default!; + [Inject] protected IStringLocalizer UiLocalizer { get; set; } = default!; + [Inject] public IAbpEnumLocalizer AbpEnumLocalizer { get; set; } = default!; protected virtual int PageSize { get; } = LimitedResultRequestDto.DefaultMaxResultCount; protected int CurrentPage = 1; - protected string CurrentSorting; + protected string CurrentSorting = default!; protected int? TotalCount; protected TGetListInput GetListInput = new TGetListInput(); protected IReadOnlyList Entities = Array.Empty(); protected TCreateViewModel NewEntity; - protected TKey EditingEntityId; + protected TKey EditingEntityId = default!; protected TUpdateViewModel EditingEntity; - protected Modal CreateModal; - protected Modal EditModal; - protected Validations CreateValidationsRef; - protected Validations EditValidationsRef; + protected Modal? CreateModal; + protected Modal? EditModal; + protected Validations? CreateValidationsRef; + protected Validations? EditValidationsRef; protected List BreadcrumbItems = new List(2); - protected DataGridEntityActionsColumn EntityActionsColumn; + protected DataGridEntityActionsColumn EntityActionsColumn = default!; protected EntityActionDictionary EntityActions { get; set; } protected TableColumnDictionary TableColumns { get; set; } - protected string CreatePolicyName { get; set; } - protected string UpdatePolicyName { get; set; } - protected string DeletePolicyName { get; set; } + protected string? CreatePolicyName { get; set; } + protected string? UpdatePolicyName { get; set; } + protected string? DeletePolicyName { get; set; } public bool HasCreatePermission { get; set; } public bool HasUpdatePermission { get; set; } @@ -360,7 +360,7 @@ public abstract class AbpCrudPageBase< protected virtual Task CloseCreateModalAsync() { NewEntity = new TCreateViewModel(); - return InvokeAsync(CreateModal.Hide); + return InvokeAsync(CreateModal!.Hide); } protected virtual Task ClosingCreateModal(ModalClosingEventArgs eventArgs) @@ -429,7 +429,7 @@ public abstract class AbpCrudPageBase< protected virtual Task CloseEditModalAsync() { - InvokeAsync(EditModal.Hide); + InvokeAsync(EditModal!.Hide); return Task.CompletedTask; } @@ -477,7 +477,7 @@ public abstract class AbpCrudPageBase< NewEntity = new TCreateViewModel(); await GetEntitiesAsync(); - await InvokeAsync(CreateModal.Hide); + await InvokeAsync(CreateModal!.Hide); } protected virtual async Task UpdateEntityAsync() @@ -515,7 +515,7 @@ public abstract class AbpCrudPageBase< { await GetEntitiesAsync(); - await InvokeAsync(EditModal.Hide); + await InvokeAsync(EditModal!.Hide); } protected virtual async Task DeleteEntityAsync(TListViewModel entity) @@ -572,7 +572,7 @@ public abstract class AbpCrudPageBase< /// Does nothing if is null or empty. /// /// A policy name to check - protected virtual async Task CheckPolicyAsync([CanBeNull] string policyName) + protected virtual async Task CheckPolicyAsync(string? policyName) { if (string.IsNullOrEmpty(policyName)) { @@ -633,7 +633,7 @@ public abstract class AbpCrudPageBase< if (propertyInfo.Name.EndsWith("_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 { Title = lookupPropertyDefinition.GetLocalizedDisplayName(StringLocalizerFactory), @@ -658,7 +658,7 @@ public abstract class AbpCrudPageBase< if (propertyInfo.Type.IsEnum) { column.ValueConverter = (val) => - AbpEnumLocalizer.GetString(propertyInfo.Type, val.As().ExtraProperties[propertyInfo.Name], new IStringLocalizer[]{ StringLocalizerFactory.CreateDefaultOrNull() }); + AbpEnumLocalizer.GetString(propertyInfo.Type, val.As().ExtraProperties[propertyInfo.Name]!, new IStringLocalizer?[]{ StringLocalizerFactory.CreateDefaultOrNull() }); } yield return column; diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs index de72bdaae2..6631a2236b 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs @@ -15,7 +15,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency /// /// An event raised after the message is received. Used to notify the message dialog. /// - public event EventHandler MessageReceived; + public event EventHandler? MessageReceived ; private readonly IStringLocalizer localizer; @@ -29,7 +29,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency Logger = NullLogger.Instance; } - public Task Info(string message, string title = null, Action options = null) + public Task Info(string message, string? title = null, Action? options = null) { var uiMessageOptions = CreateDefaultOptions(); options?.Invoke(uiMessageOptions); @@ -39,7 +39,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency return Task.CompletedTask; } - public Task Success(string message, string title = null, Action options = null) + public Task Success(string message, string? title = null, Action? options = null) { var uiMessageOptions = CreateDefaultOptions(); options?.Invoke(uiMessageOptions); @@ -49,7 +49,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency return Task.CompletedTask; } - public Task Warn(string message, string title = null, Action options = null) + public Task Warn(string message, string? title = null, Action? options = null) { var uiMessageOptions = CreateDefaultOptions(); options?.Invoke(uiMessageOptions); @@ -59,7 +59,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency return Task.CompletedTask; } - public Task Error(string message, string title = null, Action options = null) + public Task Error(string message, string? title = null, Action? options = null) { var uiMessageOptions = CreateDefaultOptions(); options?.Invoke(uiMessageOptions); @@ -69,7 +69,7 @@ public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency return Task.CompletedTask; } - public Task Confirm(string message, string title = null, Action options = null) + public Task Confirm(string message, string? title = null, Action? options = null) { var uiMessageOptions = CreateDefaultOptions(); options?.Invoke(uiMessageOptions); diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs index cd993f7f46..f34e34b890 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs @@ -11,9 +11,9 @@ public class BlazoriseUiNotificationService : IUiNotificationService, IScopedDep /// /// An event raised after the notification is received. /// - public event EventHandler NotificationReceived; + public event EventHandler? NotificationReceived; - public Task Info(string message, string title = null, Action options = null) + public Task Info(string message, string? title = null, Action? options = null) { var uiNotificationOptions = CreateDefaultOptions(); options?.Invoke(uiNotificationOptions); @@ -23,7 +23,7 @@ public class BlazoriseUiNotificationService : IUiNotificationService, IScopedDep return Task.CompletedTask; } - public Task Success(string message, string title = null, Action options = null) + public Task Success(string message, string? title = null, Action? options = null) { var uiNotificationOptions = CreateDefaultOptions(); options?.Invoke(uiNotificationOptions); @@ -33,7 +33,7 @@ public class BlazoriseUiNotificationService : IUiNotificationService, IScopedDep return Task.CompletedTask; } - public Task Warn(string message, string title = null, Action options = null) + public Task Warn(string message, string? title = null, Action? options = null) { var uiNotificationOptions = CreateDefaultOptions(); options?.Invoke(uiNotificationOptions); @@ -43,7 +43,7 @@ public class BlazoriseUiNotificationService : IUiNotificationService, IScopedDep return Task.CompletedTask; } - public Task Error(string message, string title = null, Action options = null) + public Task Error(string message, string? title = null, Action? options = null) { var uiNotificationOptions = CreateDefaultOptions(); options?.Invoke(uiNotificationOptions); diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs index a0516d8b4e..a3cd7372a6 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs @@ -44,7 +44,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions typeof(PhoneAttribute) }; - public static string GetDateEditInputFormatOrNull(this IBasicObjectExtensionPropertyInfo property) + public static string? GetDateEditInputFormatOrNull(this IBasicObjectExtensionPropertyInfo property) { if (property.IsDate()) { @@ -59,7 +59,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions return null; } - public static string GetTextInputValueOrNull(this IBasicObjectExtensionPropertyInfo property, object value) + public static string? GetTextInputValueOrNull(this IBasicObjectExtensionPropertyInfo property, object? value) { if (value == null) { @@ -74,7 +74,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions return value.ToString(); } - public static T GetInputValueOrDefault(this IBasicObjectExtensionPropertyInfo property, object value) + public static T? GetInputValueOrDefault(this IBasicObjectExtensionPropertyInfo property, object? value) { if (value == null) { @@ -204,7 +204,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions ?? typeof(TextExtensionProperty<,>); //default } - private static Type GetInputTypeFromAttributeOrNull(Attribute attribute) + private static Type? GetInputTypeFromAttributeOrNull(Attribute attribute) { var hasTextEditSupport = TextEditSupportedAttributeTypes.Any(t => t == attribute.GetType()); @@ -238,7 +238,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions return null; } - private static Type GetInputTypeFromTypeOrNull(Type type) + private static Type? GetInputTypeFromTypeOrNull(Type type) { if (type == typeof(bool)) { diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiPageProgressService.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiPageProgressService.cs index d2d82ad8a5..a49fc8aecc 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiPageProgressService.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiPageProgressService.cs @@ -12,9 +12,9 @@ public class BlazoriseUiPageProgressService : IUiPageProgressService, /// /// An event raised after the notification is received. /// - public event EventHandler ProgressChanged; + public event EventHandler? ProgressChanged; - public Task Go(int? percentage, Action options = null) + public Task Go(int? percentage, Action? options = null) { var uiPageProgressOptions = CreateDefaultOptions(); options?.Invoke(uiPageProgressOptions); diff --git a/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs b/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs index 3ccb68698f..7f02b02b85 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BreadcrumbItem.cs @@ -6,11 +6,11 @@ public class BreadcrumbItem { 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; Url = url; diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor index cbdfc25c99..522140811e 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor @@ -121,7 +121,7 @@ @{ var entity = context as IHasExtraProperties; 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 ((bool) propertyValue) diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs index f9baf631f5..4642afcadd 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs @@ -18,7 +18,7 @@ public partial class AbpExtensibleDataGrid : ComponentBase protected Regex ExtensionPropertiesRegex = new Regex(@"ExtraProperties\[(.*?)\]"); - [Parameter] public IEnumerable Data { get; set; } + [Parameter] public IEnumerable Data { get; set; } = default!; [Parameter] public EventCallback> ReadData { get; set; } @@ -28,16 +28,16 @@ public partial class AbpExtensibleDataGrid : ComponentBase [Parameter] public int PageSize { get; set; } - [Parameter] public IEnumerable Columns { get; set; } + [Parameter] public IEnumerable Columns { get; set; } = default!; [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; } [Inject] - public IStringLocalizerFactory StringLocalizerFactory { get; set; } + public IStringLocalizerFactory StringLocalizerFactory { get; set; } = default!; protected virtual RenderFragment RenderCustomTableColumnComponent(Type type, object data) { @@ -51,10 +51,10 @@ public partial class AbpExtensibleDataGrid : ComponentBase protected virtual string GetConvertedFieldValue(TItem item, TableColumn columnDefinition) { - var convertedValue = columnDefinition.ValueConverter.Invoke(item); + var convertedValue = columnDefinition.ValueConverter!.Invoke(item!); if (!columnDefinition.DisplayFormat.IsNullOrEmpty()) { - return string.Format(columnDefinition.DisplayFormatProvider, columnDefinition.DisplayFormat, + return string.Format(columnDefinition.DisplayFormatProvider, columnDefinition.DisplayFormat!, convertedValue); } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/AlertWrapper.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/AlertWrapper.cs index ba2024cecb..04b9f18a48 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/AlertWrapper.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/AlertWrapper.cs @@ -4,6 +4,6 @@ namespace Volo.Abp.BlazoriseUI.Components; internal class AlertWrapper { - public AlertMessage AlertMessage { get; set; } + public AlertMessage AlertMessage { get; set; } = default!; public bool IsVisible { get; set; } } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs index 3d52012efd..9a39acd4fc 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs @@ -10,7 +10,7 @@ namespace Volo.Abp.BlazoriseUI.Components; public partial class DataGridEntityActionsColumn : DataGridColumn { [Inject] - public IStringLocalizer UiLocalizer { get; set; } + public IStringLocalizer UiLocalizer { get; set; } = default!; protected override async Task OnInitializedAsync() { diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs index a38d915ff1..ef487bafcb 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs @@ -18,7 +18,7 @@ public partial class EntityAction : ComponentBase internal bool HasPermission { get; set; } = true; [Parameter] - public string Text { get; set; } + public string Text { get; set; } = default!; [Parameter] public bool Primary { get; set; } @@ -28,25 +28,25 @@ public partial class EntityAction : ComponentBase [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.")] - public string RequiredPolicy { get; set; } + public string? RequiredPolicy { get; set; } [Parameter] - public Color Color { get; set; } + public Color? Color { get; set; } [Parameter] - public Func ConfirmationMessage { get; set; } + public Func? ConfirmationMessage { get; set; } [Parameter] - public string Icon { get; set; } + public string? Icon { get; set; } [CascadingParameter] - public EntityActions ParentActions { get; set; } + public EntityActions ParentActions { get; set; } = default!; [Inject] - protected IAuthorizationService AuthorizationService { get; set; } + protected IAuthorizationService AuthorizationService { get; set; } = default!; [Inject] - protected IUiMessageService UiMessageService { get; set; } + protected IUiMessageService UiMessageService { get; set; } = default!; protected async override Task OnInitializedAsync() { @@ -55,7 +55,7 @@ public partial class EntityAction : ComponentBase if (!RequiredPolicy.IsNullOrEmpty()) { - HasPermission = await AuthorizationService.IsGrantedAsync(RequiredPolicy); + HasPermission = await AuthorizationService.IsGrantedAsync(RequiredPolicy!); } ParentActions.AddAction(this); } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor index b362358d70..844dea4950 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor @@ -6,7 +6,7 @@ @if ( HasPrimaryAction ) {