diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs index 445ccbaba0..2190489d4c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs @@ -4,10 +4,9 @@ using Microsoft.Extensions.Logging; namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { - public class AbpExceptionHandlingLogger : ILogger, IDisposable + public class AbpExceptionHandlingLogger : ILogger { private readonly IServiceCollection _serviceCollection; - private IServiceScope _serviceScope; private IUserExceptionInformer _userExceptionInformer; public AbpExceptionHandlingLogger(IServiceCollection serviceCollection) @@ -39,7 +38,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling return; } - _userExceptionInformer.InformAsync(new UserExceptionInformerContext(exception)); + _userExceptionInformer.Inform(new UserExceptionInformerContext(exception)); } protected virtual void TryInitialize() @@ -50,8 +49,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling return; } - _serviceScope = serviceProvider.CreateScope(); - _userExceptionInformer = _serviceScope.ServiceProvider.GetRequiredService(); + _userExceptionInformer = serviceProvider.GetRequiredService(); } public virtual bool IsEnabled(LogLevel logLevel) @@ -63,10 +61,5 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { return NullDisposable.Instance; } - - public virtual void Dispose() - { - _serviceScope?.Dispose(); - } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs index d295559284..85eb021284 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs @@ -32,7 +32,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling public void Dispose() { - _logger.Dispose(); + } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs index 4399e706ec..2abbe3667b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs @@ -1,10 +1,7 @@ -using System; -using System.Threading.Tasks; - -namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling +namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { public interface IUserExceptionInformer { - Task InformAsync(UserExceptionInformerContext context); + void Inform(UserExceptionInformerContext context); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs index 80f80c675a..c409c38319 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs @@ -1,5 +1,7 @@ using System; using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.AspNetCore.ExceptionHandling; using Volo.Abp.DependencyInjection; using Volo.Abp.Http; @@ -9,19 +11,32 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { public class UserExceptionInformer : IUserExceptionInformer, ITransientDependency { + public ILogger Logger { get; set; } protected IUiMessageService MessageService { get; } protected IExceptionToErrorInfoConverter ExceptionToErrorInfoConverter { get; } - public UserExceptionInformer(IUiMessageService messageService, IExceptionToErrorInfoConverter exceptionToErrorInfoConverter) + public UserExceptionInformer( + IUiMessageService messageService, + IExceptionToErrorInfoConverter exceptionToErrorInfoConverter) { MessageService = messageService; ExceptionToErrorInfoConverter = exceptionToErrorInfoConverter; + Logger = NullLogger.Instance; } - public virtual async Task InformAsync(UserExceptionInformerContext context) + public void Inform(UserExceptionInformerContext context) { var errorInfo = GetErrorInfo(context); - await ShowErrorInfoAsync(errorInfo); + + if (errorInfo.Details.IsNullOrEmpty()) + { + //TODO: Should we introduce MessageService.Error (sync) method instead of such a usage (without await)..? + MessageService.ErrorAsync(errorInfo.Message); + } + else + { + MessageService.ErrorAsync(errorInfo.Details, errorInfo.Message); + } } protected virtual RemoteServiceErrorInfo GetErrorInfo(UserExceptionInformerContext context) @@ -33,17 +48,5 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling return ExceptionToErrorInfoConverter.Convert(context.Exception, false); } - - protected virtual async Task ShowErrorInfoAsync(RemoteServiceErrorInfo errorInfo) - { - if (errorInfo.Details.IsNullOrEmpty()) - { - await MessageService.ErrorAsync(errorInfo.Message); - } - else - { - await MessageService.ErrorAsync(errorInfo.Details, errorInfo.Message); - } - } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs similarity index 87% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs rename to framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs index 93970de348..8f43b3fdcd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs @@ -5,12 +5,11 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Components.WebAssembly { - //TODO: Implement with sweetalert in a new package - public class UiMessageService : IUiMessageService, ITransientDependency + public class SimpleUiMessageService : IUiMessageService, ITransientDependency { protected IJSRuntime JsRuntime { get; } - public UiMessageService(IJSRuntime jsRuntime) + public SimpleUiMessageService(IJSRuntime jsRuntime) { JsRuntime = jsRuntime; }