diff --git a/README.md b/README.md index f1369c7c..d317415d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 通用后台权限管理系统、快速开发框架(基于C#12/.NET9、Vue3/Vite、Element Plus等现代技术构建,具有十分整洁、优雅的编码规范) -[![.NET](https://github.com/nsnail/NetAdmin/actions/workflows/ci.yml/badge.svg)](https://github.com/nsnail/NetAdmin/actions/workflows/ci.yml) +[![.NET](https://github.com/nsnail/NetAdmin/actions/workflows/nightly-build.yml/badge.svg)](https://github.com/nsnail/NetAdmin/actions/workflows/ci.yml) [![MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/nsnail/NetAdmin/blob/main/LICENSE) [![Furion](https://img.shields.io/badge/Furion-4.x-blueviolet.svg)](https://github.com/nsnail/NetAdmin/blob/main/LICENSE) [![FreeSql](https://img.shields.io/badge/FreeSql-3.x-orange.svg)](https://github.com/nsnail/NetAdmin/blob/main/LICENSE) diff --git a/build/code.quality.props b/build/code.quality.props index fb2615ce..0960b406 100644 --- a/build/code.quality.props +++ b/build/code.quality.props @@ -15,15 +15,15 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/scripts/switcher.furion.json b/scripts/switcher.furion.json index 1f5ed678..6f103741 100644 --- a/scripts/switcher.furion.json +++ b/scripts/switcher.furion.json @@ -9,7 +9,7 @@ "packages": [ { "packageName": "Furion.Pure.NS", - "version": "4.9.2.31-ns3" + "version": "4.9.3-ns3" } ] } diff --git a/src/backend/NetAdmin.Host/Filters/DefaultApiResultHandler.cs b/src/backend/NetAdmin.Host/Filters/DefaultApiResultHandler.cs index 9a644062..b6dda4b4 100644 --- a/src/backend/NetAdmin.Host/Filters/DefaultApiResultHandler.cs +++ b/src/backend/NetAdmin.Host/Filters/DefaultApiResultHandler.cs @@ -1,8 +1,16 @@ +using Furion.FriendlyException; using NetAdmin.Domain.Dto; namespace NetAdmin.Host.Filters; -/// +/// [SuppressSniffer] [UnifyModel(typeof(RestfulInfo<>))] -public sealed class DefaultApiResultHandler : ApiResultHandler>, IUnifyResultProvider; \ No newline at end of file +public sealed class DefaultApiResultHandler : ApiResultHandler>, IUnifyResultProvider +{ + /// + public IActionResult OnAuthorizeException(DefaultHttpContext context, ExceptionMetadata metadata) + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/src/backend/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj b/src/backend/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj index 361cd60c..9e1914d8 100644 --- a/src/backend/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj +++ b/src/backend/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj @@ -9,9 +9,9 @@ - - - + + + diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs index 1bec7783..c4eb9ad4 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs @@ -134,9 +134,9 @@ public sealed class UserService( req.ThrowIfInvalid(); // ReSharper disable once MethodHasAsyncOverload - #pragma warning disable VSTHRD103 + #pragma warning disable VSTHRD103,S6966 return (await QueryInternal(new QueryReq { Filter = req }) - #pragma warning restore VSTHRD103 + #pragma warning restore S6966, VSTHRD103 .ForUpdate() .ToOneAsync() .ConfigureAwait(false)).Adapt(); @@ -257,7 +257,9 @@ public sealed class UserService( if (await Rpo.UpdateDiy .SetSource(req with { Id = UserToken.Id - , Version = Rpo.Where(a => a.Id == UserToken.Id).ToOne(a => a.Version) + , Version = await Rpo.Where(a => a.Id == UserToken.Id) + .ToOneAsync(a => a.Version) + .ConfigureAwait(false) }) .UpdateColumns(a => a.Avatar) .ExecuteAffrowsAsync() @@ -278,7 +280,9 @@ public sealed class UserService( public async Task SetEmailAsync(SetEmailReq req) { req.ThrowIfInvalid(); - var user = Rpo.Where(a => a.Id == UserToken.Id).ToOne(a => new { a.Mobile, a.Version, a.Email }); + var user = await Rpo.Where(a => a.Id == UserToken.Id) + .ToOneAsync(a => new { a.Mobile, a.Version, a.Email }) + .ConfigureAwait(false); // 如果已绑定手机号、需要手机安全验证 if (!user.Mobile.NullOrEmpty()) {