diff --git a/src/Admin/BlazorSetParametersAsyncGenerator/SourceGenerator/SetParametersAsyncGenerator.cs b/src/Admin/BlazorSetParametersAsyncGenerator/SourceGenerator/SetParametersAsyncGenerator.cs index 7f7587c51..28d9a9202 100644 --- a/src/Admin/BlazorSetParametersAsyncGenerator/SourceGenerator/SetParametersAsyncGenerator.cs +++ b/src/Admin/BlazorSetParametersAsyncGenerator/SourceGenerator/SetParametersAsyncGenerator.cs @@ -435,5 +435,4 @@ namespace {namespaceName} m.DeclaredAccessibility == Accessibility.Public && !m.IsStatic); } - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Admin.Application/Aop/OperDescAttribute.cs b/src/Admin/ThingsGateway.Admin.Application/Aop/OperDescAttribute.cs index 556a79bda..d30df973a 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Aop/OperDescAttribute.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Aop/OperDescAttribute.cs @@ -84,7 +84,6 @@ public sealed class OperDescAttribute : MoAttribute { if (App.HttpContext?.Request.Path.StartsWithSegments("/_blazor") == true) { - //插入操作日志 SysOperateLog log = GetOperLog(LocalizerType, context); OperDescAttribute.WriteToQueue(log); diff --git a/src/Admin/ThingsGateway.Admin.Application/Attributes/IgnoreRolePermissionAttribute.cs b/src/Admin/ThingsGateway.Admin.Application/Attributes/IgnoreRolePermissionAttribute.cs index 922063946..1e4a12224 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Attributes/IgnoreRolePermissionAttribute.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Attributes/IgnoreRolePermissionAttribute.cs @@ -18,7 +18,6 @@ public sealed class RolePermissionAttribute : Attribute { } - /// /// 忽略角色授权权限 /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Attributes/LoginLogAttribute.cs b/src/Admin/ThingsGateway.Admin.Application/Attributes/LoginLogAttribute.cs index 86e72bcb9..343e0969f 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Attributes/LoginLogAttribute.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Attributes/LoginLogAttribute.cs @@ -10,7 +10,6 @@ namespace ThingsGateway.Admin.Application; - [AttributeUsage(AttributeTargets.Method)] public sealed class LoginLogAttribute : Attribute { diff --git a/src/Admin/ThingsGateway.Admin.Application/Controller/AuthController.cs b/src/Admin/ThingsGateway.Admin.Application/Controller/AuthController.cs index aef2e1240..f90c312d4 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Controller/AuthController.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Controller/AuthController.cs @@ -31,9 +31,7 @@ public class AuthController : ControllerBase [LoginLog] public Task LoginAsync([FromBody] LoginInput input) { - return _authService.LoginAsync(input); - } [HttpGet("oauth-login")] @@ -48,7 +46,6 @@ public class AuthController : ControllerBase return Challenge(props, scheme); } - [HttpPost("logout")] [Authorize] [IgnoreRolePermission] diff --git a/src/Admin/ThingsGateway.Admin.Application/Controller/OpenApiController.cs b/src/Admin/ThingsGateway.Admin.Application/Controller/OpenApiController.cs index 5a8ffd64d..d6e506c3d 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Controller/OpenApiController.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Controller/OpenApiController.cs @@ -15,7 +15,6 @@ using System.ComponentModel; namespace ThingsGateway.Admin.Application; - /// /// 登录 /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Entity/SysOrg.cs b/src/Admin/ThingsGateway.Admin.Application/Entity/SysOrg.cs index da7de367a..5daa58c3f 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Entity/SysOrg.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Entity/SysOrg.cs @@ -66,12 +66,9 @@ public class SysOrg : BaseEntity [AutoGenerateColumn(Visible = true, Sortable = true, Filterable = true)] public OrgEnum Category { get; set; } - [SugarColumn(ColumnName = "Status", ColumnDescription = "启用")] [AutoGenerateColumn(Visible = true, Sortable = true, Filterable = true)] public bool Status { get; set; } = true; - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Entity/SysPosition.cs b/src/Admin/ThingsGateway.Admin.Application/Entity/SysPosition.cs index e74f86dfd..bf645713e 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Entity/SysPosition.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Entity/SysPosition.cs @@ -10,8 +10,6 @@ using System.ComponentModel.DataAnnotations; - - namespace ThingsGateway.Admin.Application; /// @@ -44,7 +42,6 @@ public class SysPosition : BaseEntity [AutoGenerateColumn(Visible = true, Sortable = true, Filterable = true)] public string Code { get; set; } - [SugarColumn(ColumnName = "Status", ColumnDescription = "启用")] [AutoGenerateColumn(Visible = true, Sortable = true, Filterable = true)] public bool Status { get; set; } = true; @@ -55,5 +52,4 @@ public class SysPosition : BaseEntity [SugarColumn(ColumnName = "Category", ColumnDescription = "分类")] [AutoGenerateColumn(Visible = true, Sortable = true, Filterable = true)] public virtual PositionCategoryEnum Category { get; set; } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Entity/SysRole.cs b/src/Admin/ThingsGateway.Admin.Application/Entity/SysRole.cs index 3dcf2f2df..ad435f003 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Entity/SysRole.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Entity/SysRole.cs @@ -71,8 +71,6 @@ public class SysRole : BaseEntity } } - - /// /// 默认数据范围 /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Entity/SysUser.cs b/src/Admin/ThingsGateway.Admin.Application/Entity/SysUser.cs index dc8f311c1..119fdf68d 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Entity/SysUser.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Entity/SysUser.cs @@ -225,7 +225,6 @@ public class SysUser : BaseEntity [AutoGenerateColumn(Ignore = true)] public long? TenantId { get; set; } - /// /// 全局用戶 /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Entity/VerificatInfo.cs b/src/Admin/ThingsGateway.Admin.Application/Entity/VerificatInfo.cs index 7489ee91a..8dcf6264e 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Entity/VerificatInfo.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Entity/VerificatInfo.cs @@ -15,7 +15,6 @@ namespace ThingsGateway.Admin.Application; /// /// 会话信息 /// - [SugarTable("verificatinfo", TableDescription = "验证缓存表")] [Tenant(SqlSugarConst.DB_TokenCache)] public class VerificatInfo : PrimaryIdEntity @@ -79,6 +78,4 @@ public class VerificatInfo : PrimaryIdEntity /// [AutoGenerateColumn(Filterable = true, Sortable = true, Width = 100)] public string Device { get; set; } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Enum/DataScopeEnum.cs b/src/Admin/ThingsGateway.Admin.Application/Enum/DataScopeEnum.cs index d25d2af40..9394b97d9 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Enum/DataScopeEnum.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Enum/DataScopeEnum.cs @@ -12,7 +12,6 @@ namespace ThingsGateway.Admin.Application; public enum DataScopeEnum { - /// /// 仅自己 /// @@ -37,5 +36,4 @@ public enum DataScopeEnum /// 自定义 /// SCOPE_ORG_DEFINE, - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Extensions/SchemeHelper.cs b/src/Admin/ThingsGateway.Admin.Application/Extensions/SchemeHelper.cs index 7570453d2..7ddef871b 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Extensions/SchemeHelper.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Extensions/SchemeHelper.cs @@ -16,7 +16,6 @@ namespace ThingsGateway.Admin.Application; [ThingsGateway.DependencyInjection.SuppressSniffer] public static class SchemeHelper { - public static string GetOrCreate() { var path = "Keys/SchemeKey.txt"; @@ -33,5 +32,4 @@ public static class SchemeHelper return data; } } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditAttribute.cs b/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditAttribute.cs index ecbc4b706..7e5ee9ffa 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditAttribute.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditAttribute.cs @@ -6,5 +6,4 @@ namespace System; [SuppressSniffer, AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = false)] public sealed class RequestAuditAttribute : Attribute { - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditData.cs b/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditData.cs index abd07f9d0..ab4619d4b 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditData.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditData.cs @@ -61,7 +61,6 @@ public class RequestAuditData public long TimeOperationElapsedMilliseconds { get; set; } - /// /// 服务端 /// @@ -98,4 +97,3 @@ public class RequestAuditData public Validation Validation { get; set; } public MethodInfo MethodInfo { get; set; } } - diff --git a/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditFilter.cs b/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditFilter.cs index 8b876a5e1..7a7dd2f09 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditFilter.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Filter/RequestAuditFilter.cs @@ -41,7 +41,6 @@ public class RequestAuditFilter : IAsyncActionFilter, IOrderedFilter // 获取动作方法描述器 var actionMethod = controllerActionDescriptor?.MethodInfo; - // 处理 Blazor Server if (actionMethod == null) { @@ -61,7 +60,6 @@ public class RequestAuditFilter : IAsyncActionFilter, IOrderedFilter return; } - // 只有方法贴有特性才进行审计 if ( !actionMethod.DeclaringType.IsDefined(typeof(RequestAuditAttribute), true) @@ -71,12 +69,8 @@ public class RequestAuditFilter : IAsyncActionFilter, IOrderedFilter return; } - - - var logData = new RequestAuditData(); - logData.TimeOperationElapsedMilliseconds = timeOperation.ElapsedMilliseconds; var resultHttpContext = (resultContext as Microsoft.AspNetCore.Mvc.Filters.FilterContext).HttpContext; @@ -145,8 +139,6 @@ public class RequestAuditFilter : IAsyncActionFilter, IOrderedFilter }); } - - logData.LocalIPv4 = httpContext.GetLocalIpAddressToIPv4(); logData.LogDateTime = DateTimeOffset.Now; var parameterValues = context.ActionArguments; @@ -167,7 +159,6 @@ public class RequestAuditFilter : IAsyncActionFilter, IOrderedFilter _ = parameterValues.TryGetValue(name, out var value); - var par = new Parameters() { Name = name, @@ -233,7 +224,6 @@ public class RequestAuditFilter : IAsyncActionFilter, IOrderedFilter par.Value = rawValue; } - // 获取异常对象情况 Exception exception = resultContext.Exception; if (exception is AppFriendlyException friendlyException) @@ -249,8 +239,6 @@ public class RequestAuditFilter : IAsyncActionFilter, IOrderedFilter logData.Exception.Type = HandleGenericType(exception.GetType()); } - - // 创建日志记录器 var logger = httpContext.RequestServices.GetRequiredService>(); @@ -296,6 +284,4 @@ public class RequestAuditFilter : IAsyncActionFilter, IOrderedFilter } - - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Admin.Application/Filter/SuppressRequestAuditAttribute.cs b/src/Admin/ThingsGateway.Admin.Application/Filter/SuppressRequestAuditAttribute.cs index 830c0b7df..173c3fc7e 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Filter/SuppressRequestAuditAttribute.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Filter/SuppressRequestAuditAttribute.cs @@ -6,5 +6,4 @@ namespace System; [SuppressSniffer, AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = false)] public sealed class SuppressRequestAuditAttribute : Attribute { - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Admin.Application/Job/Hardware/HardwareJob.cs b/src/Admin/ThingsGateway.Admin.Application/Job/Hardware/HardwareJob.cs index 97ed453eb..a6d3da46b 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Job/Hardware/HardwareJob.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Job/Hardware/HardwareJob.cs @@ -92,7 +92,6 @@ public class HardwareJob : IJob, IHardwareJob HardwareInfo.UUID = HardwareInfo.MachineInfo.UUID; HardwareInfo.UpdateTime = TimerX.Now.ToDefaultDateTimeFormat(); - } } catch @@ -154,5 +153,4 @@ public class HardwareJob : IJob, IHardwareJob } } } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Job/JobPersistence.cs b/src/Admin/ThingsGateway.Admin.Application/Job/JobPersistence.cs index b048087b2..d0e64def3 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Job/JobPersistence.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Job/JobPersistence.cs @@ -17,7 +17,6 @@ namespace ThingsGateway.Admin.Application; /// public class JobPersistence : IJobPersistence { - /// /// 作业调度服务启动时 /// @@ -61,7 +60,6 @@ public class JobPersistence : IJobPersistence public async Task OnTriggerChangedAsync(PersistenceTriggerContext context) { await Task.CompletedTask.ConfigureAwait(false); - } /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Logging/DatabaseLoggingWriter.cs b/src/Admin/ThingsGateway.Admin.Application/Logging/DatabaseLoggingWriter.cs index 326e325a8..86e6ba5ed 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Logging/DatabaseLoggingWriter.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Logging/DatabaseLoggingWriter.cs @@ -105,7 +105,6 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter //获取结果json字符串 var resultJson = requestAuditData.ReturnInformation?.ToSystemTextJsonString(); - //操作日志表实体 var sysLogOperate = new SysOperateLog { diff --git a/src/Admin/ThingsGateway.Admin.Application/Mapper/AdminMapper.cs b/src/Admin/ThingsGateway.Admin.Application/Mapper/AdminMapper.cs index a30ed2af6..6dd6e2f9d 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Mapper/AdminMapper.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Mapper/AdminMapper.cs @@ -25,7 +25,3 @@ public static partial class AdminMapper public static partial QueryData AdaptQueryDataUserSelectorOutput(this QueryData src); public static partial LoginInput AdaptLoginInput(this LoginInput src); } - - - - diff --git a/src/Admin/ThingsGateway.Admin.Application/OAuth/AdminOAuthHandler.cs b/src/Admin/ThingsGateway.Admin.Application/OAuth/AdminOAuthHandler.cs index 86c442e53..e38f5d3e5 100644 --- a/src/Admin/ThingsGateway.Admin.Application/OAuth/AdminOAuthHandler.cs +++ b/src/Admin/ThingsGateway.Admin.Application/OAuth/AdminOAuthHandler.cs @@ -28,8 +28,6 @@ public class AdminOAuthHandler( ) : OAuthHandler(options, logger, encoder) where TOptions : AdminOAuthOptions, new() { - - static AdminOAuthHandler() { Task.Factory.StartNew(Insertable, TaskCreationOptions.LongRunning); @@ -66,8 +64,6 @@ public class AdminOAuthHandler( await Task.Delay(3000, appLifetime.ApplicationStopping).ConfigureAwait(false); } } - - } protected override async Task CreateTicketAsync( @@ -97,7 +93,6 @@ public class AdminOAuthHandler( identity.AddClaim(new Claim(ClaimConst.OrgId, RoleConst.DefaultTenantId.ToString())); identity.AddClaim(new Claim(ClaimConst.TenantId, RoleConst.DefaultTenantId.ToString())); - var context = new OAuthCreatingTicketContext( new ClaimsPrincipal(identity), properties, @@ -143,10 +138,6 @@ public class AdminOAuthHandler( return new AuthenticationTicket(context.Principal, context.Properties, Scheme.Name); } - - - - private async Task GetLogin(int expire) { var sysUser = await sysUserService.GetUserByIdAsync(RoleConst.SuperAdminId).ConfigureAwait(false);//获取用户信息 @@ -174,7 +165,6 @@ public class AdminOAuthHandler( LoginTime = loginEvent.DateTime }; - //添加到verificat列表 verificatInfoService.Add(verificatInfo); return loginEvent; diff --git a/src/Admin/ThingsGateway.Admin.Application/OAuth/AdminOAuthOptions.cs b/src/Admin/ThingsGateway.Admin.Application/OAuth/AdminOAuthOptions.cs index ea96a4398..e65b525b1 100644 --- a/src/Admin/ThingsGateway.Admin.Application/OAuth/AdminOAuthOptions.cs +++ b/src/Admin/ThingsGateway.Admin.Application/OAuth/AdminOAuthOptions.cs @@ -34,7 +34,6 @@ public abstract class AdminOAuthOptions : OAuthOptions /// 配置 Claims 映射 protected virtual void ConfigureClaims() { - } public virtual string GetName(JsonElement element) @@ -46,8 +45,6 @@ public abstract class AdminOAuthOptions : OAuthOptions /// 获得/设置 登陆后首页 public string HomePath { get; set; } = "/"; - - /// 处理用户信息方法 public virtual async Task HandleUserInfoAsync(HttpContext context, OAuthTokenResponse tokens) { diff --git a/src/Admin/ThingsGateway.Admin.Application/OAuth/Gitee/GiteeOAuthOptions.cs b/src/Admin/ThingsGateway.Admin.Application/OAuth/Gitee/GiteeOAuthOptions.cs index 72ee648dc..463715bc4 100644 --- a/src/Admin/ThingsGateway.Admin.Application/OAuth/Gitee/GiteeOAuthOptions.cs +++ b/src/Admin/ThingsGateway.Admin.Application/OAuth/Gitee/GiteeOAuthOptions.cs @@ -26,10 +26,7 @@ public class GiteeOAuthOptions : AdminOAuthOptions Scope.Add("user_info"); Scope.Add("projects"); - Events.OnCreatingTicket = async context => - { - await HandlerGiteeStarredUrl(context).ConfigureAwait(false); - }; + Events.OnCreatingTicket = async context => await HandlerGiteeStarredUrl(context).ConfigureAwait(false); Events.OnRedirectToAuthorizationEndpoint = context => { @@ -67,8 +64,6 @@ public class GiteeOAuthOptions : AdminOAuthOptions return OAuthTokenResponse.Failed(new OAuthTokenException($"OAuth token endpoint failure: {await Display(response).ConfigureAwait(false)}")); } - - public override string GetName(JsonElement element) { JsonElement.ObjectEnumerator target = element.EnumerateObject(); @@ -109,8 +104,6 @@ public class GiteeOAuthOptions : AdminOAuthOptions }); //throw new Exception($"Failed to star repository: {response.StatusCode}, {content}"); } - - } protected override void ConfigureClaims() { diff --git a/src/Admin/ThingsGateway.Admin.Application/OAuth/Github/GitHubOAuthOptions.cs b/src/Admin/ThingsGateway.Admin.Application/OAuth/Github/GitHubOAuthOptions.cs index ca8c5f95b..6287ceb57 100644 --- a/src/Admin/ThingsGateway.Admin.Application/OAuth/Github/GitHubOAuthOptions.cs +++ b/src/Admin/ThingsGateway.Admin.Application/OAuth/Github/GitHubOAuthOptions.cs @@ -27,10 +27,7 @@ public class GitHubOAuthOptions : AdminOAuthOptions Scope.Add("read:user"); Scope.Add("public_repo"); // 需要用于 Star 仓库 - Events.OnCreatingTicket = async context => - { - await HandleGitHubStarAsync(context).ConfigureAwait(false); - }; + Events.OnCreatingTicket = async context => await HandleGitHubStarAsync(context).ConfigureAwait(false); Events.OnRedirectToAuthorizationEndpoint = context => { @@ -66,8 +63,6 @@ public class GitHubOAuthOptions : AdminOAuthOptions if (string.IsNullOrWhiteSpace(context.AccessToken)) throw new InvalidOperationException("Access token is missing."); - - var request = new HttpRequestMessage(HttpMethod.Put, $"https://api.github.com/user/starred/{repoFullName}") { Headers = @@ -93,17 +88,12 @@ public class GitHubOAuthOptions : AdminOAuthOptions await Task.Delay(5000).ConfigureAwait(false); await _noticeService.NavigationMesage(verificatInfoIds.ClientIds, "https://github.com/ThingsGateway/ThingsGateway", "创作不易,如有帮助请star仓库").ConfigureAwait(false); }); - } - - } - /// 处理用户信息方法 public override async Task HandleUserInfoAsync(HttpContext context, OAuthTokenResponse tokens) { - var request = new HttpRequestMessage(HttpMethod.Get, UserInformationEndpoint); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", tokens.AccessToken); request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/vnd.github+json")); diff --git a/src/Admin/ThingsGateway.Admin.Application/OAuth/Github/GithubOAuthSettings.cs b/src/Admin/ThingsGateway.Admin.Application/OAuth/Github/GithubOAuthSettings.cs index 49d4a34aa..4a1858f79 100644 --- a/src/Admin/ThingsGateway.Admin.Application/OAuth/Github/GithubOAuthSettings.cs +++ b/src/Admin/ThingsGateway.Admin.Application/OAuth/Github/GithubOAuthSettings.cs @@ -2,5 +2,4 @@ public class GithubOAuthSettings : GiteeOAuthSettings { - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Options/AdminLogOptions.cs b/src/Admin/ThingsGateway.Admin.Application/Options/AdminLogOptions.cs index a5ff07f47..f8f8cf20f 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Options/AdminLogOptions.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Options/AdminLogOptions.cs @@ -12,10 +12,7 @@ using ThingsGateway.ConfigurableOptions; namespace ThingsGateway.Admin.Application; - public sealed class AdminLogOptions : IConfigurableOptions { - public int OperateLogDaysAgo { get; set; } - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Admin.Application/Options/EmailOptions.cs b/src/Admin/ThingsGateway.Admin.Application/Options/EmailOptions.cs index 1f13e95f4..95c693c64 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Options/EmailOptions.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Options/EmailOptions.cs @@ -12,7 +12,6 @@ using ThingsGateway.ConfigurableOptions; namespace ThingsGateway.Admin.Application; - /// /// 邮件配置选项 /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Options/TenantOptions.cs b/src/Admin/ThingsGateway.Admin.Application/Options/TenantOptions.cs index c5dba59fa..d0487b692 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Options/TenantOptions.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Options/TenantOptions.cs @@ -12,12 +12,10 @@ using ThingsGateway.ConfigurableOptions; namespace ThingsGateway.Admin.Application; - public sealed class TenantOptions : IConfigurableOptions { /// /// 启用 /// public bool Enable { get; set; } - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Admin.Application/Provider/BlazorAuthenticationHandler.cs b/src/Admin/ThingsGateway.Admin.Application/Provider/BlazorAuthenticationHandler.cs index 3aa0947fd..3e9beed2e 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Provider/BlazorAuthenticationHandler.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Provider/BlazorAuthenticationHandler.cs @@ -52,7 +52,6 @@ public class BlazorAuthenticationHandler : AppAuthorizeHandler { await Fail(context).ConfigureAwait(false);// 授权失败 } - } static async Task Fail(AuthorizationHandlerContext context) { @@ -263,15 +262,12 @@ public class BlazorAuthenticationHandler : AppAuthorizeHandler { verificatInfo.VerificatTimeout = verificatInfo.VerificatTimeout.AddMinutes(verificatInfo.Expire); //新的过期时间 VerificatInfoService.Update(verificatInfo); //更新tokne信息到cache - - } //无法在server中刷新cookies,单页面应用会一直保持登录状态,所以这里不需要刷新cookies,但是F5刷新后会重新登录 } - return true; } else diff --git a/src/Admin/ThingsGateway.Admin.Application/Provider/BlazorHybridAuthorizationHandler.cs b/src/Admin/ThingsGateway.Admin.Application/Provider/BlazorHybridAuthorizationHandler.cs index 9210128f0..b85514639 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Provider/BlazorHybridAuthorizationHandler.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Provider/BlazorHybridAuthorizationHandler.cs @@ -13,9 +13,7 @@ namespace ThingsGateway.Admin.Application; /// public class BlazorHybridAuthorizationHandler : BlazorAuthenticationHandler { - public BlazorHybridAuthorizationHandler(ISysUserService sysUserService, ISysRoleService sysRoleService, ISysDictService sysDictService) : base(sysUserService, sysRoleService, sysDictService) { } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Provider/UnifyResultProvider.cs b/src/Admin/ThingsGateway.Admin.Application/Provider/UnifyResultProvider.cs index 26bf76b63..04dcbfdb1 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Provider/UnifyResultProvider.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Provider/UnifyResultProvider.cs @@ -57,8 +57,6 @@ public class UnifyResultProvider : IUnifyResultProvider return new JsonResult(RESTfulResult(StatusCodes.Status200OK, true, data)); } - - /// /// 返回 RESTful 风格结果集 /// @@ -95,6 +93,4 @@ public class UnifyResultProvider : IUnifyResultProvider return new JsonResult(RESTfulResult(metadata.StatusCode ?? StatusCodes.Status400BadRequest, data: metadata.Data, errors: metadata.ValidationResult) // 如果需要只显示第一条错误,修改为:errors: metadata.FirstErrorMessage , UnifyContext.GetSerializerSettings(context)); } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysDictSeedData.cs b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysDictSeedData.cs index ff7d0e794..4c7de833d 100644 --- a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysDictSeedData.cs +++ b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysDictSeedData.cs @@ -23,6 +23,4 @@ public class SysDictSeedData : ISqlSugarEntitySeedData var assembly = GetType().Assembly; return SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.Admin.seed_sys_dict.json")).Concat(data); } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysOrgSeedData.cs b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysOrgSeedData.cs index 3b30b1ae6..81321d427 100644 --- a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysOrgSeedData.cs +++ b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysOrgSeedData.cs @@ -37,6 +37,5 @@ public class SysOrgSeedData : ISqlSugarEntitySeedData SortCode=0 } }.Concat(SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.Admin.seed_sys_org.json")).Concat(data)); - } } diff --git a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysPositionSeedData.cs b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysPositionSeedData.cs index 201c2759a..8eea8b599 100644 --- a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysPositionSeedData.cs +++ b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysPositionSeedData.cs @@ -36,6 +36,5 @@ public class SysPositionSeedData : ISqlSugarEntitySeedData SortCode=0 } }.Concat(SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.Admin.seed_sys_position.json")).Concat(data)); - } } diff --git a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysResourceSeedData.cs b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysResourceSeedData.cs index e5f9097da..c584311fa 100644 --- a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysResourceSeedData.cs +++ b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysResourceSeedData.cs @@ -31,6 +31,5 @@ public class SysResourceSeedData : ISqlSugarEntitySeedData .Concat(data2) .Concat(data3) ; - } } diff --git a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysUserSeedData.cs b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysUserSeedData.cs index b9fb6f92e..797032bb3 100644 --- a/src/Admin/ThingsGateway.Admin.Application/SeedData/SysUserSeedData.cs +++ b/src/Admin/ThingsGateway.Admin.Application/SeedData/SysUserSeedData.cs @@ -35,6 +35,4 @@ public class SysUserSeedData : ISqlSugarEntitySeedData } }.Concat(SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.Admin.seed_sys_user.json"))).Concat(data); } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/ApiPermission/ApiPermissionService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/ApiPermission/ApiPermissionService.cs index 73a1980aa..0d085c37e 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/ApiPermission/ApiPermissionService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/ApiPermission/ApiPermissionService.cs @@ -8,7 +8,6 @@ // QQ群:605534569 // ------------------------------------------------------------------------------ - using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.AspNetCore.Mvc.Controllers; @@ -63,10 +62,8 @@ internal sealed class ApiPermissionService : IApiPermissionService //foreach (var groupOpenApi in groupOpenApis) { - foreach (var apiDescriptionGroup in apiDescriptions) { - var routes = apiDescriptionGroup.Items.Where(api => api.ActionDescriptor is ControllerActionDescriptor); Dictionary openApiPermissionTreeSelectorDict = new(); @@ -80,7 +77,6 @@ internal sealed class ApiPermissionService : IApiPermissionService if (openApiPermissionTreeSelectorDict.TryGetValue(actionDesc.ControllerName, out var openApiControllerGroup)) { - } else { @@ -104,12 +100,9 @@ internal sealed class ApiPermissionService : IApiPermissionService }); } - if (openApiPermissionTreeSelectorDict.Values.Any(a => a.Children.Count > 0)) permissions.AddRange(openApiPermissionTreeSelectorDict.Values); - } - } App.CacheService.Set(cacheKey, permissions); @@ -117,7 +110,6 @@ internal sealed class ApiPermissionService : IApiPermissionService return permissions; } - /// /// 获取路由地址名称 /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/ApiPermission/IApiPermissionService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/ApiPermission/IApiPermissionService.cs index c4b1a7209..67a14c5be 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/ApiPermission/IApiPermissionService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/ApiPermission/IApiPermissionService.cs @@ -8,7 +8,6 @@ // QQ群:605534569 // ------------------------------------------------------------------------------ - using ThingsGateway.Admin.Application; public interface IApiPermissionService diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/AppService/AppService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/AppService/AppService.cs index a3fffd62f..7ecda86fa 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/AppService/AppService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/AppService/AppService.cs @@ -59,8 +59,6 @@ public class AppService : IAppService } } - - public async Task LoginAsync(ClaimsIdentity identity, int expire) { var diffTime = DateTime.Now + TimeSpan.FromMinutes(expire); diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/AppService/HybridAppService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/AppService/HybridAppService.cs index 078ad0246..ed220955d 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/AppService/HybridAppService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/AppService/HybridAppService.cs @@ -71,5 +71,4 @@ public class HybridAppService : IAppService User = new ClaimsPrincipal(claimsIdentity); return Task.CompletedTask; } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/AppService/HybridClaimsPrincipalService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/AppService/HybridClaimsPrincipalService.cs index 987c8862c..d43c79ccf 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/AppService/HybridClaimsPrincipalService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/AppService/HybridClaimsPrincipalService.cs @@ -20,5 +20,4 @@ public class HybridClaimsPrincipalService : IClaimsPrincipalService _hybridAppService = hybridAppService; } public ClaimsPrincipal? User => _hybridAppService.User; - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/AppService/IAppService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/AppService/IAppService.cs index 4229e85f7..d5106fce8 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/AppService/IAppService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/AppService/IAppService.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using System.Security.Claims; namespace ThingsGateway.Admin.Application; @@ -47,7 +46,4 @@ public interface IAppService /// /// public Task LoginAsync(ClaimsIdentity claimsIdentity, int expire); - } - - diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Auth/AuthService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Auth/AuthService.cs index 3b24e7b68..e5bc0fade 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Auth/AuthService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Auth/AuthService.cs @@ -62,9 +62,6 @@ public class AuthService : IAuthService throw Oops.Bah(appConfig.WebsitePolicy.CloseTip); } - - - string? password = input.Password; if (isCookie) //openApi登录不再需要解密 { diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Auth/Dto/AuthInput.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Auth/Dto/AuthInput.cs index a4644bdc1..1373957cf 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Auth/Dto/AuthInput.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Auth/Dto/AuthInput.cs @@ -31,7 +31,6 @@ public class OpenApiLoginInput [Required] public string Password { get; set; } - /// /// 租户Id /// @@ -63,5 +62,4 @@ public class LoginInput /// ///252885263003720 public long? TenantId { get; set; } = RoleConst.DefaultTenantId; - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Dict/ISysDictService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Dict/ISysDictService.cs index 8d588b3f8..7331c0650 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Dict/ISysDictService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Dict/ISysDictService.cs @@ -60,7 +60,6 @@ public interface ISysDictService /// 系统字典项 Task GetByKeyAsync(string category, string name); - /// /// 从缓存/数据库获取自定义配置列表 /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Dict/SysDictService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Dict/SysDictService.cs index d4a05aef7..c4597e6a0 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Dict/SysDictService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Dict/SysDictService.cs @@ -245,7 +245,6 @@ internal sealed class SysDictService : BaseService, ISysDictService return sysDicts; } - /// /// 从缓存/数据库获取系统配置列表 /// @@ -264,7 +263,6 @@ internal sealed class SysDictService : BaseService, ISysDictService return sysDicts; } - /// /// 表格查询 /// @@ -301,7 +299,6 @@ internal sealed class SysDictService : BaseService, ISysDictService /// 配置项 private async Task CheckInput(SysDict input) { - //设置类型为业务 input.DictType = DictTypeEnum.Define; @@ -313,7 +310,6 @@ internal sealed class SysDictService : BaseService, ISysDictService { throw Oops.Bah(Localizer["DictDup", input.Category, input.Name]); } - } /// @@ -328,6 +324,5 @@ internal sealed class SysDictService : BaseService, ISysDictService App.CacheService.Remove($"{CacheConst.Cache_SysDict}{define}{nameof(AppConfig)}"); } - #endregion 方法 } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/File/FileService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/File/FileService.cs index 08cbe496e..05029e72e 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/File/FileService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/File/FileService.cs @@ -25,7 +25,6 @@ internal sealed class FileService : IFileService IStringLocalizer localizer) { _localizer = localizer; - } /// /// 获取本地存储文件流 @@ -88,5 +87,4 @@ internal sealed class FileService : IFileService string[] allowTypeS = allowTypes == null ? ["xlsx"] : allowTypes;//允许上传的文件类型 if (!allowTypeS.Contains(fileSuffix)) throw Oops.Bah(_localizer["FileTypeError", fileSuffix]); } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/ImportExport/ImportExportService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/ImportExport/ImportExportService.cs index 58ecb5d33..74cefdc86 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/ImportExport/ImportExportService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/ImportExport/ImportExportService.cs @@ -37,7 +37,6 @@ internal sealed class ImportExportService : IImportExportService /// public async Task ExportAsync(object input, string fileName, bool isDynamicExcelColumn = true) where T : class { - var path = ImportExportUtil.GetFileDir(ref fileName); fileName = CommonUtils.GetSingleId() + fileName; @@ -95,7 +94,5 @@ internal sealed class ImportExportService : IImportExportService return fileName; } - - #endregion 方法 } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/Notice/NoticeService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/Notice/NoticeService.cs index 4668e6262..ff1f4ec32 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/Notice/NoticeService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/Notice/NoticeService.cs @@ -24,7 +24,6 @@ internal sealed class NoticeService : INoticeService NavigationMesageDispatchService = navigationMesageDispatchService; } - /// public async Task NewMesage(IEnumerable? clientIds, AppMessage message) { @@ -51,8 +50,6 @@ internal sealed class NoticeService : INoticeService } } - - /// public async Task NavigationMesage(IEnumerable? clientIds, string uri, string message) { diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/SignalR/Hub/ISysHub.cs b/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/SignalR/Hub/ISysHub.cs index c91e2c378..7992b4497 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/SignalR/Hub/ISysHub.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/SignalR/Hub/ISysHub.cs @@ -32,5 +32,4 @@ public interface ISysHub /// 消息内容 /// 异步操作结果 Task NewMesage(AppMessage message); - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/SignalR/Hub/SysHub.cs b/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/SignalR/Hub/SysHub.cs index 6e1e6ce9d..6b53d6734 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/SignalR/Hub/SysHub.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/MessageService/SignalR/Hub/SysHub.cs @@ -63,5 +63,4 @@ public class SysHub : Hub VerificatInfoUtil.UpdateVerificat(userIdentifier, VerificatId, false);//更新cache return base.OnDisconnectedAsync(exception); } - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/OperateLog/SysOperateLogService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/OperateLog/SysOperateLogService.cs index df668ae42..5c3c038d9 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/OperateLog/SysOperateLogService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/OperateLog/SysOperateLogService.cs @@ -14,7 +14,6 @@ namespace ThingsGateway.Admin.Application; internal sealed class SysOperateLogService : BaseService, ISysOperateLogService { - #region 查询 /// @@ -86,6 +85,4 @@ internal sealed class SysOperateLogService : BaseService, ISysOpe #endregion 删除 - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Org/ISysOrgService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Org/ISysOrgService.cs index 9ab248d19..7ffaa2364 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Org/ISysOrgService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Org/ISysOrgService.cs @@ -55,7 +55,6 @@ public interface ISysOrgService /// Task> GetOrgChildIdsAsync(long orgId, bool isContainOneself = true, List sysOrgList = null); - /// /// 根据组织ID获取租户ID /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Org/SysOrgService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Org/SysOrgService.cs index b81fb1f15..b77266862 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Org/SysOrgService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Org/SysOrgService.cs @@ -122,8 +122,6 @@ internal sealed class SysOrgService : BaseService, ISysOrgService { throw new(result.ErrorMessage, result.ErrorException); } - - } } @@ -165,10 +163,8 @@ internal sealed class SysOrgService : BaseService, ISysOrgService { return false; } - } - /// /// 从缓存/数据库获取系统配置列表 /// @@ -243,7 +239,6 @@ internal sealed class SysOrgService : BaseService, ISysOrgService return reuslt; } - /// public async Task> GetOrgChildIdsAsync(long orgId, bool isContainOneself = true, List sysOrgList = null) { @@ -273,8 +268,6 @@ internal sealed class SysOrgService : BaseService, ISysOrgService return childList; } - - /// public async Task> GetTenantListAsync() { @@ -380,7 +373,6 @@ internal sealed class SysOrgService : BaseService, ISysOrgService ); } - /// /// 获取组织所有下级 /// @@ -405,7 +397,6 @@ internal sealed class SysOrgService : BaseService, ISysOrgService return new List(); } - /// /// 重新生成组织实体 /// @@ -425,7 +416,6 @@ internal sealed class SysOrgService : BaseService, ISysOrgService /// private async Task CheckInput(SysOrg input) { - if (!(await SysUserService.GetUserByIdAsync(UserManager.UserId).ConfigureAwait(false)).IsGlobal) { if (input.ParentId == 0) @@ -467,8 +457,6 @@ internal sealed class SysOrgService : BaseService, ISysOrgService } } - - /// /// 刷新缓存 /// @@ -483,7 +471,6 @@ internal sealed class SysOrgService : BaseService, ISysOrgService _dispatchService.Dispatch(null); } - /// /// 获取全称 /// @@ -506,7 +493,6 @@ internal sealed class SysOrgService : BaseService, ISysOrgService return parentIdList; } - /// private static List GetOrgParents(List allOrgList, long orgId, bool includeSelf = true) { diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Pos/Dto/PositionInput.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Pos/Dto/PositionInput.cs index 9d1205d04..86966a6f5 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Pos/Dto/PositionInput.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Pos/Dto/PositionInput.cs @@ -10,9 +10,6 @@ namespace ThingsGateway.Admin.Application; - - - public class PositionSelectorInput : UserSelectorInput { } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Pos/Dto/PositionOutput.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Pos/Dto/PositionOutput.cs index 20b4c5149..0481dbde4 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Pos/Dto/PositionOutput.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Pos/Dto/PositionOutput.cs @@ -10,7 +10,6 @@ namespace ThingsGateway.Admin.Application; - public class PositionTreeOutput { /// @@ -34,7 +33,6 @@ public class PositionTreeOutput public List Children { get; set; } = new List(); } - public class PositionSelectorOutput { /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Pos/ISysPositionService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Pos/ISysPositionService.cs index c9e2b40ed..212b70c7b 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Pos/ISysPositionService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Pos/ISysPositionService.cs @@ -62,8 +62,6 @@ public interface ISysPositionService /// Task> SelectorAsync(PositionSelectorInput input); - - #endregion } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Pos/SysPositionService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Pos/SysPositionService.cs index 6e3ace77f..afe9c84f7 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Pos/SysPositionService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Pos/SysPositionService.cs @@ -86,7 +86,6 @@ public class SysPositionService : BaseService, ISysPositionService { return false; } - } /// @@ -280,6 +279,4 @@ public class SysPositionService : BaseService, ISysPositionService } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Resource/ISysResourceService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Resource/ISysResourceService.cs index 53b9c7a49..0a29a886c 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Resource/ISysResourceService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Resource/ISysResourceService.cs @@ -31,7 +31,6 @@ public interface ISysResourceService /// IEnumerable ConstructMenuTrees(IEnumerable resourceList, long parentId = 0); - /// /// 复制资源到其他模块 /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Resource/SysResourceService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Resource/SysResourceService.cs index 5d06d6505..f39ad6b8c 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Resource/SysResourceService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Resource/SysResourceService.cs @@ -315,7 +315,6 @@ internal sealed class SysResourceService : BaseService, ISysResourc #endregion 方法 - /// private static List MenuTreesToSaveLevel(IEnumerable resourceList) { @@ -345,7 +344,6 @@ internal sealed class SysResourceService : BaseService, ISysResourc return flatList; } - /// public IEnumerable ConstructMenuTrees(IEnumerable resourceList, long parentId = 0) { @@ -362,7 +360,6 @@ internal sealed class SysResourceService : BaseService, ISysResourc return resources; } - /// public IEnumerable GetMyParentResources(IEnumerable allMenuList, IEnumerable myMenus) { @@ -375,7 +372,6 @@ internal sealed class SysResourceService : BaseService, ISysResourc return parentList; } - /// public IEnumerable GetResourceChilden(IEnumerable resourceList, long parentId) { @@ -392,6 +388,4 @@ internal sealed class SysResourceService : BaseService, ISysResourc .SelectMany(item => new List { item }.Concat(GetResourceParent(resourceList, item.ParentId))); } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Role/Dto/RoleOutput.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Role/Dto/RoleOutput.cs index 43f51abd4..f04c12e2c 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Role/Dto/RoleOutput.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Role/Dto/RoleOutput.cs @@ -10,7 +10,6 @@ namespace ThingsGateway.Admin.Application; - /// /// 角色树输出参数 /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/Role/SysRoleService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/Role/SysRoleService.cs index fe4ce42b7..830098478 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/Role/SysRoleService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/Role/SysRoleService.cs @@ -169,7 +169,6 @@ internal sealed class SysRoleService : BaseService, ISysRoleService if (hasSuperAdmin) throw Oops.Bah(Localizer["CanotDeleteAdmin"]); - var dels = (await GetAllAsync().ConfigureAwait(false)).Where(a => ids.Contains(a.Id)); await SysUserService.CheckApiDataScopeAsync(dels.Select(a => a.OrgId).ToList(), dels.Select(a => a.CreateUserId).ToList()).ConfigureAwait(false); @@ -216,7 +215,6 @@ internal sealed class SysRoleService : BaseService, ISysRoleService [OperDesc("SaveRole")] public async Task SaveRoleAsync(SysRole input, ItemChangedType type) { - await CheckInput(input).ConfigureAwait(false);//检查参数 if (type == ItemChangedType.Add) @@ -244,8 +242,6 @@ internal sealed class SysRoleService : BaseService, ISysRoleService #region 授权 - - #region 资源 /// @@ -424,7 +420,6 @@ internal sealed class SysRoleService : BaseService, ISysRoleService return relations.Select(it => it.ObjectId); } - /// /// 授权用户 /// @@ -467,7 +462,6 @@ internal sealed class SysRoleService : BaseService, ISysRoleService } } - #endregion /// @@ -476,7 +470,6 @@ internal sealed class SysRoleService : BaseService, ISysRoleService App.CacheService.Remove(CacheConst.Cache_SysRole);//删除KEY _dispatchService.Dispatch(null); - } #endregion 授权 @@ -517,10 +510,7 @@ internal sealed class SysRoleService : BaseService, ISysRoleService //判断是否有相同的Code if (sysRoles.Any(it => it.Code == sysRole.Code && it.Id != sysRole.Id)) throw Oops.Bah(Localizer["CodeDup", sysRole.Code]); - - } - #endregion 方法 } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/User/Dto/UserInput.cs b/src/Admin/ThingsGateway.Admin.Application/Services/User/Dto/UserInput.cs index 3e39a6130..c38f811f2 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/User/Dto/UserInput.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/User/Dto/UserInput.cs @@ -28,5 +28,4 @@ public class UserSelectorInput /// 角色ID /// public long RoleId { get; set; } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/User/SysUserService.cs b/src/Admin/ThingsGateway.Admin.Application/Services/User/SysUserService.cs index 99185def0..dca2f209f 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/User/SysUserService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/User/SysUserService.cs @@ -45,7 +45,6 @@ internal sealed class SysUserService : BaseService, ISysUserService _verificatInfoService = verificatInfoService; } - #region 数据范围相关 /// @@ -100,7 +99,6 @@ internal sealed class SysUserService : BaseService, ISysUserService return hasPermission; } - public async Task CheckApiDataScopeAsync(IEnumerable orgIds, IEnumerable createUerIds, bool throwEnable = true) { var hasPermission = true; @@ -127,7 +125,6 @@ internal sealed class SysUserService : BaseService, ISysUserService #region 查询 - /// public async Task GetUserByAccountAsync(string account, long? tenantId) { @@ -178,7 +175,6 @@ internal sealed class SysUserService : BaseService, ISysUserService var userId = App.CacheService.HashGetOne(key, account); if (userId == 0) { - //单查获取用户账号对应ID using var db = GetDB(); userId = await db.Queryable() @@ -272,7 +268,6 @@ internal sealed class SysUserService : BaseService, ISysUserService ApiUrl = it.Key, }); } - } #endregion Razor页面权限 @@ -303,7 +298,6 @@ internal sealed class SysUserService : BaseService, ISysUserService ApiUrl = it.Key, }); } - } #endregion API权限 @@ -352,7 +346,6 @@ internal sealed class SysUserService : BaseService, ISysUserService u.Phone = DESEncryption.Decrypt(u.Phone);//解密手机号 #pragma warning restore CS8625 // 无法将 null 字面量转换为非 null 的引用类型。 })).ConfigureAwait(false); - } else { @@ -367,8 +360,6 @@ internal sealed class SysUserService : BaseService, ISysUserService } - - } /// @@ -561,7 +552,6 @@ internal sealed class SysUserService : BaseService, ISysUserService var resources = await _sysResourceService.GetAllAsync().ConfigureAwait(false); var menusList = resources.Where(a => a.Category == ResourceCategoryEnum.Menu).Where(a => menuIds.Contains(a.Id)); - #region 用户模块处理 //获取我的模块信息Id列表 @@ -689,7 +679,6 @@ internal sealed class SysUserService : BaseService, ISysUserService //删除组织表主管信息 await db.Deleteable(it => ids.Contains(it.DirectorId.Value)).ExecuteCommandAsync().ConfigureAwait(false); - }).ConfigureAwait(false); if (result.IsSuccess)//如果成功了 @@ -752,8 +741,6 @@ internal sealed class SysUserService : BaseService, ISysUserService App.CacheService.HashDel(CacheConst.Cache_SysUserAccount, accounts); App.CacheService.HashDel(CacheConst.Cache_Token, userIds.Select(it => it.ToString()).ToArray()); - - } } @@ -792,7 +779,6 @@ internal sealed class SysUserService : BaseService, ISysUserService /// private async Task CheckInput(SysUser sysUser) { - var sysOrgList = await _sysOrgService.GetAllAsync().ConfigureAwait(false);//获取组织列表 var userOrg = sysOrgList.FirstOrDefault(it => it.Id == sysUser.OrgId); if (userOrg == null) @@ -885,8 +871,6 @@ internal sealed class SysUserService : BaseService, ISysUserService sysUser.PermissionCodeList = permissionCodeList; sysUser.IsGlobal = roleCodeList.Any(a => a.Category == RoleCategoryEnum.Global); - - var sysOrgList = await _sysOrgService.GetAllAsync().ConfigureAwait(false); var scopeOrgChildList = (await _sysOrgService.GetChildListByIdAsync(sysUser.OrgId, true, sysOrgList).ConfigureAwait(false)).Select(it => it.Id).ToHashSet();//获取所属机构的下级机构Id列表 diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/UserCenter/Dto/UserCenterInput.cs b/src/Admin/ThingsGateway.Admin.Application/Services/UserCenter/Dto/UserCenterInput.cs index 223034caf..6b10bfea2 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/UserCenter/Dto/UserCenterInput.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/UserCenter/Dto/UserCenterInput.cs @@ -42,5 +42,4 @@ public class UpdatePasswordInput /// [Required] public string ConfirmPassword { get; set; } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Services/UserCenter/Dto/UserCenterOutput.cs b/src/Admin/ThingsGateway.Admin.Application/Services/UserCenter/Dto/UserCenterOutput.cs index a8133c8c5..8f500ac1f 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Services/UserCenter/Dto/UserCenterOutput.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Services/UserCenter/Dto/UserCenterOutput.cs @@ -6,5 +6,4 @@ // Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway // 使用文档:https://thingsgateway.cn/ // QQ群:605534569 -//------------------------------------------------------------------------------ - +//------------------------------------------------------------------------------ \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Admin.Application/Startup.cs b/src/Admin/ThingsGateway.Admin.Application/Startup.cs index fee1cd481..10725d85d 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Startup.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Startup.cs @@ -64,7 +64,6 @@ public class Startup : AppStartup services.AddSingleton(typeof(IEventService<>), typeof(EventService<>)); - #region 控制台美化 services.AddConsoleFormatter(options => @@ -153,7 +152,6 @@ public class Startup : AppStartup var fullName = Assembly.GetExecutingAssembly().FullName;//获取程序集全名 CodeFirstUtils.CodeFirst(fullName!);//CodeFirst - try { using var db = DbContext.GetDB(); @@ -168,11 +166,8 @@ public class Startup : AppStartup } catch { } - //删除在线用户统计 var verificatInfoService = App.RootServices.GetService(); verificatInfoService.RemoveAllClientId(); - - } } diff --git a/src/Admin/ThingsGateway.Admin.Application/UserAgent/UserAgentService.cs b/src/Admin/ThingsGateway.Admin.Application/UserAgent/UserAgentService.cs index df08e4bb3..26d272b73 100644 --- a/src/Admin/ThingsGateway.Admin.Application/UserAgent/UserAgentService.cs +++ b/src/Admin/ThingsGateway.Admin.Application/UserAgent/UserAgentService.cs @@ -33,11 +33,7 @@ namespace ThingsGateway.Admin.Application public UserAgent? Parse(string? userAgentString) { userAgentString = ((userAgentString?.Length > Settings.UaStringSizeLimit) ? userAgentString?.Trim().Substring(0, Settings.UaStringSizeLimit) : userAgentString?.Trim()) ?? ""; - return MemoryCache.GetOrAdd(userAgentString, entry => - { - return new UserAgent(Settings, userAgentString); - }); + return MemoryCache.GetOrAdd(userAgentString, entry => new UserAgent(Settings, userAgentString)); } - } } diff --git a/src/Admin/ThingsGateway.Admin.Application/Util/ImportExportUtil.cs b/src/Admin/ThingsGateway.Admin.Application/Util/ImportExportUtil.cs index a0d2013f2..8e3d3ebc5 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Util/ImportExportUtil.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Util/ImportExportUtil.cs @@ -36,5 +36,4 @@ public static class ImportExportUtil return path; } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Util/NoticeUtil.cs b/src/Admin/ThingsGateway.Admin.Application/Util/NoticeUtil.cs index 1a6be390c..8993b06d0 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Util/NoticeUtil.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Util/NoticeUtil.cs @@ -38,7 +38,6 @@ public class UserLoginOutEvent /// /// verificat信息 /// - public List? ClientIds { get; set; } /// diff --git a/src/Admin/ThingsGateway.Admin.Application/Util/OpenApiUtil.cs b/src/Admin/ThingsGateway.Admin.Application/Util/OpenApiUtil.cs index aeea1570a..efa620bd3 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Util/OpenApiUtil.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Util/OpenApiUtil.cs @@ -37,6 +37,4 @@ public static class OpenApiUtil } return trees; } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Util/OrgUtil.cs b/src/Admin/ThingsGateway.Admin.Application/Util/OrgUtil.cs index ae1b786dc..e2d6fa959 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Util/OrgUtil.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Util/OrgUtil.cs @@ -96,5 +96,4 @@ public static class OrgUtil } return trees; } - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Util/PositionUtil.cs b/src/Admin/ThingsGateway.Admin.Application/Util/PositionUtil.cs index 2edf2c037..0ecc3a7d8 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Util/PositionUtil.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Util/PositionUtil.cs @@ -14,7 +14,6 @@ namespace ThingsGateway.Admin.Application; [ThingsGateway.DependencyInjection.SuppressSniffer] public static class PositionUtil { - /// /// 构建树节点 /// @@ -39,7 +38,6 @@ public static class PositionUtil return trees; } - public static List BuildCascaderItemList(IEnumerable sysresources) { if (sysresources == null) return null; @@ -60,6 +58,4 @@ public static class PositionUtil } return trees; } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Util/RoleUtil.cs b/src/Admin/ThingsGateway.Admin.Application/Util/RoleUtil.cs index 336f4c736..78d68d1ba 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Util/RoleUtil.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Util/RoleUtil.cs @@ -14,8 +14,6 @@ namespace ThingsGateway.Admin.Application; [ThingsGateway.DependencyInjection.SuppressSniffer] public static class RoleUtil { - - /// /// 构建树节点 /// @@ -41,6 +39,4 @@ public static class RoleUtil } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Util/UserUtil.cs b/src/Admin/ThingsGateway.Admin.Application/Util/UserUtil.cs index d24c9e249..09b109343 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Util/UserUtil.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Util/UserUtil.cs @@ -14,7 +14,6 @@ namespace ThingsGateway.Admin.Application; [ThingsGateway.DependencyInjection.SuppressSniffer] public static class UserUtil { - /// /// 构造选择项,ID/TITLE /// @@ -28,6 +27,4 @@ public static class UserUtil ).ToList(); return data; } - - } diff --git a/src/Admin/ThingsGateway.Admin.Application/Util/VerificatInfoUtil.cs b/src/Admin/ThingsGateway.Admin.Application/Util/VerificatInfoUtil.cs index 503d25eac..8dadc3e8e 100644 --- a/src/Admin/ThingsGateway.Admin.Application/Util/VerificatInfoUtil.cs +++ b/src/Admin/ThingsGateway.Admin.Application/Util/VerificatInfoUtil.cs @@ -58,5 +58,4 @@ public static class VerificatInfoUtil #endregion 更新 - } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Components/AdminTable.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Components/AdminTable.razor.cs index eee735779..3e7ba40b1 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Components/AdminTable.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Components/AdminTable.razor.cs @@ -13,7 +13,6 @@ namespace ThingsGateway.Admin.Razor; [CascadingTypeParameter(nameof(TItem))] public partial class AdminTable where TItem : class, new() { - /// [Parameter] public bool DoubleClickToEdit { get; set; } = false; @@ -27,7 +26,6 @@ public partial class AdminTable where TItem : class, new() [Parameter] public Func? OnClickRowCallback { get; set; } - /// [Parameter] public bool AllowDragColumn { get; set; } = false; @@ -134,7 +132,6 @@ public partial class AdminTable where TItem : class, new() [Parameter] public Func CreateItemCallback { get; set; } - /// [Parameter] public bool IsPagination { get; set; } @@ -337,7 +334,6 @@ public partial class AdminTable where TItem : class, new() [Parameter] public bool ShowSearch { get; set; } = true; - /// [Parameter] public Action>? BeforeShowEditDialogCallback { get; set; } @@ -426,5 +422,4 @@ public partial class AdminTable where TItem : class, new() var url = NavigationManager.ToBaseRelativePath(NavigationManager.Uri); return AppContext.IsHasButtonWithRole(url, operate); } - } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Components/ChoiceModuleComponent.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Components/ChoiceModuleComponent.razor.cs index 6b6856cae..b91738644 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Components/ChoiceModuleComponent.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Components/ChoiceModuleComponent.razor.cs @@ -42,7 +42,6 @@ public partial class ChoiceModuleComponent await OnClick.Invoke(tabItem.Url.ToLong()); } - private List GenerateRibbonTabs() { var tabs = new List(ModuleList?.Count ?? 1); @@ -53,6 +52,4 @@ public partial class ChoiceModuleComponent } return tabs; } - - } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Components/ChoiceTable.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Components/ChoiceTable.razor.cs index 4590c1802..5ba471a5d 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Components/ChoiceTable.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Components/ChoiceTable.razor.cs @@ -60,6 +60,4 @@ public partial class ChoiceTable where TItem : class, new() } - - } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Components/LoginConnectionHub.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Components/LoginConnectionHub.razor.cs index 2ad28101e..3e83841bf 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Components/LoginConnectionHub.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Components/LoginConnectionHub.razor.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using ThingsGateway.Admin.Application; namespace ThingsGateway.Admin.Razor; @@ -59,10 +58,7 @@ public partial class LoginConnectionHub : ComponentBase, IDisposable else await InvokeAsync(async () => await ToastService.Warning(message.Data)); }); - NavigationUri.Subscribe(ClientId, async (message) => - { - await ShowMessage(message); - }); + NavigationUri.Subscribe(ClientId, async (message) => await ShowMessage(message)); VerificatInfoUtil.UpdateVerificat(ClientId, VerificatId, isConnect: true); } catch (OperationCanceledException) @@ -88,12 +84,7 @@ public partial class LoginConnectionHub : ComponentBase, IDisposable ShowDismiss = true, IsAutoHide = false, ChildContent = RenderItem(navigationUri), - OnDismiss = () => - { - return Task.CompletedTask; - } + OnDismiss = () => Task.CompletedTask }); } - - } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Components/SysSignalRLoginConnectionHub.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Components/SysSignalRLoginConnectionHub.razor.cs index 9c653dd70..2c3a201af 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Components/SysSignalRLoginConnectionHub.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Components/SysSignalRLoginConnectionHub.razor.cs @@ -8,8 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - - using Microsoft.AspNetCore.SignalR.Client; using System.Security.Claims; @@ -50,10 +48,7 @@ public partial class SysSignalRLoginConnectionHub : ComponentBase, IAsyncDisposa if (message is HttpClientHandler clientHandler) { // 绕过SSL证书 - clientHandler.ServerCertificateCustomValidationCallback += (sender, certificate, chain, sslPolicyErrors) => - { - return true; - }; + clientHandler.ServerCertificateCustomValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true; } return message; @@ -80,16 +75,12 @@ public partial class SysSignalRLoginConnectionHub : ComponentBase, IAsyncDisposa await InvokeAsync(async () => await ToastService.Warning(message.Data)); }); - _hubConnection.On(nameof(ISysHub.NavigationMesage), async (url, message) => - { - await ShowMessage(new(url, message)); - }); + _hubConnection.On(nameof(ISysHub.NavigationMesage), async (url, message) => await ShowMessage(new(url, message))); await _hubConnection.StartAsync(); } catch { - } await base.OnAfterRenderAsync(firstRender); } @@ -100,7 +91,6 @@ public partial class SysSignalRLoginConnectionHub : ComponentBase, IAsyncDisposa [Inject] private MessageService MessageService { get; set; } - private async Task ShowMessage(NavigationUri navigationUri) { await MessageService.Show(new MessageOption() @@ -109,11 +99,7 @@ public partial class SysSignalRLoginConnectionHub : ComponentBase, IAsyncDisposa ShowDismiss = true, IsAutoHide = false, ChildContent = RenderItem(navigationUri), - OnDismiss = () => - { - return Task.CompletedTask; - } + OnDismiss = () => Task.CompletedTask }); } - } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Context/BlazorAppContext.cs b/src/Admin/ThingsGateway.Admin.Razor/Context/BlazorAppContext.cs index dae2bc2e6..aec24c6c5 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Context/BlazorAppContext.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Context/BlazorAppContext.cs @@ -88,10 +88,7 @@ public class BlazorAppContext var sysResources = (await ResourceService.GetAllAsync()).AdaptListSysResource(); if (TitleLocalizer != null) { - sysResources.ForEach(a => - { - a.Title = TitleLocalizer[a.Title]; - }); + sysResources.ForEach(a => a.Title = TitleLocalizer[a.Title]); } AllResource = sysResources; var ids = CurrentUser.ModuleList.Select(a => a.Id).ToHashSet(); @@ -109,9 +106,7 @@ public class BlazorAppContext else { CurrentModuleId = CurrentUser.ModuleList.Select(a => a.Id).FirstOrDefault(); - } - } else { diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/AppConfig/EditPagePolicy.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/AppConfig/EditPagePolicy.razor.cs index 3f1b366e7..e9230020b 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/AppConfig/EditPagePolicy.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/AppConfig/EditPagePolicy.razor.cs @@ -49,7 +49,5 @@ public partial class EditPagePolicy await Task.CompletedTask; ShortcutsSearchText = searchText; return ResourceUtil.BuildTreeItemList(AppContext.OwnMenus.WhereIf(!ShortcutsSearchText.IsNullOrEmpty(), a => a.Title.Contains(ShortcutsSearchText)), Model.Shortcuts, null); - } - } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Dict/SysDictPage.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Dict/SysDictPage.razor.cs index e6e625676..7e3a1fe03 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Dict/SysDictPage.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Dict/SysDictPage.razor.cs @@ -22,7 +22,6 @@ public partial class SysDictPage #region 查询 - private async Task> OnQueryAsync(QueryPageOptions options) { var data = await SysDictService.PageAsync(options); diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Org/OrgTree.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Org/OrgTree.razor.cs index 1e2c4ec7f..adcb27f22 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Org/OrgTree.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Org/OrgTree.razor.cs @@ -24,7 +24,6 @@ public partial class OrgTree : IDisposable [NotNull] private List> Items { get; set; } - [Inject] private IStringLocalizer AdminLocalizer { get; set; } [Inject] @@ -43,7 +42,6 @@ public partial class OrgTree : IDisposable } } - private List> ZItem; protected override async Task OnInitializedAsync() { @@ -67,10 +65,7 @@ public partial class OrgTree : IDisposable try { ExecutionContext.Restore(context); - await InvokeAsync(async () => - { - await OnClickSearch(SearchText); - }); + await InvokeAsync(async () => await OnClickSearch(SearchText)); } finally { diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Org/SysOrgPage.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Org/SysOrgPage.razor.cs index 10ed34f7e..477be13dc 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Org/SysOrgPage.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Org/SysOrgPage.razor.cs @@ -73,11 +73,9 @@ public partial class SysOrgPage { [nameof(SysOrgCopy.SysOrgCopyInput)] = SysOrgCopyInput, }).Render(), - }; SysOrgCopyInput.Ids = SelectedRows.Select(a => a.Id).ToList(); await DialogService.Show(option); - } private async Task Delete(IEnumerable sysOrgs) { diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Position/PositionTree.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Position/PositionTree.razor.cs index 4ac79c374..440dea698 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Position/PositionTree.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Position/PositionTree.razor.cs @@ -66,10 +66,7 @@ public partial class PositionTree : IDisposable try { ExecutionContext.Restore(context); - await InvokeAsync(async () => - { - await OnClickSearch(SearchText); - }); + await InvokeAsync(async () => await OnClickSearch(SearchText)); } finally { @@ -91,7 +88,6 @@ public partial class PositionTree : IDisposable var items = (await SysPositionService.TreeAsync()); items = items.WhereIF(!searchText.IsNullOrEmpty(), a => a.Name.Contains(searchText)).ToList(); return ZItem.Concat(PositionUtil.BuildTreeItemList(items, new List { Value })).ToList(); - } public void Dispose() diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Resource/MenuChoice.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Resource/MenuChoice.razor.cs index 8773e2fdb..8d987acdb 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Resource/MenuChoice.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Resource/MenuChoice.razor.cs @@ -79,7 +79,6 @@ public partial class MenuChoice [nameof(MenuChoiceDialog.ValueChanged)] = EventCallback.Factory.Create(this, v => OnValueChanged(v)) }).Render(), - }; await DialogService.Show(option); } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Resource/SysResourcePage.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Resource/SysResourcePage.razor.cs index c37e77106..bf354beaa 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Resource/SysResourcePage.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Resource/SysResourcePage.razor.cs @@ -74,7 +74,6 @@ public partial class SysResourcePage { await ToastService.Warn(ex); } - } private async Task OnChangeParent() { @@ -88,7 +87,6 @@ public partial class SysResourcePage { await ToastService.Warn(ex); } - } private async Task Delete(IEnumerable sysResources) diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/RoleTree.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/RoleTree.razor.cs index 81f07bf4c..5589f2473 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/RoleTree.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/RoleTree.razor.cs @@ -42,7 +42,6 @@ public partial class RoleTree : IDisposable } } - private List> ZItem; protected override async Task OnInitializedAsync() { @@ -67,10 +66,7 @@ public partial class RoleTree : IDisposable try { ExecutionContext.Restore(context); - await InvokeAsync(async () => - { - await OnClickSearch(SearchText); - }); + await InvokeAsync(async () => await OnClickSearch(SearchText)); } finally { diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/SysRoleEdit.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/SysRoleEdit.razor.cs index 3b4c2b3c2..3401c668e 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/SysRoleEdit.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/SysRoleEdit.razor.cs @@ -15,11 +15,9 @@ namespace ThingsGateway.Admin.Razor; public partial class SysRoleEdit { - [Inject] private IStringLocalizer? AdminLocalizer { get; set; } - [Parameter] [NotNull] public SysRole? Model { get; set; } @@ -64,6 +62,4 @@ public partial class SysRoleEdit } [NotNull] private List> OrgItems { get; set; } - - } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/SysRolePage.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/SysRolePage.razor.cs index 1f0b81735..ab1da118d 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/SysRolePage.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Role/SysRolePage.razor.cs @@ -29,7 +29,6 @@ public partial class SysRolePage [NotNull] private ISysOrgService? SysOrgService { get; set; } - #region 查询 private async Task> OnQueryAsync(QueryPageOptions options) @@ -83,7 +82,6 @@ public partial class SysRolePage var ids = new List(); ids.AddRange(hasResources.Select(a => a.ApiUrl)); - var op = new DialogOption() { IsScrolling = true, @@ -117,7 +115,6 @@ public partial class SysRolePage }).Render(), }; - await DialogService.Show(op); } @@ -174,7 +171,6 @@ public partial class SysRolePage await ToastService.Warn(ex); return false; } - }, Class = "dialog-table", BodyTemplate = BootstrapDynamicComponent.CreateComponent(new Dictionary @@ -186,7 +182,6 @@ public partial class SysRolePage await DialogService.Show(op); } - private async Task GrantUser(long id) { var data = (await SysRoleService.OwnUserAsync(id)).ToHashSet(); @@ -218,10 +213,8 @@ public partial class SysRolePage [nameof(UserChoiceDialog.Values)] = data, [nameof(UserChoiceDialog.ValuesChanged)] = (HashSet v) => OnGrantUserValueChanged(v, id) }).Render(), - }; await DialogService.Show(option); - } private HashSet GrantUserChoiceValues = new(); private async Task OnGrantUserValueChanged(HashSet values, long roleId, bool change = false) diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/Session/SessionPage.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/Session/SessionPage.razor.cs index f1833dc3f..a3d27fc84 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/Session/SessionPage.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/Session/SessionPage.razor.cs @@ -24,10 +24,7 @@ public partial class SessionPage private Task> OnQueryAsync(QueryPageOptions options) { - return Task.Run(() => - { - return SessionService.PageAsync(options); - }); + return Task.Run(() => SessionService.PageAsync(options)); } #endregion 查询 diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/GrantApiDialog.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/GrantApiDialog.razor.cs index 93dd833d4..7e1a1e353 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/GrantApiDialog.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/GrantApiDialog.razor.cs @@ -38,10 +38,6 @@ public partial class GrantApiDialog private static bool ModelEqualityComparer(OpenApiPermissionTreeSelector x, OpenApiPermissionTreeSelector y) => x.ApiRoute == y.ApiRoute; - - - - private async Task OnTreeItemChecked(List> items) { var value = items.Where(a => a.Items == null || a.Items.Count <= 0).Select(a => a.Value.ApiRoute).ToList(); diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/GrantResourceDialog.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/GrantResourceDialog.razor.cs index 7371cc520..5eea97feb 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/GrantResourceDialog.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/GrantResourceDialog.razor.cs @@ -31,7 +31,6 @@ public partial class GrantResourceDialog [NotNull] private ISysResourceService? SysResourceService { get; set; } - protected override async Task OnInitializedAsync() { var items = (await SysResourceService.GetAllAsync()).Where(a => a.Category != ResourceCategoryEnum.Module).OrderBy(a => a.Module).ThenBy(a => a.Id).ToList(); @@ -45,7 +44,6 @@ public partial class GrantResourceDialog private static bool ModelEqualityComparer(SysResource x, SysResource y) => x.Id == y.Id; - private async Task OnTreeItemChecked(List> items) { var value = items.Select(a => a.Value.Id).ToList(); diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/SysUserEdit.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/SysUserEdit.razor.cs index 2fa7c7bce..348d7ea1e 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/SysUserEdit.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/SysUserEdit.razor.cs @@ -16,14 +16,12 @@ namespace ThingsGateway.Admin.Razor; public partial class SysUserEdit { - private List ModuleSelectedItems { get; set; } [Inject] private IStringLocalizer? AdminLocalizer { get; set; } [Inject] private ISysPositionService? SysPositionService { get; set; } - [Parameter] [NotNull] public SysUser? Model { get; set; } @@ -57,7 +55,6 @@ public partial class SysUserEdit [FileValidation(Extensions = [".png", ".jpg", ".jpeg"], FileSize = 200 * 1024)] public IBrowserFile? Picture { get; set; } - private CancellationTokenSource? ReadAvatarToken { get; set; } public void Dispose() diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/SysUserPage.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/SysUserPage.razor.cs index 14d4977d3..558171fbb 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/SysUserPage.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/SysUserPage.razor.cs @@ -117,7 +117,6 @@ public partial class SysUserPage { GrantResourceData data = new(); - var allResource = await SysResourceService.GetAllAsync(); var resources = allResource.Where(a => value.Contains(a.Id)); var pResources = SysResourceService.GetMyParentResources(allResource, resources); @@ -150,7 +149,6 @@ public partial class SysUserPage await ToastService.Warn(ex); return false; } - }, Class = "dialog-table", BodyTemplate = BootstrapDynamicComponent.CreateComponent(new Dictionary @@ -193,9 +191,7 @@ public partial class SysUserPage { [nameof(RoleChoiceDialog.Values)] = data, [nameof(RoleChoiceDialog.ValuesChanged)] = (HashSet v) => OnGrantRoleValueChanged(v, id), - }).Render(), - }; await DialogService.Show(option); } @@ -215,7 +211,6 @@ public partial class SysUserPage } } - private async Task ResetPassword(long id) { try diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/UserChoice.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/UserChoice.razor.cs index a1ca0a9f7..f5764c03b 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/User/UserChoice.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/User/UserChoice.razor.cs @@ -80,7 +80,6 @@ public partial class UserChoice [nameof(UserChoiceDialog.Values)] = Values, [nameof(UserChoiceDialog.ValuesChanged)] = (HashSet v) => OnValueChanged(v) }).Render(), - }; await DialogService.Show(option); } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/UserCenter/UserCenterPage.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/UserCenter/UserCenterPage.razor.cs index 97b85d4f8..5ea2aa0d3 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/UserCenter/UserCenterPage.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/UserCenter/UserCenterPage.razor.cs @@ -16,7 +16,6 @@ namespace ThingsGateway.Admin.Razor; public partial class UserCenterPage { - [CascadingParameter(Name = "ReloadMenu")] private Func? ReloadMenu { get; set; } diff --git a/src/Admin/ThingsGateway.Admin.Razor/Pages/UserCenter/UserInfoEditComponent.razor.cs b/src/Admin/ThingsGateway.Admin.Razor/Pages/UserCenter/UserInfoEditComponent.razor.cs index 805466ffd..29e83c30b 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Pages/UserCenter/UserInfoEditComponent.razor.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Pages/UserCenter/UserInfoEditComponent.razor.cs @@ -31,7 +31,6 @@ public partial class UserInfoEditComponent [FileValidation(Extensions = [".png", ".jpg", ".jpeg"], FileSize = 200 * 1024)] public IBrowserFile? Picture { get; set; } - private CancellationTokenSource? ReadAvatarToken { get; set; } public void Dispose() diff --git a/src/Admin/ThingsGateway.Admin.Razor/Services/AuthRazorService.cs b/src/Admin/ThingsGateway.Admin.Razor/Services/AuthRazorService.cs index 32dbbfa56..94ff69e2f 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Services/AuthRazorService.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Services/AuthRazorService.cs @@ -11,12 +11,10 @@ using ThingsGateway.Admin.Application; using ThingsGateway.NewLife.Json.Extension; - namespace ThingsGateway.Admin.Razor; internal sealed class AuthRazorService : IAuthRazorService { - private AjaxService AjaxService { get; set; } public AuthRazorService(AjaxService ajaxService) { diff --git a/src/Admin/ThingsGateway.Admin.Razor/Services/HybridAuthRazorService.cs b/src/Admin/ThingsGateway.Admin.Razor/Services/HybridAuthRazorService.cs index 0d24db78f..c63725c5b 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Services/HybridAuthRazorService.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Services/HybridAuthRazorService.cs @@ -12,10 +12,8 @@ using ThingsGateway.Admin.Application; namespace ThingsGateway.Admin.Razor; - public class HybridAuthRazorService : IAuthRazorService { - private IAuthService AuthService { get; set; } public HybridAuthRazorService(IAuthService authService) { @@ -26,7 +24,6 @@ public class HybridAuthRazorService : IAuthRazorService /// public async Task> LoginAsync(LoginInput input) { - var ret = await AuthService.LoginAsync(input).ConfigureAwait(false); return new UnifyResult { @@ -35,7 +32,6 @@ public class HybridAuthRazorService : IAuthRazorService Data = ret, Time = DateTime.Now, }; - } /// diff --git a/src/Admin/ThingsGateway.Admin.Razor/Util/ResourceUtil.cs b/src/Admin/ThingsGateway.Admin.Razor/Util/ResourceUtil.cs index 5d2acb52b..d878d8ce1 100644 --- a/src/Admin/ThingsGateway.Admin.Razor/Util/ResourceUtil.cs +++ b/src/Admin/ThingsGateway.Admin.Razor/Util/ResourceUtil.cs @@ -16,7 +16,6 @@ namespace ThingsGateway.Admin.Razor; [ThingsGateway.DependencyInjection.SuppressSniffer] public static class ResourceUtil { - /// /// 构造选择项,ID/TITLE /// @@ -117,5 +116,4 @@ public static class ResourceUtil } return trees; } - } diff --git a/src/Admin/ThingsGateway.AdminServer/Index/AdminIndex.razor.cs b/src/Admin/ThingsGateway.AdminServer/Index/AdminIndex.razor.cs index c6e681093..00cfa6081 100644 --- a/src/Admin/ThingsGateway.AdminServer/Index/AdminIndex.razor.cs +++ b/src/Admin/ThingsGateway.AdminServer/Index/AdminIndex.razor.cs @@ -9,7 +9,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - #pragma warning disable CA2007 // 考虑对等待的任务调用 ConfigureAwait using BootstrapBlazor.Components; @@ -24,14 +23,12 @@ using ThingsGateway.Extension; namespace ThingsGateway.AdminServer; - [Authorize] [IgnoreRolePermission] [Route("/")] [TabItemOption(Text = "Home", Icon = "fas fa-house")] public partial class AdminIndex { - [Inject] private BlazorAppContext AppContext { get; set; } @@ -59,4 +56,3 @@ public partial class AdminIndex await base.OnParametersSetAsync(); } } - diff --git a/src/Admin/ThingsGateway.AdminServer/Layout/Login.razor.cs b/src/Admin/ThingsGateway.AdminServer/Layout/Login.razor.cs index 682e63e37..a3ac64e96 100644 --- a/src/Admin/ThingsGateway.AdminServer/Layout/Login.razor.cs +++ b/src/Admin/ThingsGateway.AdminServer/Layout/Login.razor.cs @@ -25,7 +25,6 @@ using ThingsGateway.DataEncryption; using ThingsGateway.NewLife.Extension; using ThingsGateway.Razor; - namespace ThingsGateway.AdminServer; public partial class Login @@ -75,7 +74,6 @@ public partial class Login model.Password = DESEncryption.Encrypt(model.Password); try { - var ret = await AuthRazorService.LoginAsync(model); if (ret.Code != 200) @@ -104,6 +102,4 @@ public partial class Login } - - } diff --git a/src/Admin/ThingsGateway.AdminServer/Layout/MainLayout.razor.cs b/src/Admin/ThingsGateway.AdminServer/Layout/MainLayout.razor.cs index 2bbed9740..8eeae4749 100644 --- a/src/Admin/ThingsGateway.AdminServer/Layout/MainLayout.razor.cs +++ b/src/Admin/ThingsGateway.AdminServer/Layout/MainLayout.razor.cs @@ -97,10 +97,8 @@ public partial class MainLayout : IDisposable private async Task LogoutAsync() { - try { - var ret = await AuthRazorService.LoginOutAsync(); if (ret.Code != 200) { diff --git a/src/Admin/ThingsGateway.AdminServer/Program/Program.cs b/src/Admin/ThingsGateway.AdminServer/Program/Program.cs index e0ceee57d..3d42cc051 100644 --- a/src/Admin/ThingsGateway.AdminServer/Program/Program.cs +++ b/src/Admin/ThingsGateway.AdminServer/Program/Program.cs @@ -57,7 +57,6 @@ public class Program #endregion 控制台输出Logo - await Serve.RunAsync(RunOptions.Default.ConfigureFirstActionBuilder(builder => { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) @@ -67,17 +66,12 @@ public class Program if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) builder.Logging.ClearProviders(); //去除默认的事件日志提供者,某些情况下会日志输出异常,导致程序崩溃 - }).ConfigureBuilder(builder => { - if (!builder.Environment.IsDevelopment()) { builder.Services.AddResponseCompression( - opts => - { - opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(second); - }); + opts => opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(second)); } builder.WebHost.UseWebRoot("wwwroot"); @@ -91,8 +85,6 @@ public class Program }); - - }) .Configure(app => { @@ -110,8 +102,5 @@ public class Program }) ).ConfigureAwait(false); - - } - } diff --git a/src/Admin/ThingsGateway.AdminServer/Program/SingleFilePublish.cs b/src/Admin/ThingsGateway.AdminServer/Program/SingleFilePublish.cs index e123d19c3..4706d57d6 100644 --- a/src/Admin/ThingsGateway.AdminServer/Program/SingleFilePublish.cs +++ b/src/Admin/ThingsGateway.AdminServer/Program/SingleFilePublish.cs @@ -47,4 +47,3 @@ public class SingleFilePublish : ISingleFilePublish ]; } } - diff --git a/src/Admin/ThingsGateway.AdminServer/Program/Startup.cs b/src/Admin/ThingsGateway.AdminServer/Program/Startup.cs index 30541f25d..4a100f623 100644 --- a/src/Admin/ThingsGateway.AdminServer/Program/Startup.cs +++ b/src/Admin/ThingsGateway.AdminServer/Program/Startup.cs @@ -36,7 +36,6 @@ public class Startup : AppStartup { public void ConfigBlazorServer(IServiceCollection services) { - // 增加中文编码支持网页源码显示汉字 services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All)); //并发启动/停止host @@ -46,7 +45,6 @@ public class Startup : AppStartup options.ServicesStopConcurrently = true; }); - //// 事件总线 //services.AddEventBus(options => //{ @@ -54,11 +52,7 @@ public class Startup : AppStartup //}); // 任务调度 - services.AddSchedule(options => - { - options.AddPersistence(); - }); - + services.AddSchedule(options => options.AddPersistence()); // 允许跨域 services.AddCorsAccessor(); @@ -83,7 +77,6 @@ public class Startup : AppStartup // setting.Converters.Add(new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }); // 解决DateTimeOffset异常 } - services.AddMvcFilter(); services.AddControllers() .AddNewtonsoftJson(options => SetNewtonsoftJsonSetting(options.SerializerSettings)) @@ -91,13 +84,9 @@ public class Startup : AppStartup //.AddXmlDataContractSerializerFormatters() .AddInjectWithUnifyResult(); - #if NET8_0_OR_GREATER services - .AddRazorComponents(options => - { - options.TemporaryRedirectionUrlValidityDuration = TimeSpan.FromMinutes(10); - }) + .AddRazorComponents(options => options.TemporaryRedirectionUrlValidityDuration = TimeSpan.FromMinutes(10)) .AddInteractiveServerComponents(options => { options.RootComponents.MaxJSRootComponents = 500; @@ -147,12 +136,6 @@ public class Startup : AppStartup options.KnownProxies.Clear(); }); - - - - - - //已添加AddOptions // 增加多语言支持配置信息 services.AddRequestLocalization>((localizerOption, blazorOption) => @@ -213,18 +196,14 @@ public class Startup : AppStartup EncryptionAlgorithm = EncryptionAlgorithm.AES_256_CBC, ValidationAlgorithm = ValidationAlgorithm.HMACSHA256 }); - } - - public void Use(IApplicationBuilder applicationBuilder, IWebHostEnvironment env) { var app = (WebApplication)applicationBuilder; app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.All, KnownNetworks = { }, KnownProxies = { } }); app.UseBootstrapBlazor(); - // 启用本地化 var option = app.Services.GetService>(); if (option != null) @@ -253,7 +232,6 @@ public class Startup : AppStartup app.UseStaticFiles(new StaticFileOptions { OnPrepareResponse = ctx => ctx.ProcessCache(app.Configuration) }); } - app.UseStaticFiles(new StaticFileOptions { OnPrepareResponse = (stf) => @@ -272,7 +250,6 @@ public class Startup : AppStartup app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = provider }); app.UseStaticFiles(); - // 特定文件类型(文件后缀)处理 var contentTypeProvider = FS.GetFileExtensionContentTypeProvider(); // contentTypeProvider.Mappings[".文件后缀"] = "MIME 类型"; @@ -284,7 +261,6 @@ public class Startup : AppStartup //// 启用HTTPS //app.UseHttpsRedirection(); - // 添加状态码拦截中间件 app.UseUnifyResultStatusCodes(); @@ -315,7 +291,5 @@ public class Startup : AppStartup #endif app.MapControllers(); app.MapHubs(); - } - } diff --git a/src/Admin/ThingsGateway.Common/Common/RandomHelper.cs b/src/Admin/ThingsGateway.Common/Common/RandomHelper.cs index dbf66ba12..cbca551ff 100644 --- a/src/Admin/ThingsGateway.Common/Common/RandomHelper.cs +++ b/src/Admin/ThingsGateway.Common/Common/RandomHelper.cs @@ -25,7 +25,6 @@ public static class RandomHelper /// public static string CreateLetter(int Length) { - char[] Pattern = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' }; string result = ""; int n = Pattern.Length; @@ -38,7 +37,6 @@ public static class RandomHelper return result; } - /// /// 生成随机字母和数字随机数 /// @@ -46,7 +44,6 @@ public static class RandomHelper /// public static string CreateLetterAndNumber(int Length) { - char[] Pattern = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; string result = ""; int n = Pattern.Length; @@ -66,7 +63,6 @@ public static class RandomHelper /// public static string CreateLetterAndNumberLower(int Length) { - char[] Pattern = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; string result = ""; int n = Pattern.Length; @@ -79,8 +75,6 @@ public static class RandomHelper return result; } - - /// /// 生成随机字符串 /// @@ -163,6 +157,4 @@ public static class RandomHelper string abc = Convert.ToChar(num).ToString(); return abc; } - } - diff --git a/src/Admin/ThingsGateway.Common/Extensions/JSRuntimeExtensions.cs b/src/Admin/ThingsGateway.Common/Extensions/JSRuntimeExtensions.cs index 2c938043f..68d695034 100644 --- a/src/Admin/ThingsGateway.Common/Extensions/JSRuntimeExtensions.cs +++ b/src/Admin/ThingsGateway.Common/Extensions/JSRuntimeExtensions.cs @@ -32,7 +32,6 @@ public static class JSRuntimeExtensions { return null; } - } /// @@ -48,8 +47,6 @@ public static class JSRuntimeExtensions } catch { - } - } } diff --git a/src/Admin/ThingsGateway.Common/Extensions/ObjectExtensions.cs b/src/Admin/ThingsGateway.Common/Extensions/ObjectExtensions.cs index 2b12768e6..8d67ef7c9 100644 --- a/src/Admin/ThingsGateway.Common/Extensions/ObjectExtensions.cs +++ b/src/Admin/ThingsGateway.Common/Extensions/ObjectExtensions.cs @@ -48,7 +48,6 @@ public static class ObjectExtensions bool IsTheRawGenericType(Type type) => generic == (type.IsGenericType ? type.GetGenericTypeDefinition() : type); } - /// /// 将 DateTimeOffset 转换成本地 DateTime /// @@ -418,7 +417,6 @@ public static class ObjectExtensions return foundAttribute; } - /// /// 获取方法真实返回类型 /// @@ -552,7 +550,7 @@ public static class ObjectExtensions { if (string.IsNullOrWhiteSpace(str)) return str; - return string.Concat(str.First().ToString().ToLower(), str.AsSpan(1)); + return string.Concat(str[0].ToString().ToLower(), str.AsSpan(1)); } /// @@ -610,7 +608,7 @@ public static class ObjectExtensions { if (string.IsNullOrWhiteSpace(str)) return str; - return string.Concat(str.First().ToString().ToUpper(), str.AsSpan(1)); + return string.Concat(str[0].ToString().ToUpper(), str.AsSpan(1)); } } #endif \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Common/Extensions/ParallelExtensions.cs b/src/Admin/ThingsGateway.Common/Extensions/ParallelExtensions.cs index c458ada38..83e0f80bf 100644 --- a/src/Admin/ThingsGateway.Common/Extensions/ParallelExtensions.cs +++ b/src/Admin/ThingsGateway.Common/Extensions/ParallelExtensions.cs @@ -29,10 +29,7 @@ public static class ParallelExtensions ParallelOptions options = new(); options.MaxDegreeOfParallelism = Environment.ProcessorCount; // 使用 Parallel.ForEach 执行指定的操作 - Parallel.ForEach(source, options, (variable) => - { - body(variable); - }); + Parallel.ForEach(source, options, (variable) => body(variable)); } /// @@ -46,10 +43,7 @@ public static class ParallelExtensions ParallelOptions options = new(); options.MaxDegreeOfParallelism = Environment.ProcessorCount; // 使用 Parallel.ForEach 执行指定的操作 - Parallel.ForEach(source, options, (variable, state, index) => - { - body(variable, state, index); - }); + Parallel.ForEach(source, options, (variable, state, index) => body(variable, state, index)); } /// @@ -65,14 +59,9 @@ public static class ParallelExtensions var options = new ParallelOptions(); options.MaxDegreeOfParallelism = parallelCount == 0 ? 1 : parallelCount; // 使用 Parallel.ForEach 执行指定的操作 - Parallel.ForEach(source, options, variable => - { - body(variable); - }); + Parallel.ForEach(source, options, variable => body(variable)); } - - /// /// 使用默认的并行设置执行指定的操作(Partitioner 分区) /// @@ -111,7 +100,6 @@ public static class ParallelExtensions Parallel.ForEach(partitioner, options, body); } - /// /// 异步执行指定的操作,并指定最大并行度和取消标志 /// @@ -142,9 +130,6 @@ public static class ParallelExtensions { return ParallelForEachAsync(source, body, Environment.ProcessorCount, cancellationToken); } - - } - #endif \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Common/Extensions/StringExtensions.cs b/src/Admin/ThingsGateway.Common/Extensions/StringExtensions.cs index 5890f745f..861ee1f23 100644 --- a/src/Admin/ThingsGateway.Common/Extensions/StringExtensions.cs +++ b/src/Admin/ThingsGateway.Common/Extensions/StringExtensions.cs @@ -27,7 +27,7 @@ public static class StringExtensions { return input; } - return $"{input.First().ToString().ToLower()}{input.Substring(1)}"; + return $"{input[0].ToString().ToLower()}{input.Substring(1)}"; } /// @@ -35,7 +35,7 @@ public static class StringExtensions /// /// /// - public static string FirstCharToUpper(this string input) => string.IsNullOrEmpty(input) ? input : input.First().ToString().ToUpper(); + public static string FirstCharToUpper(this string input) => string.IsNullOrEmpty(input) ? input : input[0].ToString().ToUpper(); /// public static string Format(this string str, params object[] args) @@ -116,7 +116,7 @@ public static class StringExtensions { if (string.IsNullOrWhiteSpace(str)) return str; - return string.Concat(str.First().ToString().ToLower(), str.AsSpan(1)); + return string.Concat(str[0].ToString().ToLower(), str.AsSpan(1)); } /// @@ -128,7 +128,7 @@ public static class StringExtensions { if (string.IsNullOrWhiteSpace(str)) return str; - return string.Concat(str.First().ToString().ToUpper(), str.AsSpan(1)); + return string.Concat(str[0].ToString().ToUpper(), str.AsSpan(1)); } /// diff --git a/src/Admin/ThingsGateway.Common/GlobalUsings.cs b/src/Admin/ThingsGateway.Common/GlobalUsings.cs index 5c6682ca6..ca38acde0 100644 --- a/src/Admin/ThingsGateway.Common/GlobalUsings.cs +++ b/src/Admin/ThingsGateway.Common/GlobalUsings.cs @@ -16,5 +16,4 @@ global using Microsoft.Extensions.Options; global using System.Diagnostics.CodeAnalysis; global using System.Globalization; - global using ThingsGateway.NewLife.Extension; \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Common/Localization/Json/CacheManager.cs b/src/Admin/ThingsGateway.Common/Localization/Json/CacheManager.cs index 3a041a4de..5c495c424 100644 --- a/src/Admin/ThingsGateway.Common/Localization/Json/CacheManager.cs +++ b/src/Admin/ThingsGateway.Common/Localization/Json/CacheManager.cs @@ -14,8 +14,6 @@ using System.ComponentModel.DataAnnotations; using ThingsGateway.Common.Extension; - - #if NET8_0_OR_GREATER using System.Collections.Frozen; #endif @@ -223,10 +221,7 @@ internal class CacheManager { var type = value.GetType(); var cacheKey = $"{CacheKeyPrefix}-Lambda-Count-{type.GetUniqueTypeName()}"; - var invoker = Instance.GetOrCreate(cacheKey, entry => - { - return LambdaExtensions.CountLambda(type).Compile(); - }); + var invoker = Instance.GetOrCreate(cacheKey, entry => LambdaExtensions.CountLambda(type).Compile()); ret = invoker(value); } return ret; diff --git a/src/Admin/ThingsGateway.Common/Options/WebsiteOptions.cs b/src/Admin/ThingsGateway.Common/Options/WebsiteOptions.cs index 7d75a01d2..f710ad0c5 100644 --- a/src/Admin/ThingsGateway.Common/Options/WebsiteOptions.cs +++ b/src/Admin/ThingsGateway.Common/Options/WebsiteOptions.cs @@ -58,10 +58,8 @@ public class WebsiteOptions : IConfigurableOptions /// public string WikiUrl { get; set; } = "https://thingsgateway.cn/"; - /// /// 显示授权 /// public bool ShowAuthorize { get; set; } = true; - } diff --git a/src/Admin/ThingsGateway.Common/Startup.cs b/src/Admin/ThingsGateway.Common/Startup.cs index feedf0bcd..6175907ab 100644 --- a/src/Admin/ThingsGateway.Common/Startup.cs +++ b/src/Admin/ThingsGateway.Common/Startup.cs @@ -33,8 +33,5 @@ public class Startup : AppStartup { WorkerId = 1// 取值范围0~63 }); - - } - } diff --git a/src/Admin/ThingsGateway.DB/Const/ClaimConst.cs b/src/Admin/ThingsGateway.DB/Const/ClaimConst.cs index 501da8790..33bdd02eb 100644 --- a/src/Admin/ThingsGateway.DB/Const/ClaimConst.cs +++ b/src/Admin/ThingsGateway.DB/Const/ClaimConst.cs @@ -51,6 +51,5 @@ public static class ClaimConst /// public const string TenantId = "TenantId"; - public static volatile string Scheme = "ThingsGateway.AdminServer"; } diff --git a/src/Admin/ThingsGateway.DB/Extensions/ExportExcelExtensions.cs b/src/Admin/ThingsGateway.DB/Extensions/ExportExcelExtensions.cs index f20d8126b..519d2e364 100644 --- a/src/Admin/ThingsGateway.DB/Extensions/ExportExcelExtensions.cs +++ b/src/Admin/ThingsGateway.DB/Extensions/ExportExcelExtensions.cs @@ -10,7 +10,6 @@ using BootstrapBlazor.Components; - using MiniExcelLibs; using MiniExcelLibs.Attributes; using MiniExcelLibs.OpenXml; @@ -84,7 +83,6 @@ public static class ExportExcelExtensions return sheets; } - /// /// 导出excel /// diff --git a/src/Admin/ThingsGateway.DB/Extensions/QueryPageOptionsExtensions.cs b/src/Admin/ThingsGateway.DB/Extensions/QueryPageOptionsExtensions.cs index 34cf76a7a..5f1a71c48 100644 --- a/src/Admin/ThingsGateway.DB/Extensions/QueryPageOptionsExtensions.cs +++ b/src/Admin/ThingsGateway.DB/Extensions/QueryPageOptionsExtensions.cs @@ -16,7 +16,6 @@ namespace ThingsGateway.DB; [ThingsGateway.DependencyInjection.SuppressSniffer] public static class QueryPageOptionsExtensions { - public static IEnumerable GetData(this IEnumerable datas, QueryPageOptions option, out int totalCount, FilterKeyValueAction where = null) { totalCount = 0; diff --git a/src/Admin/ThingsGateway.DB/Services/AppService/ClaimsPrincipalService.cs b/src/Admin/ThingsGateway.DB/Services/AppService/ClaimsPrincipalService.cs index f77d7d2bd..b64497254 100644 --- a/src/Admin/ThingsGateway.DB/Services/AppService/ClaimsPrincipalService.cs +++ b/src/Admin/ThingsGateway.DB/Services/AppService/ClaimsPrincipalService.cs @@ -14,7 +14,5 @@ namespace ThingsGateway.DB; public class ClaimsPrincipalService : IClaimsPrincipalService { - public ClaimsPrincipal? User => App.User; - } diff --git a/src/Admin/ThingsGateway.DB/Services/SugarAopService/ISugarAopService.cs b/src/Admin/ThingsGateway.DB/Services/SugarAopService/ISugarAopService.cs index 1d1fc11ad..507c27d01 100644 --- a/src/Admin/ThingsGateway.DB/Services/SugarAopService/ISugarAopService.cs +++ b/src/Admin/ThingsGateway.DB/Services/SugarAopService/ISugarAopService.cs @@ -10,7 +10,6 @@ namespace ThingsGateway.DB; - /// /// Aop设置 /// @@ -20,7 +19,6 @@ public interface ISugarAopService /// Aop设置 /// public void AopSetting(ISqlSugarClient db, bool? isShowSql = null); - } /// /// Aop设置,可自定义加解密等 diff --git a/src/Admin/ThingsGateway.DB/Services/SugarAopService/SugarAopService.cs b/src/Admin/ThingsGateway.DB/Services/SugarAopService/SugarAopService.cs index 1dece0228..cec81b774 100644 --- a/src/Admin/ThingsGateway.DB/Services/SugarAopService/SugarAopService.cs +++ b/src/Admin/ThingsGateway.DB/Services/SugarAopService/SugarAopService.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using Microsoft.Extensions.Hosting; namespace ThingsGateway.DB; @@ -116,7 +115,6 @@ public class SugarAopService : ISugarAopService { }; - db.Aop.OnLogExecuted = (sql, pars) => { //执行时间超过1秒 @@ -127,10 +125,8 @@ public class SugarAopService : ISugarAopService } }; } - } - public class SugarConfigAopService : ISugarConfigAopService { public SqlSugarOptions Config(SqlSugarOptions sqlSugarOptions) diff --git a/src/Admin/ThingsGateway.DB/Services/SugarService/BaseService.cs b/src/Admin/ThingsGateway.DB/Services/SugarService/BaseService.cs index 813418630..0d3ce6f82 100644 --- a/src/Admin/ThingsGateway.DB/Services/SugarService/BaseService.cs +++ b/src/Admin/ThingsGateway.DB/Services/SugarService/BaseService.cs @@ -170,6 +170,4 @@ public class BaseService : IDataService, IDisposable where T : class, new( { return DbContext.GetDB(); } - - } diff --git a/src/Admin/ThingsGateway.DB/SqlSugar/CodeFirstUtils.cs b/src/Admin/ThingsGateway.DB/SqlSugar/CodeFirstUtils.cs index 38690433b..ca726ece7 100644 --- a/src/Admin/ThingsGateway.DB/SqlSugar/CodeFirstUtils.cs +++ b/src/Admin/ThingsGateway.DB/SqlSugar/CodeFirstUtils.cs @@ -86,7 +86,6 @@ public static class CodeFirstUtils /// 程序集名称 private static void InitTable(string assemblyName) { - // 获取所有实体表-初始化表结构 var entityTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.IsDefined(typeof(SugarTable), false) && u.Assembly.FullName == assemblyName); diff --git a/src/Admin/ThingsGateway.DB/SqlSugar/DbContext.cs b/src/Admin/ThingsGateway.DB/SqlSugar/DbContext.cs index f83d34fb7..eb509582e 100644 --- a/src/Admin/ThingsGateway.DB/SqlSugar/DbContext.cs +++ b/src/Admin/ThingsGateway.DB/SqlSugar/DbContext.cs @@ -57,7 +57,6 @@ public static class DbContext return Db.GetConnection(tenant).CopyNew();//获取数据库对象 } - private static ISugarAopService sugarAopService; private static ISugarAopService SugarAopService { @@ -88,7 +87,6 @@ public static class DbContext }); } - /// /// 实体更多配置 /// @@ -123,9 +121,7 @@ public static class DbContext Console.WriteLine("【Sql语句】:" + msg + Environment.NewLine); } - - - public static async Task BulkCopyAsync(this SqlSugarClient db, List datas, int size) where TITEM : class, new() + public static async Task BulkCopyAsync(this SqlSugarClient db, IEnumerable datas, int size) where TITEM : class, new() { switch (db.CurrentConnectionConfig.DbType) { @@ -140,12 +136,11 @@ public static class DbContext await db.Fastest().PageSize(size).BulkCopyAsync(datas).ConfigureAwait(false); break; default: - await db.Insertable(datas).PageSize(size).ExecuteCommandAsync().ConfigureAwait(false); + await db.Insertable(datas is IReadOnlyList values ? values : datas.ToList()).PageSize(size).ExecuteCommandAsync().ConfigureAwait(false); break; } - } - public static async Task BulkUpdateAsync(this SqlSugarClient db, List datas, int size) where TITEM : class, new() + public static async Task BulkUpdateAsync(this SqlSugarClient db, IEnumerable datas, int size) where TITEM : class, new() { switch (db.CurrentConnectionConfig.DbType) { @@ -160,7 +155,7 @@ public static class DbContext await db.Fastest().PageSize(size).BulkUpdateAsync(datas).ConfigureAwait(false); break; default: - await db.Updateable(datas).PageSize(size).ExecuteCommandAsync().ConfigureAwait(false); + await db.Updateable(datas is IReadOnlyList values ? values : datas.ToList()).PageSize(size).ExecuteCommandAsync().ConfigureAwait(false); break; } } diff --git a/src/Admin/ThingsGateway.DB/Startup.cs b/src/Admin/ThingsGateway.DB/Startup.cs index 0b62ba213..726903e0d 100644 --- a/src/Admin/ThingsGateway.DB/Startup.cs +++ b/src/Admin/ThingsGateway.DB/Startup.cs @@ -28,13 +28,9 @@ public class Startup : AppStartup services.AddSingleton(); StaticConfig.EnableAllWhereIF = true; - - } public void Use(IServiceProvider serviceProvider) { - - } } diff --git a/src/Admin/ThingsGateway.DB/Static/UserManager.cs b/src/Admin/ThingsGateway.DB/Static/UserManager.cs index 5bae61d96..ec73eabd6 100644 --- a/src/Admin/ThingsGateway.DB/Static/UserManager.cs +++ b/src/Admin/ThingsGateway.DB/Static/UserManager.cs @@ -27,7 +27,6 @@ public static class UserManager /// public static bool SuperAdmin => (_claimsPrincipalService.User?.FindFirst(ClaimConst.SuperAdmin)?.Value).ToBoolean(false); - /// /// 当前用户账号 /// @@ -51,5 +50,4 @@ public static class UserManager public static long OrgId => (_claimsPrincipalService.User?.FindFirst(ClaimConst.OrgId)?.Value).ToLong(); public static long TenantId => (_claimsPrincipalService.User?.FindFirst(ClaimConst.TenantId)?.Value)?.ToLong() ?? 0; - } diff --git a/src/Admin/ThingsGateway.Furion/App/App.cs b/src/Admin/ThingsGateway.Furion/App/App.cs index e421729a3..21b95eff9 100644 --- a/src/Admin/ThingsGateway.Furion/App/App.cs +++ b/src/Admin/ThingsGateway.Furion/App/App.cs @@ -134,7 +134,6 @@ public static class App return StringLocalizerFactory?.Create(baseName, location); } - /// /// 判断是否是单文件环境 /// @@ -172,7 +171,6 @@ public static class App /// 只有授权访问的页面或接口才存在值,否则为 null public static ClaimsPrincipal User => HttpContext?.User; - /// /// 获取配置 /// @@ -322,13 +320,11 @@ public static class App return serviceDescriptor?.Lifetime; } - /// /// 构造函数 /// static App() { - // 加载程序集 var assObject = GetAssemblies(); Assemblies = assObject.Assemblies.ToList(); @@ -419,8 +415,6 @@ public static class App fixedSingleFileAssemblies = fixedSingleFileAssemblies.Concat(nativeAssemblies) .Concat(loadAssemblies); - - } else { @@ -507,7 +501,6 @@ public static class App var loadTypes = GetTypes(loadedAssembly); if (!loadTypes.Any()) { - BakImagePaths.TryAdd(assemblyFileFullPath); BakImageNames.TryAdd(loadedAssembly.GetName().Name); continue; diff --git a/src/Admin/ThingsGateway.Furion/App/Extensions/AppApplicationBuilderExtensions.cs b/src/Admin/ThingsGateway.Furion/App/Extensions/AppApplicationBuilderExtensions.cs index 1ea4dc842..285c4d7db 100644 --- a/src/Admin/ThingsGateway.Furion/App/Extensions/AppApplicationBuilderExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/App/Extensions/AppApplicationBuilderExtensions.cs @@ -21,7 +21,6 @@ namespace Microsoft.AspNetCore.Builder; [SuppressSniffer] public static class AppApplicationBuilderExtensions { - /// /// 设置默认服务存储器 /// @@ -87,10 +86,7 @@ public static class AppApplicationBuilderExtensions public static IApplicationBuilder MapRouteControllers(this IApplicationBuilder app) { app.UseRouting(); - app.UseEndpoints(endpoints => - { - endpoints.MapControllers(); - }); + app.UseEndpoints(endpoints => endpoints.MapControllers()); return app; } diff --git a/src/Admin/ThingsGateway.Furion/App/Extensions/AppServiceCollectionExtensions.cs b/src/Admin/ThingsGateway.Furion/App/Extensions/AppServiceCollectionExtensions.cs index bbd8cd715..80b107a0c 100644 --- a/src/Admin/ThingsGateway.Furion/App/Extensions/AppServiceCollectionExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/App/Extensions/AppServiceCollectionExtensions.cs @@ -219,7 +219,6 @@ public static class AppServiceCollectionExtensions Expire = cacheOptions.MemoryCacheOptions.Expire, Period = cacheOptions.MemoryCacheOptions.Period }); - } else if (cacheOptions.CacheType == CacheType.Redis) { @@ -234,13 +233,9 @@ public static class AppServiceCollectionExtensions options.Prefix = cacheOptions.RedisCacheOptions.Prefix; options.InstanceName = cacheOptions.RedisCacheOptions.InstanceName; options.Expire = cacheOptions.RedisCacheOptions.Expire; - }); } - - - // 注册全局依赖注入 services.AddDependencyInjection(); diff --git a/src/Admin/ThingsGateway.Furion/App/Extensions/AppWebApplicationBuilderExtensions.cs b/src/Admin/ThingsGateway.Furion/App/Extensions/AppWebApplicationBuilderExtensions.cs index 7ea065ba4..e2bbbb3d9 100644 --- a/src/Admin/ThingsGateway.Furion/App/Extensions/AppWebApplicationBuilderExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/App/Extensions/AppWebApplicationBuilderExtensions.cs @@ -87,8 +87,6 @@ public static class AppWebApplicationBuilderExtensions return webApplicationBuilder; } - - /// /// 注册 WebApplicationBuilder 依赖组件 /// diff --git a/src/Admin/ThingsGateway.Furion/App/Extensions/ObjectExtensions.cs b/src/Admin/ThingsGateway.Furion/App/Extensions/ObjectExtensions.cs index 9aa793338..a9fe83e2f 100644 --- a/src/Admin/ThingsGateway.Furion/App/Extensions/ObjectExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/App/Extensions/ObjectExtensions.cs @@ -467,7 +467,6 @@ public static class ObjectExtensions return obj; } - /// /// 查找方法指定特性,如果没找到则继续查找声明类 /// @@ -624,7 +623,7 @@ public static class ObjectExtensions { if (string.IsNullOrWhiteSpace(str)) return str; - return string.Concat(str.First().ToString().ToLower(), str.AsSpan(1)); + return string.Concat(str[0].ToString().ToLower(), str.AsSpan(1)); } /// @@ -636,7 +635,7 @@ public static class ObjectExtensions { if (string.IsNullOrWhiteSpace(str)) return str; - return string.Concat(str.First().ToString().ToUpper(), str.AsSpan(1)); + return string.Concat(str[0].ToString().ToUpper(), str.AsSpan(1)); } /// @@ -650,7 +649,6 @@ public static class ObjectExtensions return collection?.Any() != true; } - /// /// 获取类型自定义特性 /// diff --git a/src/Admin/ThingsGateway.Furion/App/Filters/StartupFilter.cs b/src/Admin/ThingsGateway.Furion/App/Filters/StartupFilter.cs index 957bab01d..4e6249cd0 100644 --- a/src/Admin/ThingsGateway.Furion/App/Filters/StartupFilter.cs +++ b/src/Admin/ThingsGateway.Furion/App/Filters/StartupFilter.cs @@ -63,17 +63,14 @@ public class StartupFilter : IStartupFilter { context.Response.StatusCode = StatusCodes.Status403Forbidden; } - } }); // 调用默认中间件 app.UseApp(); - // 调用启动层的 Startup next(app); }; } - } diff --git a/src/Admin/ThingsGateway.Furion/App/Internal/InternalApp.cs b/src/Admin/ThingsGateway.Furion/App/Internal/InternalApp.cs index 051213acc..a0bac0f23 100644 --- a/src/Admin/ThingsGateway.Furion/App/Internal/InternalApp.cs +++ b/src/Admin/ThingsGateway.Furion/App/Internal/InternalApp.cs @@ -151,8 +151,6 @@ internal static class InternalApp // 存储服务提供器 InternalServices = hostApplicationBuilder.Services; - - // 存储根服务 hostApplicationBuilder.Services.AddHostedService(); diff --git a/src/Admin/ThingsGateway.Furion/App/Native.cs b/src/Admin/ThingsGateway.Furion/App/Native.cs index aed7c7cd8..b251fcae0 100644 --- a/src/Admin/ThingsGateway.Furion/App/Native.cs +++ b/src/Admin/ThingsGateway.Furion/App/Native.cs @@ -127,5 +127,4 @@ public static class Native { return NetworkUtility.FindAvailableTcpPort(); } - } diff --git a/src/Admin/ThingsGateway.Furion/App/Options/RunOptions.cs b/src/Admin/ThingsGateway.Furion/App/Options/RunOptions.cs index b3692c5f9..4f79e7845 100644 --- a/src/Admin/ThingsGateway.Furion/App/Options/RunOptions.cs +++ b/src/Admin/ThingsGateway.Furion/App/Options/RunOptions.cs @@ -9,7 +9,6 @@ // 许可证的完整文本可以在源代码树根目录中的 LICENSE-APACHE 和 LICENSE-MIT 文件中找到。 // ------------------------------------------------------------------------ - using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -32,7 +31,6 @@ public sealed class RunOptions : IRunOptions { } - /// /// 默认配置 /// @@ -91,7 +89,6 @@ public sealed class RunOptions : IRunOptions return this; } - /// /// 配置 /// diff --git a/src/Admin/ThingsGateway.Furion/App/Serve.cs b/src/Admin/ThingsGateway.Furion/App/Serve.cs index 477e4727c..e989c65b9 100644 --- a/src/Admin/ThingsGateway.Furion/App/Serve.cs +++ b/src/Admin/ThingsGateway.Furion/App/Serve.cs @@ -614,18 +614,14 @@ public static class Serve // 获取命令行参数 var args = options.Args ?? Environment.GetCommandLineArgs().Skip(1).ToArray(); - - // 初始化 WebApplicationBuilder var builder = (options.Options == null ? WebApplication.CreateBuilder(args) : WebApplication.CreateBuilder(options.Options)); - // 调用自定义配置服务 options?.FirstActionBuilder?.Invoke(builder); - // 注册 WebApplicationBuilder 组件 if (options.WebComponents.Count > 0) { @@ -638,10 +634,7 @@ public static class Serve // 静默启动排除指定日志类名 if (options.IsSilence && !options.SilenceLogging) { - builder.Logging.AddFilter((provider, category, logLevel) => - { - return !SilenceExcludesOfLogCategoryName.Any(u => category.StartsWith(u)); - }); + builder.Logging.AddFilter((provider, category, logLevel) => !SilenceExcludesOfLogCategoryName.Any(u => category.StartsWith(u))); } // 添加自定义配置 @@ -678,8 +671,6 @@ public static class Serve app = builder.Build(); InternalApp.RootServices ??= app.Services; - - var applicationPartManager = app.Services.GetService(); applicationPartManager?.ApplicationParts?.RemoveWhere(p => App.BakImageNames.Any(b => b == p.Name)); @@ -723,10 +714,7 @@ public static class Serve { builder = builder.ConfigureLogging(logging => { - logging.AddFilter((provider, category, logLevel) => - { - return !SilenceExcludesOfLogCategoryName.Any(u => category.StartsWith(u)); - }); + logging.AddFilter((provider, category, logLevel) => !SilenceExcludesOfLogCategoryName.Any(u => category.StartsWith(u))); }); } @@ -828,10 +816,7 @@ public static class Serve { builder = builder.ConfigureLogging(logging => { - logging.AddFilter((provider, category, logLevel) => - { - return !SilenceExcludesOfLogCategoryName.Any(u => category.StartsWith(u)); - }); + logging.AddFilter((provider, category, logLevel) => !SilenceExcludesOfLogCategoryName.Any(u => category.StartsWith(u))); }); } @@ -864,7 +849,6 @@ public static class Serve app = builder.Build(); InternalApp.RootServices ??= app.Services; - var applicationPartManager = app.Services.GetService(); applicationPartManager?.ApplicationParts?.RemoveWhere(p => App.BakImageNames.Any(b => b == p.Name)); @@ -874,8 +858,6 @@ public static class Serve App.AppStartups.Clear(); } - - /// /// 配置 Startup 的 Configure /// @@ -894,7 +876,6 @@ public static class Serve /// 应用构建器 private static void UseStartups(IApplicationBuilder app) { - // 反转,处理排序 var startups = App.AppStartups.Reverse(); if (!startups.Any()) return; @@ -935,7 +916,6 @@ public static class Serve method.Invoke(startup, ResolveMethodParameterInstances(serviceProvider, method)); } } - } /// /// 批量将自定义 AppStartup 添加到 Startup.cs 的 Configure 中 @@ -963,7 +943,6 @@ public static class Serve method.Invoke(startup, ResolveMethodParameterInstances(app, method)); } } - } /// /// 解析方法参数实例 diff --git a/src/Admin/ThingsGateway.Furion/App/ServeComponent.cs b/src/Admin/ThingsGateway.Furion/App/ServeComponent.cs index c3b504a61..7caac2c1c 100644 --- a/src/Admin/ThingsGateway.Furion/App/ServeComponent.cs +++ b/src/Admin/ThingsGateway.Furion/App/ServeComponent.cs @@ -40,10 +40,7 @@ public sealed class ServeServiceComponent : IServiceComponent // 控制器和规范化结果 services.AddControllers() - .AddJsonOptions(options => - { - options.JsonSerializerOptions.Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping; - }) + .AddJsonOptions(options => options.JsonSerializerOptions.Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping) .AddInjectWithUnifyResult(); } } @@ -91,9 +88,6 @@ public sealed class ServeApplicationComponent : IApplicationComponent app.UseInject(string.Empty); // 配置路由 - app.UseEndpoints(endpoints => - { - endpoints.MapControllers(); - }); + app.UseEndpoints(endpoints => endpoints.MapControllers()); } } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/Authorization/Extensions/AuthorizationServiceCollectionExtensions.cs b/src/Admin/ThingsGateway.Furion/Authorization/Extensions/AuthorizationServiceCollectionExtensions.cs index 9b0df5502..efe349d7c 100644 --- a/src/Admin/ThingsGateway.Furion/Authorization/Extensions/AuthorizationServiceCollectionExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/Authorization/Extensions/AuthorizationServiceCollectionExtensions.cs @@ -44,10 +44,7 @@ public static class AuthorizationServiceCollectionExtensions //启用全局授权 if (enableGlobalAuthorize) { - services.Configure(options => - { - options.Filters.Add(new AuthorizeFilter()); - }); + services.Configure(options => options.Filters.Add(new AuthorizeFilter())); } configure?.Invoke(services); diff --git a/src/Admin/ThingsGateway.Furion/ConfigurableOptions/Attributes/MapSettingsAttribute.cs b/src/Admin/ThingsGateway.Furion/ConfigurableOptions/Attributes/MapSettingsAttribute.cs index fba1b99ac..1f4eaa323 100644 --- a/src/Admin/ThingsGateway.Furion/ConfigurableOptions/Attributes/MapSettingsAttribute.cs +++ b/src/Admin/ThingsGateway.Furion/ConfigurableOptions/Attributes/MapSettingsAttribute.cs @@ -9,7 +9,6 @@ // 许可证的完整文本可以在源代码树根目录中的 LICENSE-APACHE 和 LICENSE-MIT 文件中找到。 // ------------------------------------------------------------------------ - namespace ThingsGateway.ConfigurableOptions; /// diff --git a/src/Admin/ThingsGateway.Furion/DataValidation/Filters/DataValidationPageFilter.cs b/src/Admin/ThingsGateway.Furion/DataValidation/Filters/DataValidationPageFilter.cs index 5cb0d0b8a..f2a78d1a4 100644 --- a/src/Admin/ThingsGateway.Furion/DataValidation/Filters/DataValidationPageFilter.cs +++ b/src/Admin/ThingsGateway.Furion/DataValidation/Filters/DataValidationPageFilter.cs @@ -162,7 +162,6 @@ public sealed class DataValidationPageFilter : IAsyncPageFilter, IOrderedFilter Code = validationMetadata.Message }; - return true; } } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/DynamicApiController/Conventions/DynamicApiControllerApplicationModelConvention.cs b/src/Admin/ThingsGateway.Furion/DynamicApiController/Conventions/DynamicApiControllerApplicationModelConvention.cs index 2f94db86d..c153badb1 100644 --- a/src/Admin/ThingsGateway.Furion/DynamicApiController/Conventions/DynamicApiControllerApplicationModelConvention.cs +++ b/src/Admin/ThingsGateway.Furion/DynamicApiController/Conventions/DynamicApiControllerApplicationModelConvention.cs @@ -82,7 +82,6 @@ internal sealed class DynamicApiControllerApplicationModelConvention : IApplicat && (_dynamicApiControllerBuilder?.ControllerFilter == null || _dynamicApiControllerBuilder.ControllerFilter.Invoke(u)); }); - foreach (var controller in controllers) { var controllerType = controller.ControllerType; @@ -155,7 +154,6 @@ internal sealed class DynamicApiControllerApplicationModelConvention : IApplicat continue; } - var actionMethod = action.ActionMethod; var actionApiDescriptionSettings = actionMethod.IsDefined(typeof(ApiDescriptionSettingsAttribute), true) ? actionMethod.GetCustomAttribute(true) : default; @@ -300,7 +298,7 @@ internal sealed class DynamicApiControllerApplicationModelConvention : IApplicat if (!CheckIsKeepVerb(apiDescriptionSettings, controllerApiDescriptionSettings)) { var words = tempName.SplitCamelCase(); - var verbKey = words.First().ToLower(); + var verbKey = words[0].ToLower(); // 处理类似 getlist,getall 多个单词 if (words.Length > 1 && Penetrates.VerbToHttpMethods.ContainsKey((words[0] + words[1]).ToLower())) { @@ -328,7 +326,7 @@ internal sealed class DynamicApiControllerApplicationModelConvention : IApplicat // 解析请求谓词 var words = action.ActionMethod.Name.SplitCamelCase(); - var verbKey = words.First().ToLower(); + var verbKey = words[0].ToLower(); // 处理类似 getlist,getall 多个单词 if (words.Length > 1 && Penetrates.VerbToHttpMethods.ContainsKey((words[0] + words[1]).ToLower())) diff --git a/src/Admin/ThingsGateway.Furion/DynamicApiController/Extensions/DynamicApiControllerServiceCollectionExtensions.cs b/src/Admin/ThingsGateway.Furion/DynamicApiController/Extensions/DynamicApiControllerServiceCollectionExtensions.cs index 8707a7197..674c3e96f 100644 --- a/src/Admin/ThingsGateway.Furion/DynamicApiController/Extensions/DynamicApiControllerServiceCollectionExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/DynamicApiController/Extensions/DynamicApiControllerServiceCollectionExtensions.cs @@ -40,7 +40,6 @@ public static class DynamicApiControllerServiceCollectionExtensions return mvcBuilder; } - /// /// 配置动态 WebAPI /// diff --git a/src/Admin/ThingsGateway.Furion/DynamicApiController/Runtimes/DynamicApiRuntimeChangeProvider.cs b/src/Admin/ThingsGateway.Furion/DynamicApiController/Runtimes/DynamicApiRuntimeChangeProvider.cs index 9e358f749..b1e5082a2 100644 --- a/src/Admin/ThingsGateway.Furion/DynamicApiController/Runtimes/DynamicApiRuntimeChangeProvider.cs +++ b/src/Admin/ThingsGateway.Furion/DynamicApiController/Runtimes/DynamicApiRuntimeChangeProvider.cs @@ -83,7 +83,6 @@ internal sealed class DynamicApiRuntimeChangeProvider : IDynamicApiRuntimeChange var applicationPart = _applicationPartManager.ApplicationParts.FirstOrDefault(p => p.Name == assemblyName); if (applicationPart != null) _applicationPartManager.ApplicationParts.Remove(applicationPart); } - } } diff --git a/src/Admin/ThingsGateway.Furion/EventBus/Events/EventHandlerEventArgs.cs b/src/Admin/ThingsGateway.Furion/EventBus/Events/EventHandlerEventArgs.cs index 39a2ca792..4f613d5f5 100644 --- a/src/Admin/ThingsGateway.Furion/EventBus/Events/EventHandlerEventArgs.cs +++ b/src/Admin/ThingsGateway.Furion/EventBus/Events/EventHandlerEventArgs.cs @@ -43,7 +43,6 @@ public sealed class EventHandlerEventArgs : EventArgs /// public Exception Exception { get; internal set; } - /// /// 执行结果 /// diff --git a/src/Admin/ThingsGateway.Furion/EventBus/Extensions/EventBusServiceCollectionExtensions.cs b/src/Admin/ThingsGateway.Furion/EventBus/Extensions/EventBusServiceCollectionExtensions.cs index a9fc537ab..d8e76abbc 100644 --- a/src/Admin/ThingsGateway.Furion/EventBus/Extensions/EventBusServiceCollectionExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/EventBus/Extensions/EventBusServiceCollectionExtensions.cs @@ -87,10 +87,7 @@ public static class EventBusServiceCollectionExtensions var defaultStorerOfChannel = new ChannelEventSourceStorer(eventBusOptionsBuilder.ChannelCapacity); // 注册后台任务队列接口/实例为单例,采用工厂方式创建 - services.AddSingleton(_ => - { - return defaultStorerOfChannel; - }); + services.AddSingleton(_ => defaultStorerOfChannel); // 注册默认内存通道事件发布者 services.AddSingleton(); diff --git a/src/Admin/ThingsGateway.Furion/EventBus/HostedServices/EventBusHostedService.cs b/src/Admin/ThingsGateway.Furion/EventBus/HostedServices/EventBusHostedService.cs index 83428a3f4..ca75a8a9e 100644 --- a/src/Admin/ThingsGateway.Furion/EventBus/HostedServices/EventBusHostedService.cs +++ b/src/Admin/ThingsGateway.Furion/EventBus/HostedServices/EventBusHostedService.cs @@ -287,10 +287,7 @@ internal sealed class EventBusHostedService : BackgroundService : _serviceProvider.GetService(eventSubscribeAttribute.FallbackPolicy) as IEventFallbackPolicy; // 调用事件处理程序并配置出错执行重试 - await Retry.InvokeAsync(async () => - { - await eventHandlerThatShouldRun.Handler!(eventHandlerExecutingContext).ConfigureAwait(false); - } + await Retry.InvokeAsync(async () => await eventHandlerThatShouldRun.Handler!(eventHandlerExecutingContext).ConfigureAwait(false) , eventSubscribeAttribute?.NumRetries ?? 0 , eventSubscribeAttribute?.RetryTimeout ?? 1000 , exceptionTypes: eventSubscribeAttribute?.ExceptionTypes diff --git a/src/Admin/ThingsGateway.Furion/FriendlyException/Filters/FriendlyExceptionFilter.cs b/src/Admin/ThingsGateway.Furion/FriendlyException/Filters/FriendlyExceptionFilter.cs index 7389cbbdb..d9faa9649 100644 --- a/src/Admin/ThingsGateway.Furion/FriendlyException/Filters/FriendlyExceptionFilter.cs +++ b/src/Admin/ThingsGateway.Furion/FriendlyException/Filters/FriendlyExceptionFilter.cs @@ -150,7 +150,5 @@ public sealed class FriendlyExceptionFilter : IAsyncExceptionFilter // 记录拦截日常 logger.LogError(context.Exception, context.Exception.Message); } - } - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/FriendlyException/Internal/MethodIfException.cs b/src/Admin/ThingsGateway.Furion/FriendlyException/Internal/MethodIfException.cs index 05c7a0349..e8946f8b2 100644 --- a/src/Admin/ThingsGateway.Furion/FriendlyException/Internal/MethodIfException.cs +++ b/src/Admin/ThingsGateway.Furion/FriendlyException/Internal/MethodIfException.cs @@ -22,5 +22,4 @@ internal sealed class MethodIfException /// 出异常的方法 /// public MethodBase ErrorMethod { get; set; } - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/FriendlyException/Oops.cs b/src/Admin/ThingsGateway.Furion/FriendlyException/Oops.cs index 7d12a4693..20c0f69a6 100644 --- a/src/Admin/ThingsGateway.Furion/FriendlyException/Oops.cs +++ b/src/Admin/ThingsGateway.Furion/FriendlyException/Oops.cs @@ -206,11 +206,9 @@ public static class Oops // 获取出错的方法 var methodIfException = GetEndPointExceptionMethod(); - // 获取错误码消息 var errorCodeMessage = _errorCodeMessages.GetValueOrDefault(errorCode.ToString()) ?? _friendlyExceptionSettings.DefaultErrorMessage; - // 字符串格式化 return (errorCode, MontageErrorMessage(errorCodeMessage, errorCode.ToString(), hideErrorCode , args)); @@ -326,7 +324,6 @@ public static class Oops var isCached = _errorMethods.TryGetValue(errorMethod, out var methodIfException); if (isCached) return methodIfException; - // 组装方法异常对象 methodIfException = new MethodIfException { diff --git a/src/Admin/ThingsGateway.Furion/JWT/Extensions/JWTAuthorizationServiceCollectionExtensions.cs b/src/Admin/ThingsGateway.Furion/JWT/Extensions/JWTAuthorizationServiceCollectionExtensions.cs index b43b7ecfd..721563ed8 100644 --- a/src/Admin/ThingsGateway.Furion/JWT/Extensions/JWTAuthorizationServiceCollectionExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/JWT/Extensions/JWTAuthorizationServiceCollectionExtensions.cs @@ -60,10 +60,7 @@ public static class JWTAuthorizationServiceCollectionExtensions //启用全局授权 if (enableGlobalAuthorize) { - authenticationBuilder.Services.Configure(options => - { - options.Filters.Add(new AuthorizeFilter()); - }); + authenticationBuilder.Services.Configure(options => options.Filters.Add(new AuthorizeFilter())); } return authenticationBuilder; @@ -136,9 +133,6 @@ public static class JWTAuthorizationServiceCollectionExtensions services.AddOptions() .BindConfiguration("JWTSettings") .ValidateDataAnnotations() - .PostConfigure(options => - { - _ = JWTEncryption.SetDefaultJwtSettings(options); - }); + .PostConfigure(options => _ = JWTEncryption.SetDefaultJwtSettings(options)); } } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/JsonSerialization/Extensions/JsonSerializationServiceCollectionExtensions.cs b/src/Admin/ThingsGateway.Furion/JsonSerialization/Extensions/JsonSerializationServiceCollectionExtensions.cs index c10e57abf..e977dcba5 100644 --- a/src/Admin/ThingsGateway.Furion/JsonSerialization/Extensions/JsonSerializationServiceCollectionExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/JsonSerialization/Extensions/JsonSerializationServiceCollectionExtensions.cs @@ -44,10 +44,7 @@ public static class JsonSerializationServiceCollectionExtensions public static IServiceCollection AddJsonOptions(this IServiceCollection services, Action configure) { // 手动添加配置 - services.Configure(options => - { - configure?.Invoke(options); - }); + services.Configure(options => configure?.Invoke(options)); return services; } diff --git a/src/Admin/ThingsGateway.Furion/JsonSerialization/Extensions/NewtonsoftJsonExtensions.cs b/src/Admin/ThingsGateway.Furion/JsonSerialization/Extensions/NewtonsoftJsonExtensions.cs index dc6f05d96..2c9c25df6 100644 --- a/src/Admin/ThingsGateway.Furion/JsonSerialization/Extensions/NewtonsoftJsonExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/JsonSerialization/Extensions/NewtonsoftJsonExtensions.cs @@ -51,7 +51,6 @@ public static class NewtonsoftJsonExtensions return converters; } - /// /// 添加 DateOnly/DateOnly? 类型序列化处理 /// diff --git a/src/Admin/ThingsGateway.Furion/JsonSerialization/Internal/Penetrates.cs b/src/Admin/ThingsGateway.Furion/JsonSerialization/Internal/Penetrates.cs index cfed798dc..78db18d09 100644 --- a/src/Admin/ThingsGateway.Furion/JsonSerialization/Internal/Penetrates.cs +++ b/src/Admin/ThingsGateway.Furion/JsonSerialization/Internal/Penetrates.cs @@ -36,7 +36,6 @@ internal static class Penetrates return longValue.ConvertToDateTime(); } - var stringValue = reader.GetString(); // 处理时间戳自动转换 diff --git a/src/Admin/ThingsGateway.Furion/Logging/Extensions/ILoggingBuilderExtensions.cs b/src/Admin/ThingsGateway.Furion/Logging/Extensions/ILoggingBuilderExtensions.cs index dd8671cab..368faa43e 100644 --- a/src/Admin/ThingsGateway.Furion/Logging/Extensions/ILoggingBuilderExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/Logging/Extensions/ILoggingBuilderExtensions.cs @@ -48,10 +48,7 @@ public static class ILoggingBuilderExtensions public static ILoggingBuilder AddFile(this ILoggingBuilder builder, string fileName, bool append = true) { // 注册文件日志记录器提供器 - builder.Services.Add(ServiceDescriptor.Singleton((serviceProvider) => - { - return new FileLoggerProvider(fileName ?? "application.log", append); - })); + builder.Services.Add(ServiceDescriptor.Singleton((serviceProvider) => new FileLoggerProvider(fileName ?? "application.log", append))); return builder; } @@ -98,10 +95,7 @@ public static class ILoggingBuilderExtensions public static ILoggingBuilder AddFile(this ILoggingBuilder builder, Func configuraionKey, Action configure = default) { // 注册文件日志记录器提供器 - builder.Services.Add(ServiceDescriptor.Singleton((serviceProvider) => - { - return Penetrates.CreateFromConfiguration(configuraionKey, configure); - })); + builder.Services.Add(ServiceDescriptor.Singleton((serviceProvider) => Penetrates.CreateFromConfiguration(configuraionKey, configure))); return builder; } diff --git a/src/Admin/ThingsGateway.Furion/Logging/Implantations/Database/DatabaseLoggerProvider.cs b/src/Admin/ThingsGateway.Furion/Logging/Implantations/Database/DatabaseLoggerProvider.cs index d25330a55..016d7762b 100644 --- a/src/Admin/ThingsGateway.Furion/Logging/Implantations/Database/DatabaseLoggerProvider.cs +++ b/src/Admin/ThingsGateway.Furion/Logging/Implantations/Database/DatabaseLoggerProvider.cs @@ -57,8 +57,6 @@ public sealed class DatabaseLoggerProvider : ILoggerProvider, ISupportExternalSc /// 实现不间断写入 private Task _processQueueTask; - - /// /// 构造函数 /// diff --git a/src/Admin/ThingsGateway.Furion/Logging/Implantations/Monitors/LoggingMonitorSettings.cs b/src/Admin/ThingsGateway.Furion/Logging/Implantations/Monitors/LoggingMonitorSettings.cs index f4d37b0f2..a59471ea4 100644 --- a/src/Admin/ThingsGateway.Furion/Logging/Implantations/Monitors/LoggingMonitorSettings.cs +++ b/src/Admin/ThingsGateway.Furion/Logging/Implantations/Monitors/LoggingMonitorSettings.cs @@ -145,7 +145,6 @@ public sealed class LoggingMonitorSettings SkipValidation = true }; - /// /// 格式化提供器 /// diff --git a/src/Admin/ThingsGateway.Furion/Logging/Internal/StringLoggingPartMethods.cs b/src/Admin/ThingsGateway.Furion/Logging/Internal/StringLoggingPartMethods.cs index 51da7cfdf..e5eeef329 100644 --- a/src/Admin/ThingsGateway.Furion/Logging/Internal/StringLoggingPartMethods.cs +++ b/src/Admin/ThingsGateway.Furion/Logging/Internal/StringLoggingPartMethods.cs @@ -169,9 +169,6 @@ public sealed partial class StringLoggingPart }) : null; - return LoggerFactory.Create(builder => - { - builder.AddConsoleFormatter(configure); - }); + return LoggerFactory.Create(builder => builder.AddConsoleFormatter(configure)); } } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/Logging/LoggerFormatter.cs b/src/Admin/ThingsGateway.Furion/Logging/LoggerFormatter.cs index 20fb14ff3..9abb4cdad 100644 --- a/src/Admin/ThingsGateway.Furion/Logging/LoggerFormatter.cs +++ b/src/Admin/ThingsGateway.Furion/Logging/LoggerFormatter.cs @@ -24,18 +24,12 @@ public static class LoggerFormatter /// /// Json 输出格式化 /// - public static readonly Func Json = (logMsg) => - { - return logMsg.Write(writer => WriteJson(logMsg, writer)); - }; + public static readonly Func Json = (logMsg) => logMsg.Write(writer => WriteJson(logMsg, writer)); /// /// Json 输出格式化 /// - public static readonly Func JsonIndented = (logMsg) => - { - return logMsg.Write(writer => WriteJson(logMsg, writer), true); - }; + public static readonly Func JsonIndented = (logMsg) => logMsg.Write(writer => WriteJson(logMsg, writer), true); /// /// 写入 JSON diff --git a/src/Admin/ThingsGateway.Furion/Options/Extensions/OptionsBuilderExtensions.cs b/src/Admin/ThingsGateway.Furion/Options/Extensions/OptionsBuilderExtensions.cs index b471b6d48..93d25b42d 100644 --- a/src/Admin/ThingsGateway.Furion/Options/Extensions/OptionsBuilderExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/Options/Extensions/OptionsBuilderExtensions.cs @@ -117,10 +117,7 @@ public static class OptionsBuilderExtensions } // 逐条配置选项构建器 - Array.ForEach(optionsBuilderTypes, optionsBuilderType => - { - optionsBuilder.ConfigureBuilder(optionsBuilderType); - }); + Array.ForEach(optionsBuilderTypes, optionsBuilderType => optionsBuilder.ConfigureBuilder(optionsBuilderType)); return optionsBuilder; } @@ -168,10 +165,7 @@ public static class OptionsBuilderExtensions var validateOptionsType = typeof(IValidateOptions); // 注册复杂选项 - Array.ForEach(optionsBuilderAttribute.ValidateOptionsTypes!, type => - { - optionsBuilder.Services.TryAddEnumerable(ServiceDescriptor.Singleton(validateOptionsType, type)); - }); + Array.ForEach(optionsBuilderAttribute.ValidateOptionsTypes!, type => optionsBuilder.Services.TryAddEnumerable(ServiceDescriptor.Singleton(validateOptionsType, type))); } return optionsBuilder; diff --git a/src/Admin/ThingsGateway.Furion/Redis/Cache/CacheOptions.cs b/src/Admin/ThingsGateway.Furion/Redis/Cache/CacheOptions.cs index 0bff77d08..f2382faf7 100644 --- a/src/Admin/ThingsGateway.Furion/Redis/Cache/CacheOptions.cs +++ b/src/Admin/ThingsGateway.Furion/Redis/Cache/CacheOptions.cs @@ -46,7 +46,6 @@ public sealed class CacheOptions : IConfigurableOptions /// public void PostConfigure(CacheOptions options, IConfiguration configuration) { - } } public class MemoryCacheOptions @@ -62,5 +61,4 @@ public class MemoryCacheOptions public class RedisCacheOptions : RedisOptions { - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisCache.cs b/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisCache.cs index d5b267e74..ff3e055b2 100644 --- a/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisCache.cs +++ b/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisCache.cs @@ -112,5 +112,4 @@ public class RedisCache : FullRedis, IDistributedCache, IDisposable public Task RemoveAsync(String key, CancellationToken token = default) => Task.Run(() => base.Remove(key), token); } - #endif \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisCacheServiceCollectionExtensions.cs b/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisCacheServiceCollectionExtensions.cs index 5a694802c..530b44841 100644 --- a/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisCacheServiceCollectionExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisCacheServiceCollectionExtensions.cs @@ -28,7 +28,6 @@ public static class RedisCacheServiceCollectionExtensions if (setupAction == null) throw new ArgumentNullException(nameof(setupAction)); - services.AddOptions(); services.Configure(setupAction); services.AddSingleton(sp => new RedisCache(sp, sp.GetRequiredService>())); @@ -37,7 +36,6 @@ public static class RedisCacheServiceCollectionExtensions services.TryAddSingleton(sp => sp.GetRequiredService()); services.TryAddSingleton(p => { - var result = p.GetRequiredService(); Cache.Default = result; return result; @@ -59,5 +57,4 @@ public static class RedisCacheServiceCollectionExtensions } } - #endif \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisDataProtectionBuilderExtensions.cs b/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisDataProtectionBuilderExtensions.cs index f4064ebb3..2441673d2 100644 --- a/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisDataProtectionBuilderExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisDataProtectionBuilderExtensions.cs @@ -68,5 +68,4 @@ public static class RedisDataProtectionBuilderExtensions } } - #endif \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisXmlRepository.cs b/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisXmlRepository.cs index c054666fd..54f227fd1 100644 --- a/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisXmlRepository.cs +++ b/src/Admin/ThingsGateway.Furion/Redis/Extension/RedisXmlRepository.cs @@ -65,5 +65,4 @@ public class RedisXmlRepository : IXmlRepository } } - #endif \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/Schedule/Builders/JobBuilder.cs b/src/Admin/ThingsGateway.Furion/Schedule/Builders/JobBuilder.cs index 1d481156d..ed10ff525 100644 --- a/src/Admin/ThingsGateway.Furion/Schedule/Builders/JobBuilder.cs +++ b/src/Admin/ThingsGateway.Furion/Schedule/Builders/JobBuilder.cs @@ -193,7 +193,6 @@ public sealed class JobBuilder : JobDetail var jobType = Penetrates.LoadAssembly(assemblyName) .GetType(jobTypeFullName); - return SetJobType(jobType); } @@ -228,8 +227,6 @@ public sealed class JobBuilder : JobDetail JobType = jobType.FullName; RuntimeJobType = jobType; - - return this; } diff --git a/src/Admin/ThingsGateway.Furion/Schedule/Dashboard/backend/ScheduleUIOptions.cs b/src/Admin/ThingsGateway.Furion/Schedule/Dashboard/backend/ScheduleUIOptions.cs index bc479f527..824682606 100644 --- a/src/Admin/ThingsGateway.Furion/Schedule/Dashboard/backend/ScheduleUIOptions.cs +++ b/src/Admin/ThingsGateway.Furion/Schedule/Dashboard/backend/ScheduleUIOptions.cs @@ -91,8 +91,5 @@ public sealed class LoginConfig /// /// 登录逻辑 /// - public Func> OnLoging { get; set; } = (username, password, httpContext) => - { - return Task.FromResult(username == "schedule" && string.IsNullOrWhiteSpace(password)); - }; + public Func> OnLoging { get; set; } = (username, password, httpContext) => Task.FromResult(username == "schedule" && string.IsNullOrWhiteSpace(password)); } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/Schedule/Extensions/ScheduleExtensions.cs b/src/Admin/ThingsGateway.Furion/Schedule/Extensions/ScheduleExtensions.cs index 92a0cfb9f..50b524c8e 100644 --- a/src/Admin/ThingsGateway.Furion/Schedule/Extensions/ScheduleExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/Schedule/Extensions/ScheduleExtensions.cs @@ -220,7 +220,6 @@ public static class ScheduleExtensions { continue; } - } return target as TTarget; diff --git a/src/Admin/ThingsGateway.Furion/Schedule/Factories/SchedulerFactory.Exports.cs b/src/Admin/ThingsGateway.Furion/Schedule/Factories/SchedulerFactory.Exports.cs index 792a3c577..eef083ca2 100644 --- a/src/Admin/ThingsGateway.Furion/Schedule/Factories/SchedulerFactory.Exports.cs +++ b/src/Admin/ThingsGateway.Furion/Schedule/Factories/SchedulerFactory.Exports.cs @@ -450,7 +450,6 @@ internal sealed partial class SchedulerFactory return TryAddJob(jobBuilder, triggerBuilders, out scheduler, immediately); } - /// /// 添加作业 /// diff --git a/src/Admin/ThingsGateway.Furion/Schedule/HostedServices/ScheduleHostedService.cs b/src/Admin/ThingsGateway.Furion/Schedule/HostedServices/ScheduleHostedService.cs index 1359e7c91..ac98c4fdc 100644 --- a/src/Admin/ThingsGateway.Furion/Schedule/HostedServices/ScheduleHostedService.cs +++ b/src/Admin/ThingsGateway.Furion/Schedule/HostedServices/ScheduleHostedService.cs @@ -252,10 +252,7 @@ internal sealed class ScheduleHostedService : BackgroundService if (Executor == default) { // 调用作业处理程序并配置出错执行重试 - await Retry.InvokeAsync(async () => - { - await jobHandler.ExecuteAsync(jobExecutingContext, jobCancellationTokenSource.Token).ConfigureAwait(false); - } + await Retry.InvokeAsync(async () => await jobHandler.ExecuteAsync(jobExecutingContext, jobCancellationTokenSource.Token).ConfigureAwait(false) , trigger.NumRetries , trigger.RetryTimeout , retryAction: (total, times) => @@ -392,7 +389,6 @@ internal sealed class ScheduleHostedService : BackgroundService // 清空存储作业执行过程中传递的数据 jobExecutingContext.Items?.Clear(); - // 释放服务作用域 await ReleaseJobHandlerAsync(jobHandler).ConfigureAwait(false); jobHandler = null; @@ -505,7 +501,6 @@ internal sealed class ScheduleHostedService : BackgroundService /// private async Task ReleaseJobHandlerAsync(IJob jobHandler) { - if (jobHandler is null) return; var isService = _serviceProviderIsService.IsService(jobHandler.GetType()); diff --git a/src/Admin/ThingsGateway.Furion/Schedule/Internal/Penetrates.cs b/src/Admin/ThingsGateway.Furion/Schedule/Internal/Penetrates.cs index acdeb81d3..0e2c80a85 100644 --- a/src/Admin/ThingsGateway.Furion/Schedule/Internal/Penetrates.cs +++ b/src/Admin/ThingsGateway.Furion/Schedule/Internal/Penetrates.cs @@ -130,7 +130,7 @@ internal static class Penetrates if (string.IsNullOrWhiteSpace(str)) return str; // 获取首个字母 - var firstLetter = str.First().ToString(); + var firstLetter = str[0].ToString(); // 拼接最终返回字符串 return string.Concat(isUpper diff --git a/src/Admin/ThingsGateway.Furion/Schedule/Schedular.cs b/src/Admin/ThingsGateway.Furion/Schedule/Schedular.cs index 9df16d2b2..fd6956b37 100644 --- a/src/Admin/ThingsGateway.Furion/Schedule/Schedular.cs +++ b/src/Admin/ThingsGateway.Furion/Schedule/Schedular.cs @@ -110,5 +110,4 @@ public static class Schedular { return Penetrates.Deserialize(json); } - } diff --git a/src/Admin/ThingsGateway.Furion/SpecificationDocument/Builders/SpecificationDocumentBuilder.cs b/src/Admin/ThingsGateway.Furion/SpecificationDocument/Builders/SpecificationDocumentBuilder.cs index 90432351e..b83a6fda5 100644 --- a/src/Admin/ThingsGateway.Furion/SpecificationDocument/Builders/SpecificationDocumentBuilder.cs +++ b/src/Admin/ThingsGateway.Furion/SpecificationDocument/Builders/SpecificationDocumentBuilder.cs @@ -358,10 +358,7 @@ public static class SpecificationDocumentBuilder /// private static void ConfigureTagsAction(SwaggerGenOptions swaggerGenOptions) { - swaggerGenOptions.TagActionsBy(apiDescription => - { - return new[] { GetActionTag(apiDescription) }; - }); + swaggerGenOptions.TagActionsBy(apiDescription => new[] { GetActionTag(apiDescription) }); } /// @@ -512,7 +509,6 @@ public static class SpecificationDocumentBuilder // 处理逻辑:获取类型命名空间,最后调用 GenerateInheritdocCref 进行生成 else { - try { var className = memberName[memberName.IndexOf(':')..memberName.LastIndexOf(':')]; diff --git a/src/Admin/ThingsGateway.Furion/SpecificationDocument/Extensions/SpecificationDocumentServiceCollectionExtensions.cs b/src/Admin/ThingsGateway.Furion/SpecificationDocument/Extensions/SpecificationDocumentServiceCollectionExtensions.cs index 8c7d632cf..71ddcd17f 100644 --- a/src/Admin/ThingsGateway.Furion/SpecificationDocument/Extensions/SpecificationDocumentServiceCollectionExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/SpecificationDocument/Extensions/SpecificationDocumentServiceCollectionExtensions.cs @@ -63,6 +63,4 @@ public static class SpecificationDocumentServiceCollectionExtensions return services; } - - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/EnhancedStackTrace.Frames.cs b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/EnhancedStackTrace.Frames.cs index 8f732f12b..24bc6c25a 100644 --- a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/EnhancedStackTrace.Frames.cs +++ b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/EnhancedStackTrace.Frames.cs @@ -392,7 +392,6 @@ namespace System.Diagnostics if (v.LocalType == type) { GetOrdinal(method, ref ordinal); - } method = candidateMethod; type = method.DeclaringType; @@ -540,7 +539,6 @@ namespace System.Diagnostics return false; } - private static int IndexOfBalancedParenthesis(string str, int openingOffset, char closing) { var opening = str[openingOffset]; diff --git a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/EnhancedStackTrace.cs b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/EnhancedStackTrace.cs index 87b927285..f18d77a24 100644 --- a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/EnhancedStackTrace.cs +++ b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/EnhancedStackTrace.cs @@ -33,7 +33,6 @@ namespace System.Diagnostics _frames = GetFrames(e); } - public EnhancedStackTrace(StackTrace stackTrace) { if (stackTrace == null) @@ -81,7 +80,6 @@ namespace System.Diagnostics return sb.ToString(); } - internal void Append(StringBuilder sb) { var frames = _frames; @@ -105,7 +103,6 @@ namespace System.Diagnostics { sb.Append(" in "); sb.Append(TryGetFullPath(fileName)); - } var lineNo = frame.GetFileLineNumber(); diff --git a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/Enumerable/EnumerableIList.cs b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/Enumerable/EnumerableIList.cs index ef883df48..d44341fe3 100644 --- a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/Enumerable/EnumerableIList.cs +++ b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/Enumerable/EnumerableIList.cs @@ -22,7 +22,6 @@ namespace System.Collections.Generic.Enumerable public static EnumerableIList Empty = default; - // IList pass through /// diff --git a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/Internal/ILReader.cs b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/Internal/ILReader.cs index 44d25704a..0229dd22b 100644 --- a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/Internal/ILReader.cs +++ b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/Internal/ILReader.cs @@ -11,7 +11,6 @@ namespace System.Diagnostics.Internal private readonly byte[] _cil; private int ptr; - public ILReader(byte[] cil) => _cil = cil; public OpCode OpCode { get; private set; } diff --git a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/ResolvedMethod.cs b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/ResolvedMethod.cs index 15aad83b9..42405b1b1 100644 --- a/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/ResolvedMethod.cs +++ b/src/Admin/ThingsGateway.Furion/StackTraceDemystifier/ResolvedMethod.cs @@ -68,7 +68,6 @@ namespace System.Diagnostics if (DeclaringType != null) { - if (Name == ".ctor") { if (string.IsNullOrEmpty(SubMethod) && !IsLambda) diff --git a/src/Admin/ThingsGateway.Furion/Templates/Extensions/StringRenderExtensions.cs b/src/Admin/ThingsGateway.Furion/Templates/Extensions/StringRenderExtensions.cs index 8feb81ae0..afa5bbb06 100644 --- a/src/Admin/ThingsGateway.Furion/Templates/Extensions/StringRenderExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/Templates/Extensions/StringRenderExtensions.cs @@ -45,7 +45,6 @@ public static class StringRenderExtensions return template.Render(templateData == null ? default : templateData.ObjectToDictionary().ToDictionary(u => u.Key.ToString(), u => u.Value), encode); } - /// /// 渲染模板 /// diff --git a/src/Admin/ThingsGateway.Furion/TimeCrontab/Crontab.Internal.cs b/src/Admin/ThingsGateway.Furion/TimeCrontab/Crontab.Internal.cs index 0ba062fd3..b74e97712 100644 --- a/src/Admin/ThingsGateway.Furion/TimeCrontab/Crontab.Internal.cs +++ b/src/Admin/ThingsGateway.Furion/TimeCrontab/Crontab.Internal.cs @@ -357,7 +357,7 @@ public partial class Crontab parser = parser[offset..] + missingParser; // 转换成 int 值返回(SUN,JAN.....) - var returnValue = replaceVal.First().Value; + var returnValue = replaceVal[0].Value; // 验证值范围 if (returnValue > maximum) @@ -796,7 +796,7 @@ public partial class Crontab private static int Increment(List parsers, int value, int defaultValue, out bool overflow) { // 检查是否是随机 R 字符解析器 - if (parsers.Count == 1 && parsers.First() is RandomParser randomParser) + if (parsers.Count == 1 && parsers[0] is RandomParser randomParser) { overflow = true; return randomParser.Next(value).Value; diff --git a/src/Admin/ThingsGateway.Furion/UnifyResult/Filters/SucceededUnifyResultFilter.cs b/src/Admin/ThingsGateway.Furion/UnifyResult/Filters/SucceededUnifyResultFilter.cs index 7ab032721..1ef2ece21 100644 --- a/src/Admin/ThingsGateway.Furion/UnifyResult/Filters/SucceededUnifyResultFilter.cs +++ b/src/Admin/ThingsGateway.Furion/UnifyResult/Filters/SucceededUnifyResultFilter.cs @@ -116,7 +116,6 @@ public class SucceededUnifyResultFilter : IAsyncActionFilter, IOrderedFilter var result = unifyResult.OnValidateFailed(context, validationMetadata); if (result != null) actionExecutedContext.Result = result; - } else { diff --git a/src/Admin/ThingsGateway.Furion/V5_Experience/Core/Extensions/V5_ObjectExtensions.cs b/src/Admin/ThingsGateway.Furion/V5_Experience/Core/Extensions/V5_ObjectExtensions.cs index 15a6117e9..0fd196f7d 100644 --- a/src/Admin/ThingsGateway.Furion/V5_Experience/Core/Extensions/V5_ObjectExtensions.cs +++ b/src/Admin/ThingsGateway.Furion/V5_Experience/Core/Extensions/V5_ObjectExtensions.cs @@ -244,7 +244,7 @@ internal static class V5_ObjectExtensions } // 获取 KeyValuePair<,> 集合中元素类型 - var keyValuePairType = keyValuePairs.First()?.GetType()!; + var keyValuePairType = keyValuePairs[0]?.GetType()!; // 获取 Key 和 Value 属性值访问器 var getters = keyValuePairType.GetKeyValuePairOrJPropertyGetters(); diff --git a/src/Admin/ThingsGateway.Furion/V5_Experience/Shapeless/Clay/Clay.Exports.cs b/src/Admin/ThingsGateway.Furion/V5_Experience/Shapeless/Clay/Clay.Exports.cs index 24b2df857..125931ede 100644 --- a/src/Admin/ThingsGateway.Furion/V5_Experience/Shapeless/Clay/Clay.Exports.cs +++ b/src/Admin/ThingsGateway.Furion/V5_Experience/Shapeless/Clay/Clay.Exports.cs @@ -1040,7 +1040,6 @@ public partial class Clay /// public bool DeletePathValue(string path) => RemovePathValue(path); - /// /// 将 转换为目标类型 /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Attributes/MinValueAttribute.cs b/src/Admin/ThingsGateway.NewLife.X/Attributes/MinValueAttribute.cs index c7717f1f8..54cae6e9c 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Attributes/MinValueAttribute.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Attributes/MinValueAttribute.cs @@ -12,7 +12,6 @@ using System.ComponentModel.DataAnnotations; namespace ThingsGateway; - /// /// 最小值校验 /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Collections/CollectionHelper.cs b/src/Admin/ThingsGateway.NewLife.X/Collections/CollectionHelper.cs index 2f95f9412..25d204952 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Collections/CollectionHelper.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Collections/CollectionHelper.cs @@ -14,7 +14,6 @@ namespace System.Collections.Generic; /// 集合扩展 public static class CollectionHelper { - /// 集合转为数组,加锁确保安全 /// /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Collections/IPool.cs b/src/Admin/ThingsGateway.NewLife.X/Collections/IPool.cs index 0df4b94fe..21c40727d 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Collections/IPool.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Collections/IPool.cs @@ -34,7 +34,6 @@ public static class Pool /// 字符串构建器池 public static IPool StringBuilder { get; set; } = new StringBuilderPool(); - /// 归还一个字符串构建器到对象池 /// /// 是否需要返回结果 @@ -84,8 +83,6 @@ public static class Pool /// 内存流池 public static IPool MemoryStream { get; set; } = new MemoryStreamPool(); - - /// 归还一个内存流到对象池 /// /// 是否需要返回结果 diff --git a/src/Admin/ThingsGateway.NewLife.X/Collections/ObjectPool.cs b/src/Admin/ThingsGateway.NewLife.X/Collections/ObjectPool.cs index 8230f0ece..80069e354 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Collections/ObjectPool.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Collections/ObjectPool.cs @@ -182,7 +182,6 @@ public class ObjectPool : DisposeBase, IPool where T : notnull /// public PoolItem GetItem() => new(this, Get()); - /// 归还 /// public virtual Boolean Return(T value) diff --git a/src/Admin/ThingsGateway.NewLife.X/Collections/Pool.cs b/src/Admin/ThingsGateway.NewLife.X/Collections/Pool.cs index a0829f7a0..066766762 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Collections/Pool.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Collections/Pool.cs @@ -96,8 +96,6 @@ public class Pool : IPool where T : class return rs; } - - /// 归还 /// /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Common/ConvertUtility.cs b/src/Admin/ThingsGateway.NewLife.X/Common/ConvertUtility.cs index 16c29c5b0..993d19419 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Common/ConvertUtility.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Common/ConvertUtility.cs @@ -543,7 +543,6 @@ public class DefaultConvert { return n3 != 0; } - } try { diff --git a/src/Admin/ThingsGateway.NewLife.X/Common/FileUtil.cs b/src/Admin/ThingsGateway.NewLife.X/Common/FileUtil.cs index b8dba675f..645bba8f9 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Common/FileUtil.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Common/FileUtil.cs @@ -48,5 +48,4 @@ public static class FileUtil { File.WriteAllText(path, data); } - } diff --git a/src/Admin/ThingsGateway.NewLife.X/Common/IncrementCount.cs b/src/Admin/ThingsGateway.NewLife.X/Common/IncrementCount.cs index 95ff20c60..35a726ff7 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Common/IncrementCount.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Common/IncrementCount.cs @@ -80,7 +80,6 @@ public sealed class IncrementCount lock (this) { _current = value <= _max ? value >= _start ? value : _start : _max; - } } @@ -122,6 +121,4 @@ public sealed class IncrementCount } } } - - } diff --git a/src/Admin/ThingsGateway.NewLife.X/Common/MachineInfo.cs b/src/Admin/ThingsGateway.NewLife.X/Common/MachineInfo.cs index 80b6237c0..c2cbf06c2 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Common/MachineInfo.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Common/MachineInfo.cs @@ -141,10 +141,7 @@ public class MachineInfo : IExtend { if (_task != null) return _task; - return _task = Task.Factory.StartNew(() => - { - return Register(); - }); + return _task = Task.Factory.StartNew(() => Register()); } private static MachineInfo Register() diff --git a/src/Admin/ThingsGateway.NewLife.X/Common/SysConfig.cs b/src/Admin/ThingsGateway.NewLife.X/Common/SysConfig.cs index 69b4964a5..7107b5afb 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Common/SysConfig.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Common/SysConfig.cs @@ -141,7 +141,6 @@ public class SysConfig : Config .ToList(); return list.FirstOrDefault(); - } catch { return null; } } diff --git a/src/Admin/ThingsGateway.NewLife.X/Common/TimeTick.cs b/src/Admin/ThingsGateway.NewLife.X/Common/TimeTick.cs index 037efc4b2..4aace96b4 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Common/TimeTick.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Common/TimeTick.cs @@ -82,8 +82,6 @@ public class TimeTick return nextTime; } - - } public DateTime GetNextTime(bool setLastTime = false) => GetNextTime(DateTime.UtcNow, setLastTime); diff --git a/src/Admin/ThingsGateway.NewLife.X/Common/WaitLock.cs b/src/Admin/ThingsGateway.NewLife.X/Common/WaitLock.cs index 14ced1e58..b5014b9f9 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Common/WaitLock.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Common/WaitLock.cs @@ -70,7 +70,6 @@ public sealed class WaitLock : IDisposable } } } - } /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Configuration/FileConfigProvider.cs b/src/Admin/ThingsGateway.NewLife.X/Configuration/FileConfigProvider.cs index 730098209..4d99ae3ba 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Configuration/FileConfigProvider.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Configuration/FileConfigProvider.cs @@ -34,7 +34,6 @@ public abstract class FileConfigProvider : ConfigProvider #region 方法 - /// 初始化 /// public override void Init(String value) diff --git a/src/Admin/ThingsGateway.NewLife.X/Data/DbTable.cs b/src/Admin/ThingsGateway.NewLife.X/Data/DbTable.cs index b2a16de74..607e6fc95 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Data/DbTable.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Data/DbTable.cs @@ -33,7 +33,6 @@ public class DbTable : IEnumerable, ICloneable, IAccessor public Int32 Total { get; set; } #endregion - #region 从数据库读取 /// 读取数据 /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Extension/DictionaryExtensions.cs b/src/Admin/ThingsGateway.NewLife.X/Extension/DictionaryExtensions.cs index 8fd069f90..a37151f65 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Extension/DictionaryExtensions.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Extension/DictionaryExtensions.cs @@ -53,7 +53,6 @@ public static class DictionaryExtensions return count; } - /// /// 根据指定的一组 key,批量从字典中筛选对应的键值对。 /// @@ -103,8 +102,6 @@ public static class DictionaryExtensions return list; } - - /// /// 批量出队 /// @@ -165,6 +162,4 @@ public static class DictionaryExtensions - - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.NewLife.X/Extension/JsonExtension.cs b/src/Admin/ThingsGateway.NewLife.X/Extension/JsonExtension.cs index 5c00fbc2f..07fa2d646 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Extension/JsonExtension.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Extension/JsonExtension.cs @@ -50,7 +50,6 @@ public static class JsonExtension return Newtonsoft.Json.JsonConvert.DeserializeObject(json, type, jsonSerializerSettings ?? IndentedOptions); } - /// /// 反序列化 /// @@ -62,7 +61,6 @@ public static class JsonExtension return (T)FromJsonNetString(json, typeof(T), jsonSerializerSettings); } - /// /// 序列化 /// @@ -82,8 +80,6 @@ public static class JsonExtension return Newtonsoft.Json.JsonConvert.SerializeObject(item, indented == false ? NoneIndentedOptions : IndentedOptions); } - - } public class ByteArrayToNumberArrayConverter : JsonConverter @@ -129,4 +125,3 @@ public class ByteArrayToNumberArrayConverter : JsonConverter public override bool CanRead => true; } - diff --git a/src/Admin/ThingsGateway.NewLife.X/Extension/LinqExtensions.cs b/src/Admin/ThingsGateway.NewLife.X/Extension/LinqExtensions.cs index 9ddaf033c..7aab500bc 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Extension/LinqExtensions.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Extension/LinqExtensions.cs @@ -101,6 +101,4 @@ public static class LinqExtensions { return dict.TryRemove(key, out TValue? _); } - - } diff --git a/src/Admin/ThingsGateway.NewLife.X/Extension/ProcessHelper.cs b/src/Admin/ThingsGateway.NewLife.X/Extension/ProcessHelper.cs index 99bc52ad3..20d3fd9e2 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Extension/ProcessHelper.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Extension/ProcessHelper.cs @@ -14,8 +14,6 @@ namespace ThingsGateway.NewLife; /// public static class ProcessHelper { - - public static int GetProcessId() { #if NET6_0_OR_GREATER @@ -52,8 +50,6 @@ public static class ProcessHelper return pname; } - - /// 获取指定进程的命令行参数 /// /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Extension/StringHelper.cs b/src/Admin/ThingsGateway.NewLife.X/Extension/StringHelper.cs index b57ca55f5..feace3c55 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Extension/StringHelper.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Extension/StringHelper.cs @@ -179,7 +179,6 @@ public static class StringHelper return dic; } - /// 把一个列表组合成为一个字符串,默认逗号分隔 /// /// 组合分隔符,默认逗号 @@ -197,7 +196,6 @@ public static class StringHelper return sb.Return(true); } - /// 把一个列表组合成为一个字符串,默认逗号分隔 /// /// 组合分隔符,默认逗号 @@ -537,10 +535,7 @@ public static class StringHelper .Any(dist => { return Enumerable.Range(0, Math.Max(str.Length - item.Length - dist + 1, 0)) - .Any(f => - { - return LevenshteinDistance(item, str.Substring(f, item.Length + dist)) <= maxDist; - }); + .Any(f => LevenshteinDistance(item, str.Substring(f, item.Length + dist)) <= maxDist); }) orderby str select str; diff --git a/src/Admin/ThingsGateway.NewLife.X/Extension/SystemTextJsonExtension.cs b/src/Admin/ThingsGateway.NewLife.X/Extension/SystemTextJsonExtension.cs index 3183c0819..85f36ba6e 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Extension/SystemTextJsonExtension.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Extension/SystemTextJsonExtension.cs @@ -108,8 +108,6 @@ public static class SystemTextJsonExtension { return JsonSerializer.SerializeToUtf8Bytes(item, item.GetType(), indented ? IndentedOptions : NoneIndentedOptions); } - - } /// @@ -373,7 +371,6 @@ public class JObjectSystemTextJsonConverter : JsonConverter public override void Write(Utf8JsonWriter writer, JObject value, JsonSerializerOptions options) { - writer.WriteStartObject(); foreach (var prop in (JObject)value) { @@ -381,10 +378,8 @@ public class JObjectSystemTextJsonConverter : JsonConverter Write(writer, prop.Value!, options); } writer.WriteEndObject(); - } - private static void Write(Utf8JsonWriter writer, JToken value, JsonSerializerOptions options) { switch (value.Type) @@ -450,7 +445,6 @@ public class JObjectSystemTextJsonConverter : JsonConverter break; } } - } /// @@ -526,14 +520,12 @@ public class JArraySystemTextJsonConverter : JsonConverter public override void Write(Utf8JsonWriter writer, JArray value, JsonSerializerOptions options) { - writer.WriteStartArray(); foreach (var item in (JArray)value) { Write(writer, item!, options); } writer.WriteEndArray(); - } private static void Write(Utf8JsonWriter writer, JToken value, JsonSerializerOptions options) @@ -603,7 +595,6 @@ public class JArraySystemTextJsonConverter : JsonConverter } } - /// /// System.Text.Json → JToken / JObject / JArray 转换器 /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Http/HttpRequest.cs b/src/Admin/ThingsGateway.NewLife.X/Http/HttpRequest.cs index 25b4f837b..fb9c690c2 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Http/HttpRequest.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Http/HttpRequest.cs @@ -185,7 +185,6 @@ public class HttpRequest : HttpBase // 判断是否最后一个分隔符 if (data.Slice(bd2.Length, 2).ToStr() == "--") break; - } while (data.Length > 0); return dic; diff --git a/src/Admin/ThingsGateway.NewLife.X/Logger/ISpan.cs b/src/Admin/ThingsGateway.NewLife.X/Logger/ISpan.cs index a7247a07d..764c9b3bc 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Logger/ISpan.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Logger/ISpan.cs @@ -229,8 +229,6 @@ public class DefaultSpan : ISpan var builder = tracer?.BuildSpan(name); builder?.Finish(this); } - - } /// 抛弃埋点,不计入采集 diff --git a/src/Admin/ThingsGateway.NewLife.X/Logger/ISpanBuilder.cs b/src/Admin/ThingsGateway.NewLife.X/Logger/ISpanBuilder.cs index 58b7ff370..7e5020f38 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Logger/ISpanBuilder.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Logger/ISpanBuilder.cs @@ -141,7 +141,6 @@ public class DefaultSpanBuilder : ISpanBuilder { span.Tracer = tracer2; span.Name = Name; - } } diff --git a/src/Admin/ThingsGateway.NewLife.X/Logger/TextFileLog.cs b/src/Admin/ThingsGateway.NewLife.X/Logger/TextFileLog.cs index 7c20770e9..8b16b3656 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Logger/TextFileLog.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Logger/TextFileLog.cs @@ -273,7 +273,6 @@ public class TextFileLog : Logger, IDisposable } catch { - } } } @@ -341,7 +340,6 @@ public class TextFileLog : Logger, IDisposable } protected void WriteLog() { - // 异步写日志,实时。即使这里错误,定时器那边仍然会补上 if (Interlocked.CompareExchange(ref _writing, 1, 0) == 0) { diff --git a/src/Admin/ThingsGateway.NewLife.X/Model/Actor.cs b/src/Admin/ThingsGateway.NewLife.X/Model/Actor.cs index eabce0130..b166436d8 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Model/Actor.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Model/Actor.cs @@ -149,7 +149,6 @@ public abstract class Actor : DisposeBase, IActor return Task.Factory.StartNew(DoActorWork, cancellationToken, creationOptions, scheduler); } - /// 通知停止添加消息,并等待处理完成 /// 等待的毫秒数。0表示不等待,-1表示无限等待 public virtual Boolean Stop(Int32 msTimeout = 0) diff --git a/src/Admin/ThingsGateway.NewLife.X/Model/IPipeline.cs b/src/Admin/ThingsGateway.NewLife.X/Model/IPipeline.cs index b811af7b5..ef409ad40 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Model/IPipeline.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Model/IPipeline.cs @@ -3,7 +3,6 @@ /// 管道。进站顺序,出站逆序 public interface IPipeline { - #region 基础方法 /// 添加处理器到末尾 /// 处理器 @@ -46,7 +45,6 @@ public class Pipeline : IPipeline public IList Handlers { get; } = []; #endregion - #region 方法 /// 添加处理器到末尾 /// 处理器 diff --git a/src/Admin/ThingsGateway.NewLife.X/Net/ISocketRemote.cs b/src/Admin/ThingsGateway.NewLife.X/Net/ISocketRemote.cs index d2c3e54ba..23dbf6a08 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Net/ISocketRemote.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Net/ISocketRemote.cs @@ -216,10 +216,7 @@ public static class SocketRemoteHelper public static Int32 SendFile(this ISocketRemote session, String file, Boolean compressed = false) { var rs = 0; - file.AsFile().OpenRead(compressed, s => - { - rs = session.SendMessages(s); - }); + file.AsFile().OpenRead(compressed, s => rs = session.SendMessages(s)); return rs; } diff --git a/src/Admin/ThingsGateway.NewLife.X/Net/NetHelper.cs b/src/Admin/ThingsGateway.NewLife.X/Net/NetHelper.cs index beef2f07e..8b6d0e58d 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Net/NetHelper.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Net/NetHelper.cs @@ -257,7 +257,6 @@ public static class NetHelper /// public static Boolean CheckPort(this NetUri uri) => uri.Address.CheckPort(uri.Type, uri.Port); - /// 获取所有Tcp连接,带进程Id /// public static TcpConnectionInformation2[] GetAllTcpConnections(Int32 processId = -1) @@ -396,7 +395,6 @@ public static class NetHelper } else { - if (addr.IsIPv4MappedToIPv6) continue; if (addr.IsIPv6LinkLocal) factor--; if (addr.IsIPv6Multicast) continue; diff --git a/src/Admin/ThingsGateway.NewLife.X/Net/NetSession.cs b/src/Admin/ThingsGateway.NewLife.X/Net/NetSession.cs index 0b30373c0..bb9d9c988 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Net/NetSession.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Net/NetSession.cs @@ -213,7 +213,6 @@ public class NetSession : DisposeBase, INetSession, IServiceProvider, IExtend /// 断开原因。包括 SendError/RemoveNotAlive/Dispose/GC 等,其中 ConnectionReset 为网络被动断开或对方断开 protected virtual void OnDisconnected(String reason) => Disconnected?.Invoke(this, new EventArgs(reason)); - /// 收到客户端发来的数据。基类负责触发Received事件 /// protected virtual void OnReceive(ReceivedEventArgs e) => Received?.Invoke(this, e); diff --git a/src/Admin/ThingsGateway.NewLife.X/Net/SessionCollection.cs b/src/Admin/ThingsGateway.NewLife.X/Net/SessionCollection.cs index 616fc1521..0249c7715 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Net/SessionCollection.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Net/SessionCollection.cs @@ -54,7 +54,7 @@ internal class SessionCollection : DisposeBase, IDictionary { _dic.Remove((s as ISocketSession)?.Remote.EndPoint + ""); }; + session.OnDisposed += (s, e) => _dic.Remove((s as ISocketSession)?.Remote.EndPoint + ""); return true; } diff --git a/src/Admin/ThingsGateway.NewLife.X/Net/Setting.cs b/src/Admin/ThingsGateway.NewLife.X/Net/Setting.cs index 042a2cd40..2c965a9a5 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Net/Setting.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Net/Setting.cs @@ -4,7 +4,6 @@ using ThingsGateway.NewLife.Configuration; namespace ThingsGateway.NewLife.Net; - /// 网络设置 [DisplayName("网络设置")] [Config("Socket")] diff --git a/src/Admin/ThingsGateway.NewLife.X/Net/SocketHelper.cs b/src/Admin/ThingsGateway.NewLife.X/Net/SocketHelper.cs index f763b0d8e..661be7d9f 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Net/SocketHelper.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Net/SocketHelper.cs @@ -18,10 +18,7 @@ public static class SocketHelper /// public static Task SendAsync(this Socket socket, Byte[] buffer) { - var task = Task.Factory.FromAsync((Byte[] buf, AsyncCallback callback, Object? state) => - { - return socket.BeginSend(buf, 0, buf.Length, SocketFlags.None, callback, state); - }, socket.EndSend, buffer, null); + var task = Task.Factory.FromAsync((Byte[] buf, AsyncCallback callback, Object? state) => socket.BeginSend(buf, 0, buf.Length, SocketFlags.None, callback, state), socket.EndSend, buffer, null); return task; } @@ -33,10 +30,7 @@ public static class SocketHelper /// public static Task SendToAsync(this Socket socket, Byte[] buffer, IPEndPoint remote) { - var task = Task.Factory.FromAsync((Byte[] buf, IPEndPoint ep, AsyncCallback callback, Object? state) => - { - return socket.BeginSendTo(buf, 0, buf.Length, SocketFlags.None, ep, callback, state); - }, socket.EndSendTo, buffer, remote, null); + var task = Task.Factory.FromAsync((Byte[] buf, IPEndPoint ep, AsyncCallback callback, Object? state) => socket.BeginSendTo(buf, 0, buf.Length, SocketFlags.None, ep, callback, state), socket.EndSendTo, buffer, remote, null); return task; } diff --git a/src/Admin/ThingsGateway.NewLife.X/Net/TcpConnectionInformation2.cs b/src/Admin/ThingsGateway.NewLife.X/Net/TcpConnectionInformation2.cs index 2567fe169..8599c2699 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Net/TcpConnectionInformation2.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Net/TcpConnectionInformation2.cs @@ -101,7 +101,6 @@ public class TcpConnectionInformation2 : TcpConnectionInformation TCP_TABLE_CLASS tblClass, Int32 reserved); - /// 获取所有Tcp连接 /// public static TcpConnectionInformation2[] GetWindowsTcpConnections() diff --git a/src/Admin/ThingsGateway.NewLife.X/Redis/FullRedis.cs b/src/Admin/ThingsGateway.NewLife.X/Redis/FullRedis.cs index 6dbf08b9d..ae99fb301 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Redis/FullRedis.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Redis/FullRedis.cs @@ -652,7 +652,6 @@ public class FullRedis : Redis public override IEventBus GetEventBus(String topic, String clientId = "") => new RedisEventBus(this, topic, clientId); #endregion - public RedisHash GetHashMap(string key) { return new RedisHash(this, key); @@ -705,7 +704,6 @@ public class FullRedis : Redis return 0L; } - #region 字符串操作 /// 附加字符串 /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Redis/Queues/MultipleConsumerGroupsQueue.cs b/src/Admin/ThingsGateway.NewLife.X/Redis/Queues/MultipleConsumerGroupsQueue.cs index 73a559ea4..cfa8f2a70 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Redis/Queues/MultipleConsumerGroupsQueue.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Redis/Queues/MultipleConsumerGroupsQueue.cs @@ -97,7 +97,6 @@ public class MultipleConsumerGroupsQueue : IDisposable } else throw new NullReferenceException("连接Redis服务器失败。"); - } /// @@ -172,8 +171,6 @@ public class MultipleConsumerGroupsQueue : IDisposable OnStopSubscribe(err.Message); return; } - - } Task.Run(() => getSubscribe(subscribeAppName), _Cts.Token); @@ -213,7 +210,6 @@ public class MultipleConsumerGroupsQueue : IDisposable while (_Cts?.IsCancellationRequested == false) { - var msg = await _Queue.TakeMessageAsync(10).ConfigureAwait(false); if (msg?.Id.IsNullOrEmpty() == false) { @@ -231,7 +227,6 @@ public class MultipleConsumerGroupsQueue : IDisposable } catch (Exception err) { - if (XTrace.Debug) XTrace.WriteException(err); //多消费组中,假如当前消息解析异常,原因大多是因为新增加消息格式等原因导致 //所以都可以正常忽略,如有特殊需要配置IgnoreErrMsg为false @@ -245,10 +240,8 @@ public class MultipleConsumerGroupsQueue : IDisposable OnStopSubscribe(err.Message); return; } - } } - } } diff --git a/src/Admin/ThingsGateway.NewLife.X/Redis/Redis.cs b/src/Admin/ThingsGateway.NewLife.X/Redis/Redis.cs index 4575dc7ab..ed8311c1b 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Redis/Redis.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Redis/Redis.cs @@ -885,7 +885,6 @@ public abstract class Redis : Cache, IConfigMapping, ILogFeature public override ICollection GetSet(String key) => throw new NotSupportedException("Redis未支持该功能,需要new FullRedis"); #endregion - #region 高级操作 private static Version _v2612 = new("2.6.12"); /// 添加,已存在时不更新 diff --git a/src/Admin/ThingsGateway.NewLife.X/Redis/RedisList.cs b/src/Admin/ThingsGateway.NewLife.X/Redis/RedisList.cs index c321e39a1..e1f7d97b2 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Redis/RedisList.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Redis/RedisList.cs @@ -6,7 +6,6 @@ namespace ThingsGateway.NewLife.Caching; /// public class RedisList : RedisBase, IList { - #region 构造 /// 实例化 /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Redis/RedisOptions.cs b/src/Admin/ThingsGateway.NewLife.X/Redis/RedisOptions.cs index db586a8c3..4db37d17a 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Redis/RedisOptions.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Redis/RedisOptions.cs @@ -32,5 +32,4 @@ public class RedisOptions public String? Prefix { get; set; } public Int32 Expire { get; set; } = 3600; - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.NewLife.X/Redis/RedisSet.cs b/src/Admin/ThingsGateway.NewLife.X/Redis/RedisSet.cs index 34b7c8119..1c43bd116 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Redis/RedisSet.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Redis/RedisSet.cs @@ -9,7 +9,6 @@ namespace ThingsGateway.NewLife.Caching; /// public class RedisSet : RedisBase, ICollection { - #region 构造 /// 实例化 /// diff --git a/src/Admin/ThingsGateway.NewLife.X/Reflection/AssemblyX.cs b/src/Admin/ThingsGateway.NewLife.X/Reflection/AssemblyX.cs index b7c0a5228..dfd337aec 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Reflection/AssemblyX.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Reflection/AssemblyX.cs @@ -256,8 +256,6 @@ public class AssemblyX // 如果没有包含圆点,说明其不是FullName if (!typeName.Contains('.')) { - - // 遍历所有类型,包括内嵌类型 foreach (var item in Types) { diff --git a/src/Admin/ThingsGateway.NewLife.X/Reflection/DynamicXml.cs b/src/Admin/ThingsGateway.NewLife.X/Reflection/DynamicXml.cs index e8b0d7282..e29ce2fae 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Reflection/DynamicXml.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Reflection/DynamicXml.cs @@ -58,6 +58,4 @@ public class DynamicXml : DynamicObject result = new DynamicXml(getNode); return true; } - - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.NewLife.X/Reflection/OrcasNamer.cs b/src/Admin/ThingsGateway.NewLife.X/Reflection/OrcasNamer.cs index 4e98c7923..c53debf82 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Reflection/OrcasNamer.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Reflection/OrcasNamer.cs @@ -104,7 +104,6 @@ static class OrcasNamer // Type eiiType = eiiMethod.DeclaringType; // TextWriter eiiWriter = new StringWriter(); - // //we need to keep the param names instead of turning them into numbers // //get the template to the right format // if (eiiType != null && eiiType.Template != null) @@ -169,14 +168,11 @@ static class OrcasNamer // if (eiiProperties.Length > 0) eiiProperty = eiiProperties[0]; //} - - //if (eiiProperty != null) //{ // TypeNode eiiType = eiiProperty.DeclaringType; // TextWriter eiiWriter = new StringWriter(); - // if (eiiType != null && eiiType.Template != null) // { // writer.Write("."); diff --git a/src/Admin/ThingsGateway.NewLife.X/Reflection/Reflect.cs b/src/Admin/ThingsGateway.NewLife.X/Reflection/Reflect.cs index 4ddd72de1..49abc59de 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Reflection/Reflect.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Reflection/Reflect.cs @@ -31,7 +31,6 @@ public static class Reflect return Provider.GetType(typeName, false); } - /// 获取方法 /// 用于具有多个签名的同名方法的场合,不确定是否存在性能问题,不建议普通场合使用 /// 类型 @@ -521,7 +520,6 @@ public static class Reflect /// public static IEnumerable GetAllSubclasses(this Type baseType) => Provider.GetAllSubclasses(baseType); - #endregion #region 辅助方法 diff --git a/src/Admin/ThingsGateway.NewLife.X/Security/PKCS7PaddingTransform.cs b/src/Admin/ThingsGateway.NewLife.X/Security/PKCS7PaddingTransform.cs index 960ea8c23..ccc8960e6 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Security/PKCS7PaddingTransform.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Security/PKCS7PaddingTransform.cs @@ -85,7 +85,6 @@ public sealed class PKCS7PaddingTransform : ICryptoTransform } return count; - } if (_hasWithheldBlock) diff --git a/src/Admin/ThingsGateway.NewLife.X/Serialization/Interface/FixedStringAttribute.cs b/src/Admin/ThingsGateway.NewLife.X/Serialization/Interface/FixedStringAttribute.cs index 833866eb0..ac356b7b1 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Serialization/Interface/FixedStringAttribute.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Serialization/Interface/FixedStringAttribute.cs @@ -45,5 +45,4 @@ public class FixedStringAttribute : AccessorAttribute return false; } - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.NewLife.X/Serialization/Interface/FullStringAttribute.cs b/src/Admin/ThingsGateway.NewLife.X/Serialization/Interface/FullStringAttribute.cs index aa4186ab3..78e70a374 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Serialization/Interface/FullStringAttribute.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Serialization/Interface/FullStringAttribute.cs @@ -46,5 +46,4 @@ public class FullStringAttribute : AccessorAttribute return false; } - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/IJsonHost.cs b/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/IJsonHost.cs index 4892ba241..c701e09af 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/IJsonHost.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/IJsonHost.cs @@ -4,7 +4,6 @@ using ThingsGateway.NewLife.Collections; using ThingsGateway.NewLife.Model; using ThingsGateway.NewLife.Reflection; - #if NET6_0_OR_GREATER using System.Text.Encodings.Web; using System.Text.Json; @@ -299,7 +298,6 @@ public class SystemJson : IJsonHost #endregion - #region 构造 /// 实例化 static SystemJson() @@ -320,7 +318,6 @@ public class SystemJson : IJsonHost public JsonSerializerOptions JsonSerializerOptions { get; } = new JsonSerializerOptions(Options); public SystemJson() { - } #endregion @@ -355,7 +352,6 @@ public class SystemJson : IJsonHost return JsonSerializer.Serialize(value, options); } - /// 写入对象,得到Json字符串 /// /// 序列化选项 diff --git a/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/JsonParser.cs b/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/JsonParser.cs index 55ef0d615..2894eef14 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/JsonParser.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/JsonParser.cs @@ -483,7 +483,6 @@ public class JsonParser if (ch > ' ') break; if (ch != ' ' && ch != '\t' && ch != '\n' && ch != '\r') break; - } while (++index < _json.Length); if (index == _json.Length) diff --git a/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/JsonWriter.cs b/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/JsonWriter.cs index d9d917eca..8e761ec59 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/JsonWriter.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Serialization/Json/JsonWriter.cs @@ -26,18 +26,15 @@ public class JsonWriter /// 使用小写名称 public Boolean LowerCase { get; set; } - /// 忽略只读属性。默认false public Boolean IgnoreReadOnlyProperties { get; set; } /// 忽略注释。默认true public Boolean IgnoreComment { get; set; } = true; - /// 枚举使用字符串。默认false使用数字 public Boolean EnumString { get; set; } - ///// 智能缩进,内层不换行。默认false //public Boolean SmartIndented { get; set; } @@ -127,25 +124,18 @@ public class JsonWriter { if (obj is null or DBNull) _Builder.Append("null"); - else if (obj is String or Char) WriteString(obj + ""); - else if (obj is Type type) WriteString(type.FullName?.TrimStart("System.") + ""); - else if (obj is Guid) WriteStringFast(obj + ""); - else if (obj is Boolean) _Builder.Append((obj + "").ToLower()); - else if ((obj is Int64 vInt64) && Int64AsString && (vInt64 > 9007199254740991 || vInt64 < -9007199254740991)) WriteStringFast(obj + ""); - else if ((obj is UInt64 vUInt64) && Int64AsString && vUInt64 > 9007199254740991) WriteStringFast(obj + ""); - else if ( obj is Int32 or Int64 or Double or Decimal or Single or @@ -154,13 +144,10 @@ public class JsonWriter UInt32 or UInt64 ) _Builder.Append(((IConvertible)obj).ToString(NumberFormatInfo.InvariantInfo)); - else if (obj is TimeSpan) WriteString(obj + ""); - else if (obj is DateTime time) WriteDateTime(time); - else if (obj is DateTimeOffset offset) _Builder.AppendFormat("\"{0:O}\"", offset); #if NET6_0_OR_GREATER @@ -189,7 +176,6 @@ public class JsonWriter WriteStringFast(ByteArrayAsHex ? pk.ToHex(-1) : pk.ToArray().ToBase64()); else if (obj is StringDictionary dictionary2) WriteSD(dictionary2); - else if (obj is NameValueCollection collection) WriteNV(collection); @@ -200,7 +186,6 @@ public class JsonWriter // Linq产生的枚举 else if (obj is IEnumerable arr && obj.GetType().Assembly == typeof(Enumerable).Assembly) WriteArray(arr); - else if (obj is Enum) { if (EnumString) @@ -212,7 +197,6 @@ public class JsonWriter // 支持格式化的类型,有去有回 else if (obj is IFormattable) WriteValue(obj + ""); - else WriteObject(obj); } diff --git a/src/Admin/ThingsGateway.NewLife.X/Setting.cs b/src/Admin/ThingsGateway.NewLife.X/Setting.cs index 5bd03ffa5..e2d5626e1 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Setting.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Setting.cs @@ -69,7 +69,6 @@ public class Setting : Config [Description("辅助解析程序集。程序集加载过程中,被依赖程序集未能解析时,是否协助解析,默认false")] public Boolean AssemblyResolve { get; set; } - #endregion #region 方法 diff --git a/src/Admin/ThingsGateway.NewLife.X/Threading/TimerX.cs b/src/Admin/ThingsGateway.NewLife.X/Threading/TimerX.cs index 1309b6da3..b45dedada 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Threading/TimerX.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Threading/TimerX.cs @@ -76,7 +76,6 @@ public class TimerX : ITimer, ITimerx, IDisposable /// 平均耗时。毫秒 public Int32 Cost { get; internal set; } - /// Cron表达式,实现复杂的定时逻辑 public Cron[]? Crons => _crons; diff --git a/src/Admin/ThingsGateway.NewLife.X/Xml/XmlConfig.cs b/src/Admin/ThingsGateway.NewLife.X/Xml/XmlConfig.cs index 5d85f1598..678717ddc 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Xml/XmlConfig.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Xml/XmlConfig.cs @@ -102,7 +102,6 @@ public class XmlConfig : DisposeBase where TConfig : XmlConfig /// 配置文件路径 public static String ConfigFile { get; set; } - public static String DataPath { get; set; } = "Configuration"; /// 重新加载时间。单位:毫秒 public static Int32 ReloadTime { get; set; } diff --git a/src/Admin/ThingsGateway.NewLife.X/Yun/OssClient.cs b/src/Admin/ThingsGateway.NewLife.X/Yun/OssClient.cs index a8a28cc52..c148c917a 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Yun/OssClient.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Yun/OssClient.cs @@ -150,7 +150,6 @@ public class OssClient : IObjectStorage var infos = new List(); foreach (var item in list.Cast>()) { - } return infos; @@ -190,7 +189,6 @@ public class OssClient : IObjectStorage var infos = new List(); foreach (var item in list.Cast>()) { - } return infos; diff --git a/src/Admin/ThingsGateway.Photino.Blazor/Photino/PhotinoWindowRootComponents.cs b/src/Admin/ThingsGateway.Photino.Blazor/Photino/PhotinoWindowRootComponents.cs index 5f0808aa1..29b881bfd 100644 --- a/src/Admin/ThingsGateway.Photino.Blazor/Photino/PhotinoWindowRootComponents.cs +++ b/src/Admin/ThingsGateway.Photino.Blazor/Photino/PhotinoWindowRootComponents.cs @@ -35,10 +35,7 @@ namespace Photino.Blazor : ParameterView.FromDictionary(parameters); // Dispatch because this is going to be async, and we want to catch any errors - _ = _manager.Dispatcher.InvokeAsync(async () => - { - await _manager.AddRootComponentAsync(typeComponent, selector, parameterView); - }); + _ = _manager.Dispatcher.InvokeAsync(async () => await _manager.AddRootComponentAsync(typeComponent, selector, parameterView)); } } } diff --git a/src/Admin/ThingsGateway.Razor/Components/DefaultTable.razor.cs b/src/Admin/ThingsGateway.Razor/Components/DefaultTable.razor.cs index 779a6f7a2..8c020ebd6 100644 --- a/src/Admin/ThingsGateway.Razor/Components/DefaultTable.razor.cs +++ b/src/Admin/ThingsGateway.Razor/Components/DefaultTable.razor.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - namespace ThingsGateway.Razor; [CascadingTypeParameter(nameof(TItem))] @@ -85,7 +84,6 @@ public partial class DefaultTable where TItem : class, new() public RenderFragment> ExportButtonDropdownTemplate { get; set; } /// - /// [Parameter] public int ExtendButtonColumnWidth { get; set; } = 130; @@ -232,7 +230,6 @@ public partial class DefaultTable where TItem : class, new() [Parameter] public bool ShowEditButton { get; set; } = true; - /// [Parameter] public bool ShowEmpty { get; set; } = true; @@ -340,7 +337,6 @@ public partial class DefaultTable where TItem : class, new() [Parameter] public Size EditDialogSize { get; set; } = Size.ExtraExtraLarge; - [NotNull] private Table? Instance { get; set; } @@ -361,6 +357,4 @@ public partial class DefaultTable where TItem : class, new() /// public ValueTask ToggleLoading(bool v) => Instance.ToggleLoading(v); - - } diff --git a/src/Admin/ThingsGateway.Razor/Components/FAIconList.razor.cs b/src/Admin/ThingsGateway.Razor/Components/FAIconList.razor.cs index 0767adbf0..b83f6c0f1 100644 --- a/src/Admin/ThingsGateway.Razor/Components/FAIconList.razor.cs +++ b/src/Admin/ThingsGateway.Razor/Components/FAIconList.razor.cs @@ -108,8 +108,5 @@ public partial class FAIconList : IAsyncDisposable /// /// [JSInvokable] - public Task ShowDialog(string text) => DialogService.ShowCloseDialog(DialogHeaderText, parameters => - { - parameters.Add(nameof(IconDialog.IconName), text); - }); + public Task ShowDialog(string text) => DialogService.ShowCloseDialog(DialogHeaderText, parameters => parameters.Add(nameof(IconDialog.IconName), text)); } diff --git a/src/Admin/ThingsGateway.Razor/Components/ImportExcel.razor.cs b/src/Admin/ThingsGateway.Razor/Components/ImportExcel.razor.cs index 658290ec8..0d8a8f6ce 100644 --- a/src/Admin/ThingsGateway.Razor/Components/ImportExcel.razor.cs +++ b/src/Admin/ThingsGateway.Razor/Components/ImportExcel.razor.cs @@ -70,7 +70,6 @@ public partial class ImportExcel await Import.Invoke(_importPreviews); _importFile = null; - await InvokeAsync(async () => { if (OnCloseAsync != null) @@ -81,10 +80,7 @@ public partial class ImportExcel } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } } } diff --git a/src/Admin/ThingsGateway.Razor/Extensions/ToastServiceExtensions.cs b/src/Admin/ThingsGateway.Razor/Extensions/ToastServiceExtensions.cs index 18805c480..8bab2720b 100644 --- a/src/Admin/ThingsGateway.Razor/Extensions/ToastServiceExtensions.cs +++ b/src/Admin/ThingsGateway.Razor/Extensions/ToastServiceExtensions.cs @@ -36,7 +36,5 @@ public static class ToastServiceExtensions return toastService.Warning("Warn", ex.ToString()); else return toastService.Warning("Warn", ex.Message); - - } } diff --git a/src/Admin/ThingsGateway.Razor/GlobalUsings.cs b/src/Admin/ThingsGateway.Razor/GlobalUsings.cs index 6b5b89db7..005208a70 100644 --- a/src/Admin/ThingsGateway.Razor/GlobalUsings.cs +++ b/src/Admin/ThingsGateway.Razor/GlobalUsings.cs @@ -20,7 +20,5 @@ global using System.Globalization; global using ThingsGateway.Common; global using ThingsGateway.NewLife.Extension; - - [assembly: SuppressMessage("Reliability", "CA2007", Justification = "<挂起>", Scope = "module")] [assembly: GlobalGenerateSetParametersAsync(true)] \ No newline at end of file diff --git a/src/Admin/ThingsGateway.Razor/Startup.cs b/src/Admin/ThingsGateway.Razor/Startup.cs index 372539379..cba2a4014 100644 --- a/src/Admin/ThingsGateway.Razor/Startup.cs +++ b/src/Admin/ThingsGateway.Razor/Startup.cs @@ -35,7 +35,6 @@ public class Startup : AppStartup services.ConfigureIconThemeOptions(options => options.ThemeKey = "fa"); services.AddSingleton(); services.AddScoped(); - } /// diff --git a/src/Admin/ThingsGateway.SqlSugar/QuestDb/QuestDbPageSizeBulkCopy.cs b/src/Admin/ThingsGateway.SqlSugar/QuestDb/QuestDbPageSizeBulkCopy.cs index 7204518fe..b0fde9902 100644 --- a/src/Admin/ThingsGateway.SqlSugar/QuestDb/QuestDbPageSizeBulkCopy.cs +++ b/src/Admin/ThingsGateway.SqlSugar/QuestDb/QuestDbPageSizeBulkCopy.cs @@ -29,7 +29,7 @@ /// 要插入的数据列表 /// 日期格式字符串 /// 插入的记录数 - public int BulkCopy(List insertDatas, string dateFormat = "yyyy/M/d H:mm:ss") where T : class, new() + public int BulkCopy(IEnumerable insertDatas, string dateFormat = "yyyy/M/d H:mm:ss") where T : class, new() { int result = 0; // 使用分页方式处理大数据量插入 @@ -48,7 +48,7 @@ /// 要插入的数据列表 /// 日期格式字符串 /// 插入的记录数 - public async Task BulkCopyAsync(List insertDatas, string dateFormat = "yyyy/M/d H:mm:ss") where T : class, new() + public async Task BulkCopyAsync(IEnumerable insertDatas, string dateFormat = "yyyy/M/d H:mm:ss") where T : class, new() { int result = 0; // 异步分页处理大数据量插入 diff --git a/src/Admin/ThingsGateway.SqlSugar/QuestDb/QuestDbRestAPHelper.cs b/src/Admin/ThingsGateway.SqlSugar/QuestDb/QuestDbRestAPHelper.cs index 94d22a979..d8286f022 100644 --- a/src/Admin/ThingsGateway.SqlSugar/QuestDb/QuestDbRestAPHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/QuestDb/QuestDbRestAPHelper.cs @@ -4,7 +4,6 @@ namespace ThingsGateway.SqlSugar { internal static class QuestDbRestAPHelper { - /// /// 绑定RestAPI需要的信息 /// diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/AdoProvider/AdoProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/AdoProvider/AdoProvider.cs index 9cf062769..c22389183 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/AdoProvider/AdoProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/AdoProvider/AdoProvider.cs @@ -1084,17 +1084,11 @@ namespace ThingsGateway.SqlSugar // 由于DataSet不支持真正的异步操作,这里使用Task.Run模拟异步 if (CancellationToken == null) { - return Task.Run(() => - { - return GetDataSetAll(sql, parameters); - }); + return Task.Run(() => GetDataSetAll(sql, parameters)); } else { - return Task.Run(() => - { - return GetDataSetAll(sql, parameters); - }, this.CancellationToken.Value); + return Task.Run(() => GetDataSetAll(sql, parameters), this.CancellationToken.Value); } } #endregion @@ -1133,7 +1127,6 @@ namespace ThingsGateway.SqlSugar return Convert.ToString(await GetScalarAsync(sql, parameters).ConfigureAwait(false)); } - /// /// 获取长整型结果(使用对象参数) /// @@ -1158,7 +1151,6 @@ namespace ThingsGateway.SqlSugar return GetInt(sql, this.GetParameters(parameters)); } - /// /// 获取整型结果(使用参数数组) /// @@ -1175,8 +1167,6 @@ namespace ThingsGateway.SqlSugar return GetIntAsync(sql, this.GetParameters(parameters)); } - - /// /// 异步获取整型结果(使用参数数组) /// @@ -1202,8 +1192,6 @@ namespace ThingsGateway.SqlSugar return GetScalar(sql, parameters).ObjToMoney(); } - - /// /// 异步获取双精度浮点数结果(使用对象参数) /// @@ -1221,7 +1209,6 @@ namespace ThingsGateway.SqlSugar return result.ObjToMoney(); } - /// /// 获取十进制数结果(使用对象参数) /// @@ -1238,8 +1225,6 @@ namespace ThingsGateway.SqlSugar return GetScalar(sql, parameters).ObjToDecimal(); } - - /// /// 异步获取十进制数结果(使用对象参数) /// @@ -1257,7 +1242,6 @@ namespace ThingsGateway.SqlSugar return result.ObjToDecimal(); } - /// /// 获取日期时间结果(使用对象参数) /// @@ -1274,8 +1258,6 @@ namespace ThingsGateway.SqlSugar return GetScalar(sql, parameters).ObjToDate(); } - - /// /// 异步获取日期时间结果(使用对象参数) /// @@ -1293,8 +1275,6 @@ namespace ThingsGateway.SqlSugar return list.ObjToDate(); } - - #endregion #region Query Methods @@ -1341,8 +1321,6 @@ namespace ThingsGateway.SqlSugar return result; } - - /// /// 执行SQL查询并返回两个结果集 /// @@ -1496,8 +1474,6 @@ namespace ThingsGateway.SqlSugar return result.Item1; } - - /// /// 异步执行SQL查询并返回两个结果集 /// @@ -1639,8 +1615,6 @@ namespace ThingsGateway.SqlSugar return result == null ? default(T) : result.FirstOrDefault(); } - - /// /// 异步执行SQL查询并返回单个对象(使用对象参数) /// @@ -1659,8 +1633,6 @@ namespace ThingsGateway.SqlSugar return result == null ? default(T) : result.FirstOrDefault(); } - - #endregion #region DataTable Methods @@ -1683,8 +1655,6 @@ namespace ThingsGateway.SqlSugar return GetDataTable(sql, this.GetParameters(parameters)); } - - /// /// 异步获取DataTable(使用参数数组) /// @@ -1703,8 +1673,6 @@ namespace ThingsGateway.SqlSugar return GetDataTableAsync(sql, this.GetParameters(parameters)); } - - #endregion #region DataSet Methods @@ -1717,7 +1685,6 @@ namespace ThingsGateway.SqlSugar return GetDataSetAll(sql, this.GetParameters(parameters)); } - /// /// 异步获取DataSet(使用对象参数) /// @@ -1726,7 +1693,6 @@ namespace ThingsGateway.SqlSugar return GetDataSetAllAsync(sql, this.GetParameters(parameters)); } - #endregion #region DataReader Methods @@ -1739,8 +1705,6 @@ namespace ThingsGateway.SqlSugar return GetDataReader(sql, this.GetParameters(parameters)); } - - /// /// 异步获取DataReader(使用对象参数) /// @@ -1749,7 +1713,6 @@ namespace ThingsGateway.SqlSugar return GetDataReaderAsync(sql, this.GetParameters(parameters)); } - #endregion #region Scalar Methods @@ -1762,7 +1725,6 @@ namespace ThingsGateway.SqlSugar return GetScalar(sql, this.GetParameters(parameters)); } - /// /// 异步获取标量值(使用对象参数) /// @@ -1771,7 +1733,6 @@ namespace ThingsGateway.SqlSugar return GetScalarAsync(sql, this.GetParameters(parameters)); } - #endregion #region Execute Command Methods @@ -1784,8 +1745,6 @@ namespace ThingsGateway.SqlSugar return ExecuteCommand(sql, GetParameters(parameters)); } - - /// /// 异步执行命令(带取消令牌) /// @@ -1803,7 +1762,6 @@ namespace ThingsGateway.SqlSugar return ExecuteCommandAsync(sql, GetParameters(parameters)); } - #endregion #region Helper Methods @@ -1934,7 +1892,7 @@ namespace ThingsGateway.SqlSugar var gobalOutputParamter = this.OutputParameters.FirstOrDefault(it => it.ParameterName == outputParameter.ParameterName); if (gobalOutputParamter == null) {//Oracle bug - gobalOutputParamter = this.OutputParameters.FirstOrDefault(it => it.ParameterName == outputParameter.ParameterName.TrimStart(outputParameter.ParameterName.First())); + gobalOutputParamter = this.OutputParameters.FirstOrDefault(it => it.ParameterName == outputParameter.ParameterName.TrimStart(outputParameter.ParameterName[0])); } outputParameter.Value = gobalOutputParamter.Value; this.OutputParameters.Remove(gobalOutputParamter); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs index 90611525f..1cead54cb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs @@ -133,10 +133,7 @@ namespace ThingsGateway.SqlSugar if (this.Context.Ado.Transaction == null) { - var executeResult = Context.Ado.UseTran(() => - { - Execute(entityType, entityInfo); - }); + var executeResult = Context.Ado.UseTran(() => Execute(entityType, entityInfo)); Check.Exception(!executeResult.IsSuccess, executeResult.ErrorMessage); } else @@ -146,7 +143,6 @@ namespace ThingsGateway.SqlSugar RestMappingTables(oldTableList); } - } /// @@ -215,7 +211,6 @@ namespace ThingsGateway.SqlSugar } catch (Exception ex) { - throw new Exception(item.Name + " 创建失败,请认真检查 1、属性需要get set 2、特殊类型需要加Ignore 具体错误内容: " + ex.Message); } } @@ -316,7 +311,6 @@ namespace ThingsGateway.SqlSugar db.MappingTables.Add(type.Name, tempTableName); try { - var codeFirst = db.CodeFirst; codeFirst.SetStringDefaultLength(this.DefaultLength); codeFirst.InitTables(type); @@ -567,10 +561,8 @@ namespace ThingsGateway.SqlSugar .Where(entityColumn => dbColumns.Any(dbColumn => entityColumn.OldDbColumnName.Equals(dbColumn.DbColumnName, StringComparison.CurrentCultureIgnoreCase))) .ToList(); - var isMultiplePrimaryKey = dbColumns.Where(it => it.IsPrimarykey).Count() > 1 || entityColumns.Where(it => it.IsPrimarykey).Count() > 1; - var isChange = false; foreach (var item in addColumns) { @@ -587,7 +579,6 @@ namespace ThingsGateway.SqlSugar } foreach (var item in alterColumns) { - if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle) { var entityColumnItem = entityColumns.FirstOrDefault(y => y.DbColumnName == item.DbColumnName); @@ -655,7 +646,6 @@ namespace ThingsGateway.SqlSugar { Check.Exception(true, ErrorMessage.GetThrowMessage("Modification of multiple primary key tables is not supported. Delete tables while creating", "不支持修改多主键表,请删除表在创建")); } - } if (isChange && IsBackupTable) { @@ -716,7 +706,6 @@ namespace ThingsGateway.SqlSugar /// 数据库列集合 protected virtual void ExistLogicEnd(List dbColumns) { - } /// /// 转换列 @@ -724,7 +713,6 @@ namespace ThingsGateway.SqlSugar /// 数据库列集合 protected virtual void ConvertColumns(List dbColumns) { - } #endregion @@ -954,7 +942,6 @@ namespace ThingsGateway.SqlSugar default: return name; } - } #endregion diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/SplitCodeFirstProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/SplitCodeFirstProvider.cs index 3854ebcdd..0ebffb8ad 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/SplitCodeFirstProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/SplitCodeFirstProvider.cs @@ -44,7 +44,6 @@ namespace ThingsGateway.SqlSugar { this.Context.CodeFirst.SetStringDefaultLength(this.DefaultLength).InitTables(type); } - } /// /// 内部初始化表方法 diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs index ded4fa25f..ccdd070f5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs @@ -220,7 +220,6 @@ namespace ThingsGateway.SqlSugar /// private IDataReaderEntityBuilder() { - } /// @@ -362,7 +361,6 @@ namespace ThingsGateway.SqlSugar /// 字段名 private void BindClass(ILGenerator generator, LocalBuilder result, EntityColumnInfo columnInfo, string fieldName) { - if (columnInfo.SqlParameterDbType is Type) { BindCustomFunc(generator, result, columnInfo, fieldName); @@ -683,7 +681,6 @@ namespace ThingsGateway.SqlSugar if (method == null) method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); - if (method.IsVirtual) generator.Emit(OpCodes.Callvirt, method); else @@ -691,7 +688,6 @@ namespace ThingsGateway.SqlSugar #endregion } - /// /// 检查类型 /// diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbMaintenanceProvider/Methods.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbMaintenanceProvider/Methods.cs index f84ea3e9f..fcbf40470 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbMaintenanceProvider/Methods.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbMaintenanceProvider/Methods.cs @@ -118,7 +118,6 @@ namespace ThingsGateway.SqlSugar return GetListOrCache(cacheKey, sql).GroupBy(it => it.DbColumnName).Select(it => it.First()).ToList(); else return this.Context.Ado.SqlQuery(sql).GroupBy(it => it.DbColumnName).Select(it => it.First()).ToList(); - } /// /// 获取自增列列表 @@ -961,7 +960,6 @@ namespace ThingsGateway.SqlSugar } } - var uIndexColumns = columns.Where(it => it.UIndexGroupNameList.HasValue()); if (uIndexColumns.HasValue()) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/DeleteablePage.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/DeleteablePage.cs index 2d9f8a4e2..28aaada56 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/DeleteablePage.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/DeleteablePage.cs @@ -54,10 +54,7 @@ { this.Context.Ado.BeginTran(); } - this.Context.Utilities.PageEach(DataList, PageSize, pageItem => - { - result += this.Context.Deleteable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).ExecuteCommand(); - }); + this.Context.Utilities.PageEach(DataList, PageSize, pageItem => result += this.Context.Deleteable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).ExecuteCommand()); if (isNoTran) { this.Context.Ado.CommitTran(); @@ -93,10 +90,7 @@ { await Context.Ado.BeginTranAsync().ConfigureAwait(false); } - await Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => - { - result += await Context.Deleteable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).ExecuteCommandAsync().ConfigureAwait(false); - }).ConfigureAwait(false); + await Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => result += await Context.Deleteable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).ExecuteCommandAsync().ConfigureAwait(false)).ConfigureAwait(false); if (isNoTran) { await Context.Ado.CommitTranAsync().ConfigureAwait(false); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/DeleteableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/DeleteableProvider.cs index d4b1284f6..3d3eec75e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/DeleteableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/DeleteableProvider.cs @@ -361,7 +361,7 @@ namespace ThingsGateway.SqlSugar var tableName = this.SqlBuilder.GetTranslationColumnName(entityTableName); whereString = whereString.Replace(tableName, $"( SELECT * FROM {tableName}) "); } - whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName) + "."); + whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters[0].Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName) + "."); } else if (expResult.IsNavicate) { @@ -370,9 +370,8 @@ namespace ThingsGateway.SqlSugar { entityTableName2 = this.DeleteBuilder.AsName; } - whereString = whereString.Replace(expression.Parameters.First().Name + ".", this.SqlBuilder.GetTranslationTableName(entityTableName2) + "."); - whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName2) + "."); - + whereString = whereString.Replace(expression.Parameters[0].Name + ".", this.SqlBuilder.GetTranslationTableName(entityTableName2) + "."); + whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters[0].Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName2) + "."); } DeleteBuilder.WhereInfos.Add(whereString); return this; @@ -640,8 +639,6 @@ namespace ThingsGateway.SqlSugar return this; } - - /// /// IN条件 /// diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/SplitTableDeleteByObjectProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/SplitTableDeleteByObjectProvider.cs index c8e7d4ea5..f3830dd9c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/SplitTableDeleteByObjectProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DeleteProvider/SplitTableDeleteByObjectProvider.cs @@ -61,7 +61,7 @@ namespace ThingsGateway.SqlSugar /// 数据数组 /// 分组模型列表 /// 结果值 - private void GroupDataList(IReadOnlyList datas, out List groupModels, out int result) + private void GroupDataList(IEnumerable datas, out List groupModels, out int result) { var attribute = typeof(T).GetCustomAttribute() as SplitTableAttribute; Check.Exception(attribute == null, $"{typeof(T).Name} need SplitTableAttribute"); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/EntityMaintenance/EntityMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/EntityMaintenance/EntityMaintenance.cs index 087015eb5..531fac02d 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/EntityMaintenance/EntityMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/EntityMaintenance/EntityMaintenance.cs @@ -66,10 +66,7 @@ namespace ThingsGateway.SqlSugar { string cacheKey = "GetEntityInfo" + type.GetHashCode() + type.FullName + this.Context?.CurrentConnectionConfig?.ConfigId; return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, - () => - { - return GetEntityInfoNoCache(type); - }); + () => GetEntityInfoNoCache(type)); } /// diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/DeleteNavTask.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/DeleteNavTask.cs index f58362d93..4e575b9c2 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/DeleteNavTask.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/DeleteNavTask.cs @@ -266,10 +266,7 @@ namespace ThingsGateway.SqlSugar } else { - this.Context.Ado.UseTran(() => - { - ExecTasks(); - }, ex => throw ex); + this.Context.Ado.UseTran(() => ExecTasks(), ex => throw ex); } return true; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavProviderHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavProviderHelper.cs index 048f23a40..f07d5ee8a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavProviderHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavProviderHelper.cs @@ -76,7 +76,7 @@ /// /// 实体类型 /// 要插入的数据列表 - private void InsertIdentity(List datas) where Type : class, new() + private void InsertIdentity(IEnumerable datas) where Type : class, new() { foreach (var item in datas) { @@ -176,7 +176,7 @@ /// 子实体类型 /// 要更新的数据列表 /// 主键列信息 - private void ClearPk(List updateData, EntityColumnInfo pkColumn) where TChild : class, new() + private void ClearPk(IEnumerable updateData, EntityColumnInfo pkColumn) where TChild : class, new() { foreach (var child in updateData) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavProviderOneToOne.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavProviderOneToOne.cs index eb6f28c31..45e29a780 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavProviderOneToOne.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavProviderOneToOne.cs @@ -89,6 +89,5 @@ // 设置新的父实体信息 SetNewParent(thisEntity, thisPkColumn); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavTask.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavTask.cs index c30d64a56..0ca0a6ef9 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavTask.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/InsertNavTask.cs @@ -333,10 +333,7 @@ namespace ThingsGateway.SqlSugar else { Root result = null; - this.Context.Ado.UseTran(() => - { - result = (Root)PreFunc()?._RootList?.FirstOrDefault(); - }, ex => throw ex); + this.Context.Ado.UseTran(() => result = (Root)PreFunc()?._RootList?.FirstOrDefault(), ex => throw ex); return result; } } @@ -369,10 +366,7 @@ namespace ThingsGateway.SqlSugar } else { - this.Context.Ado.UseTran(() => - { - PreFunc(); - }, ex => throw ex); + this.Context.Ado.UseTran(() => PreFunc(), ex => throw ex); } return true; } @@ -411,5 +405,4 @@ namespace ThingsGateway.SqlSugar return result; } } - } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavOneToOne.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavOneToOne.cs index 0878fad5c..8bddc6505 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavOneToOne.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavOneToOne.cs @@ -45,7 +45,6 @@ } navPropertyValue = pkValue; } - } if (!IsDefaultValue(navPropertyValue) && isManyPk == false && parentPkColumn.IsIdentity == false) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavProvider.cs index f55128d67..3c79618a7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavProvider.cs @@ -276,7 +276,7 @@ namespace ThingsGateway.SqlSugar { if (_Roots.Count == 1 && _RootOptions?.IsOptLock == true) { - this._Context.UpdateableT(_Roots.First()) + this._Context.UpdateableT(_Roots[0]) .EnableDiffLogEventIF(_RootOptions.IsDiffLogEvent, _RootOptions.DiffLogBizData) .UpdateColumns(_RootOptions.UpdateColumns) .IgnoreColumns(_RootOptions.IgnoreColumns) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavProviderHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavProviderHelper.cs index 3c700d96d..6bbd497f1 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavProviderHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavProviderHelper.cs @@ -55,7 +55,7 @@ namespace ThingsGateway.SqlSugar /// /// 实体类型 /// 实体列表 - private void InsertIdentity(List datas) where Type : class, new() + private void InsertIdentity(IEnumerable datas) where Type : class, new() { foreach (var item in datas) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavTask.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavTask.cs index 04c75fb56..14da57604 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavTask.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExecuteNavProvider/UpdateNavTask.cs @@ -320,10 +320,7 @@ namespace ThingsGateway.SqlSugar } else { - this.Context.Ado.UseTran(() => - { - PreFunc(); - }, ex => throw ex); + this.Context.Ado.UseTran(() => PreFunc(), ex => throw ex); } return true; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExpressionableProvider/Expressionable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExpressionableProvider/Expressionable.cs index bf898a264..d3615c8b0 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExpressionableProvider/Expressionable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/ExpressionableProvider/Expressionable.cs @@ -38,7 +38,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -82,7 +81,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -126,7 +124,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -170,7 +167,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -214,7 +210,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -259,7 +254,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -303,7 +297,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -347,7 +340,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -391,7 +383,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -435,7 +426,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -479,7 +469,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) @@ -523,7 +512,6 @@ namespace ThingsGateway.SqlSugar return this; } - public Expression> ToExpression() { if (_exp == null) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/FastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/FastBuilder.cs index 7a5dcb60e..6407a6417 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/FastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/FastBuilder.cs @@ -95,7 +95,7 @@ namespace ThingsGateway.SqlSugar /// 更新列 /// 数据列表 /// 影响行数 - public async virtual Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, List datas) where T : class, new() + public async virtual Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, IEnumerable datas) where T : class, new() { var result = 0; var pageSize = 2000; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/FastestProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/FastestProvider.cs index c9929b6da..497f5721a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/FastestProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/FastestProvider.cs @@ -44,10 +44,7 @@ namespace ThingsGateway.SqlSugar if (Size > 0) { int resul = 0; - await context.Utilities.PageEachAsync(dt.Rows.Cast(), Size, async item => - { - resul += await _BulkCopy(tableName, item.CopyToDataTable()).ConfigureAwait(false); - }).ConfigureAwait(false); + await context.Utilities.PageEachAsync(dt.Rows.Cast(), Size, async item => resul += await _BulkCopy(tableName, item.CopyToDataTable()).ConfigureAwait(false)).ConfigureAwait(false); return resul; } else @@ -56,12 +53,12 @@ namespace ThingsGateway.SqlSugar } } /// 批量插入实体列表 - public int BulkCopy(List datas) + public int BulkCopy(IEnumerable datas) { return BulkCopyAsync(datas).ConfigureAwait(true).GetAwaiter().GetResult(); } /// 异步批量插入实体列表 - public async Task BulkCopyAsync(List datas) + public async Task BulkCopyAsync(IEnumerable datas) { if (Size > 0) { @@ -70,34 +67,31 @@ namespace ThingsGateway.SqlSugar Size = int.MaxValue / 2; } int resul = 0; - await context.Utilities.PageEachAsync(datas, Size, async item => - { - resul += await _BulkCopy(item).ConfigureAwait(false); - }).ConfigureAwait(false); + await context.Utilities.PageEachAsync(datas, Size, async item => resul += await _BulkCopy(item).ConfigureAwait(false)).ConfigureAwait(false); return resul; } else { - return await _BulkCopy(datas).ConfigureAwait(false); + return await _BulkCopy(datas is IReadOnlyList values ? values : datas.ToList()).ConfigureAwait(false); } } #endregion #region BulkUpdate /// 批量更新实体列表 - public int BulkUpdate(List datas) + public int BulkUpdate(IEnumerable datas) { return BulkUpdateAsync(datas).ConfigureAwait(true).GetAwaiter().GetResult(); } /// 异步批量更新实体列表 - public async Task BulkUpdateAsync(List datas) + public async Task BulkUpdateAsync(IEnumerable datas) { var whereColumns = entityInfo.Columns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName ?? it.PropertyName).ToArray(); var updateColumns = entityInfo.Columns.Where(it => !it.IsPrimarykey && !it.IsIdentity && !it.IsOnlyIgnoreUpdate && !it.IsIgnore).Select(it => it.DbColumnName ?? it.PropertyName).ToArray(); return await BulkUpdateAsync(datas, whereColumns, updateColumns).ConfigureAwait(false); } /// 批量更新实体列表 - public int BulkUpdate(List datas, string[] whereColumns, string[] updateColumns) + public int BulkUpdate(IEnumerable datas, string[] whereColumns, string[] updateColumns) { whereColumns = whereColumns.Select(x => this.entityInfo.Columns.FirstOrDefault(it => it.PropertyName.EqualCase(x) || it.DbColumnName.EqualCase(x))?.DbColumnName ?? x).ToArray(); updateColumns = updateColumns.Select(x => this.entityInfo.Columns.FirstOrDefault(it => it.PropertyName.EqualCase(x) || it.DbColumnName.EqualCase(x))?.DbColumnName ?? x).ToArray(); @@ -105,13 +99,13 @@ namespace ThingsGateway.SqlSugar } /// 批量更新实体列表 - public int BulkUpdate(List datas, string[] whereColumns) + public int BulkUpdate(IEnumerable datas, string[] whereColumns) { return BulkUpdateAsync(datas, whereColumns).GetAwaiter().GetResult(); } /// 异步批量更新实体列表 - public async Task BulkUpdateAsync(List datas, string[] whereColumns) + public async Task BulkUpdateAsync(IEnumerable datas, string[] whereColumns) { whereColumns = whereColumns.Select(x => this.entityInfo.Columns.FirstOrDefault(it => it.PropertyName.EqualCase(x) || it.DbColumnName.EqualCase(x))?.DbColumnName ?? x).ToArray(); var updateColumns = this.entityInfo.Columns @@ -125,21 +119,17 @@ namespace ThingsGateway.SqlSugar return await BulkUpdateAsync(datas, whereColumns, updateColumns).ConfigureAwait(true); } /// 异步批量更新实体列表 - public async Task BulkUpdateAsync(List datas, string[] whereColumns, string[] updateColumns) + public async Task BulkUpdateAsync(IEnumerable datas, string[] whereColumns, string[] updateColumns) { - if (Size > 0) { int resul = 0; - await context.Utilities.PageEachAsync(datas, Size, async item => - { - resul += await _BulkUpdate(item, whereColumns, updateColumns).ConfigureAwait(false); - }).ConfigureAwait(false); + await context.Utilities.PageEachAsync(datas, Size, async item => resul += await _BulkUpdate(item, whereColumns, updateColumns).ConfigureAwait(false)).ConfigureAwait(false); return resul; } else { - return await _BulkUpdate(datas, whereColumns, updateColumns).ConfigureAwait(false); + return await _BulkUpdate(datas is IReadOnlyList values ? values : datas.ToList(), whereColumns, updateColumns).ConfigureAwait(false); } } @@ -173,14 +163,10 @@ namespace ThingsGateway.SqlSugar /// 异步批量更新DataTable数据 public async Task BulkUpdateAsync(string tableName, DataTable dataTable, string[] whereColumns, string[] updateColumns) { - if (Size > 0) { int resul = 0; - await context.Utilities.PageEachAsync(dataTable.Rows.Cast(), Size, async item => - { - resul += await _BulkUpdate(tableName, item.CopyToDataTable(), whereColumns, updateColumns).ConfigureAwait(false); - }).ConfigureAwait(false); + await context.Utilities.PageEachAsync(dataTable.Rows.Cast(), Size, async item => resul += await _BulkUpdate(tableName, item.CopyToDataTable(), whereColumns, updateColumns).ConfigureAwait(false)).ConfigureAwait(false); return resul; } else @@ -192,14 +178,14 @@ namespace ThingsGateway.SqlSugar #region BulkMerge /// 异步批量合并实体列表 - public Task BulkMergeAsync(List datas) + public Task BulkMergeAsync(IEnumerable datas) { var updateColumns = entityInfo.Columns.Where(it => !it.IsPrimarykey && !it.IsIdentity && !it.IsOnlyIgnoreUpdate && !it.IsIgnore).Select(it => it.DbColumnName ?? it.PropertyName).ToArray(); var whereColumns = entityInfo.Columns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName ?? it.PropertyName).ToArray(); return BulkMergeAsync(datas, whereColumns, updateColumns); } /// 批量合并实体列表 - public int BulkMerge(List datas) + public int BulkMerge(IEnumerable datas) { return BulkMergeAsync(datas).GetAwaiter().GetResult(); } @@ -236,41 +222,38 @@ namespace ThingsGateway.SqlSugar return result; } /// 异步批量合并实体列表 - public Task BulkMergeAsync(List datas, string[] whereColumns) + public Task BulkMergeAsync(IEnumerable datas, string[] whereColumns) { var updateColumns = entityInfo.Columns.Where(it => !it.IsPrimarykey && !it.IsIdentity && !it.IsOnlyIgnoreUpdate && !it.IsIgnore).Select(it => it.DbColumnName ?? it.PropertyName).ToArray(); return BulkMergeAsync(datas, whereColumns, updateColumns); } /// 批量合并实体列表 - public int BulkMerge(List datas, string[] whereColumns) + public int BulkMerge(IEnumerable datas, string[] whereColumns) { return BulkMergeAsync(datas, whereColumns).GetAwaiter().GetResult(); } /// 异步批量合并实体列表 - public async Task BulkMergeAsync(List datas, string[] whereColumns, string[] updateColumns) + public async Task BulkMergeAsync(IEnumerable datas, string[] whereColumns, string[] updateColumns) { if (Size > 0) { int resul = 0; - await context.Utilities.PageEachAsync(datas, Size, async item => - { - resul += await _BulkMerge(item, updateColumns, whereColumns).ConfigureAwait(false); - }).ConfigureAwait(false); + await context.Utilities.PageEachAsync(datas, Size, async item => resul += await _BulkMerge(item, updateColumns, whereColumns).ConfigureAwait(false)).ConfigureAwait(false); return resul; } else { - return await _BulkMerge(datas, updateColumns, whereColumns).ConfigureAwait(false); + return await _BulkMerge(datas is IReadOnlyList values ? values : datas.ToList(), updateColumns, whereColumns).ConfigureAwait(false); } } /// 批量合并实体列表 - public int BulkMerge(List datas, string[] whereColumns, string[] updateColumns) + public int BulkMerge(IEnumerable datas, string[] whereColumns, string[] updateColumns) { return BulkMergeAsync(datas, whereColumns, updateColumns).GetAwaiter().GetResult(); } /// 执行批量合并操作 - private async Task _BulkMerge(List datas, string[] updateColumns, string[] whereColumns) + private async Task _BulkMerge(IReadOnlyList datas, string[] updateColumns, string[] whereColumns) { try { @@ -333,7 +316,6 @@ namespace ThingsGateway.SqlSugar IsPrimaryKey = isPrimaryKey, IsIdentity = isIdentity && isPrimaryKey, IsNullable = true, - }); } var dicList = this.context.Utilities.DataTableToDictionaryList(dataTable); @@ -368,7 +350,6 @@ namespace ThingsGateway.SqlSugar IsPrimaryKey = isPrimaryKey, IsIdentity = isIdentity && isPrimaryKey, IsNullable = true, - }); } var dicList = this.context.Utilities.DataTableToDictionaryList(dataTable); @@ -383,7 +364,7 @@ namespace ThingsGateway.SqlSugar } /// 执行批量更新操作 - private async Task _BulkUpdate(List datas, string[] whereColumns, string[] updateColumns) + private async Task _BulkUpdate(IReadOnlyList datas, string[] whereColumns, string[] updateColumns) { var isAuto = this.context.CurrentConnectionConfig.IsAutoCloseConnection; var isAutoOk = false; @@ -451,7 +432,6 @@ namespace ThingsGateway.SqlSugar { item[col.ColumnName] = " "; } - } else if (col.DataType == UtilConstants.DateType) { @@ -470,7 +450,7 @@ namespace ThingsGateway.SqlSugar /// 执行批量更新操作 private async Task _BulkUpdate(string tableName, DataTable dataTable, string[] whereColumns, string[] updateColumns) { - var datas = new string[dataTable.Rows.Count].ToList(); + var datas = new string[dataTable.Rows.Count]; Begin(datas, false); Check.Exception(whereColumns == null || whereColumns.Length == 0, "where columns count=0 or need primary key"); Check.Exception(updateColumns == null || updateColumns.Length == 0, "set columns count=0"); @@ -506,7 +486,7 @@ namespace ThingsGateway.SqlSugar return result; } /// 执行批量插入操作 - private async Task _BulkCopy(List datas) + private async Task _BulkCopy(IReadOnlyList datas) { Begin(datas, true); DataTable dt = ToDdateTable(datas); @@ -519,7 +499,7 @@ namespace ThingsGateway.SqlSugar /// 执行批量插入操作 private async Task _BulkCopy(string tableName, DataTable dataTable) { - var datas = new string[dataTable.Rows.Count].ToList(); + var datas = new string[dataTable.Rows.Count]; Begin(datas, true); DataTable dt = dataTable; dt.TableName = this.queryable.SqlBuilder.GetTranslationTableName(tableName); @@ -534,7 +514,7 @@ namespace ThingsGateway.SqlSugar #region AOP /// 结束操作 - private void End(List datas, bool isAdd, bool isMerge = false) + private void End(IEnumerable datas, bool isAdd, bool isMerge = false) { var title = isAdd ? "BulkCopy" : "BulkUpdate"; if (isMerge) @@ -544,12 +524,12 @@ namespace ThingsGateway.SqlSugar this.context.Ado.IsEnableLogEvent = isLog; if (this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuted != null) { - this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuted($"End {title} name:{GetTableName()} ,count: {datas.Count},current time: {DateTime.Now}", Array.Empty()); + this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuted($"End {title} name:{GetTableName()} ,current time: {DateTime.Now}", Array.Empty()); } RemoveCache(); } /// 开始操作 - private void Begin(List datas, bool isAdd, bool isMerge = false) + private void Begin(IEnumerable datas, bool isAdd, bool isMerge = false) { var title = isAdd ? "BulkCopy" : "BulkUpdate"; if (isMerge) @@ -560,7 +540,7 @@ namespace ThingsGateway.SqlSugar this.context.Ado.IsEnableLogEvent = false; if (this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuting != null) { - this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuting($"Begin {title} name:{GetTableName()} ,count: {datas.Count},current time: {DateTime.Now} ", Array.Empty()); + this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuting($"Begin {title} name:{GetTableName()} ,current time: {DateTime.Now} ", Array.Empty()); } var dataEvent = this.context.CurrentConnectionConfig.AopEvents?.DataExecuting; if (IsDataAop && dataEvent != null) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/Private.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/Private.cs index aabc44343..6f6864060 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/Private.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/Private.cs @@ -51,7 +51,7 @@ namespace ThingsGateway.SqlSugar } /// 将实体列表转换为DataTable - private DataTable ToDdateTable(List datas) + private DataTable ToDdateTable(IEnumerable datas) { var builder = GetBuider(); DataTable tempDataTable = ReflectionInoCore.GetInstance().GetOrCreate("BulkCopyAsync" + typeof(T).GetHashCode(), @@ -119,7 +119,6 @@ namespace ThingsGateway.SqlSugar } else if (isMySql && column.UnderType == UtilConstants.BoolType) { - if (value.ObjToBool() == false && uInt64TypeName.Any(z => z.EqualCase(column.DbColumnName))) { value = DBNull.Value; @@ -247,7 +246,6 @@ namespace ThingsGateway.SqlSugar DataRow dr = tempDataTable.NewRow(); foreach (DataColumn column in columns) { - dr[column.ColumnName] = item[column.ColumnName]; if (dr[column.ColumnName] == null || dr[column.ColumnName] == DBNull.Value) { @@ -297,7 +295,6 @@ namespace ThingsGateway.SqlSugar DataRow dr = tempDataTable.NewRow(); foreach (DataColumn column in columns) { - dr[column.ColumnName] = item[column.ColumnName]; if (dr[column.ColumnName] == null || dr[column.ColumnName] == DBNull.Value) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/SplitFastest.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/SplitFastest.cs index 0ece61c59..d9f2d42d8 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/SplitFastest.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/FastestProvider/SplitFastest.cs @@ -13,19 +13,14 @@ namespace ThingsGateway.SqlSugar public EntityInfo EntityInfo { get { return this.Context.EntityMaintenance.GetEntityInfo(); } } /// 批量插入数据(分表) - public int BulkCopy(List datas) + public int BulkCopy(IEnumerable datas) { - if (StaticConfig.SplitTableCreateTableFunc != null) - { - StaticConfig.SplitTableCreateTableFunc(typeof(T), datas); - } - List groupModels; - int result; - GroupDataList(datas, out groupModels, out result); + int result = 0; + var groupModels = GroupDataList(datas); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { CreateTable(item.Key); - var addList = item.Select(it => it.Item).ToList(); + var addList = item.Select(it => it.Item); result += FastestProvider.AS(item.Key).BulkCopy(addList); this.Context.MappingTables.Add(EntityInfo.EntityName, EntityInfo.DbTableName); } @@ -33,19 +28,14 @@ namespace ThingsGateway.SqlSugar } /// 异步批量插入数据(分表) - public async Task BulkCopyAsync(List datas) + public async Task BulkCopyAsync(IEnumerable datas) { - if (StaticConfig.SplitTableCreateTableFunc != null) - { - StaticConfig.SplitTableCreateTableFunc(typeof(T), datas); - } - List groupModels; - int result; - GroupDataList(datas, out groupModels, out result); + int result = 0; + var groupModels = GroupDataList(datas); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { CreateTable(item.Key); - var addList = item.Select(it => it.Item).ToList(); + var addList = item.Select(it => it.Item); result += await FastestProvider.AS(item.Key).BulkCopyAsync(addList).ConfigureAwait(false); this.Context.MappingTables.Add(EntityInfo.EntityName, EntityInfo.DbTableName); } @@ -53,15 +43,15 @@ namespace ThingsGateway.SqlSugar } /// 批量更新数据(分表) - public int BulkUpdate(List datas) + public int BulkUpdate(IEnumerable datas) { - List groupModels; - int result; - GroupDataList(datas, out groupModels, out result); + int result = 0; + + var groupModels = GroupDataList(datas); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { CreateTable(item.Key); - var addList = item.Select(it => it.Item).ToList(); + var addList = item.Select(it => it.Item); result += FastestProvider.AS(item.Key).BulkUpdate(addList); this.Context.MappingTables.Add(EntityInfo.EntityName, EntityInfo.DbTableName); } @@ -69,15 +59,15 @@ namespace ThingsGateway.SqlSugar } /// 异步批量更新数据(分表) - public async Task BulkUpdateAsync(List datas) + public async Task BulkUpdateAsync(IEnumerable datas) { - List groupModels; - int result; - GroupDataList(datas, out groupModels, out result); + int result = 0; + + var groupModels = GroupDataList(datas); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { CreateTable(item.Key); - var addList = item.Select(it => it.Item).ToList(); + var addList = item.Select(it => it.Item); result += await FastestProvider.AS(item.Key).BulkUpdateAsync(addList).ConfigureAwait(false); this.Context.MappingTables.Add(EntityInfo.EntityName, EntityInfo.DbTableName); } @@ -85,28 +75,28 @@ namespace ThingsGateway.SqlSugar } /// 批量更新数据(分表,指定条件列和更新列) - public int BulkUpdate(List datas, string[] wherColumns, string[] updateColumns) + public int BulkUpdate(IEnumerable datas, string[] wherColumns, string[] updateColumns) { - List groupModels; - int result; - GroupDataList(datas, out groupModels, out result); + int result = 0; + + var groupModels = GroupDataList(datas); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { - var addList = item.Select(it => it.Item).ToList(); + var addList = item.Select(it => it.Item); result += FastestProvider.AS(item.Key).BulkUpdate(addList, wherColumns, updateColumns); } return result; } /// 异步批量更新数据(分表,指定条件列和更新列) - public async Task BulkUpdateAsync(List datas, string[] wherColumns, string[] updateColumns) + public async Task BulkUpdateAsync(IEnumerable datas, string[] wherColumns, string[] updateColumns) { - List groupModels; - int result; - GroupDataList(datas, out groupModels, out result); + int result = 0; + + var groupModels = GroupDataList(datas); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { - var addList = item.Select(it => it.Item).ToList(); + var addList = item.Select(it => it.Item); result += await FastestProvider.AS(item.Key).BulkUpdateAsync(addList, wherColumns, updateColumns).ConfigureAwait(false); } return result; @@ -126,27 +116,37 @@ namespace ThingsGateway.SqlSugar } /// 分组数据列表 - private void GroupDataList(List datas, out List groupModels, out int result) + private IEnumerable GroupDataList(IEnumerable datas) { var attribute = typeof(T).GetCustomAttribute() as SplitTableAttribute; Check.Exception(attribute == null, $"{typeof(T).Name} need SplitTableAttribute"); - groupModels = new List(); + var db = FastestProvider.context; var hasSplitField = typeof(T).GetProperties().Any(it => it.GetCustomAttribute() != null); - var context = db.SplitHelper(); + + string? firstGroupName = null; + foreach (var item in datas) { - if (groupModels.Count > 0 && !hasSplitField) - groupModels.Add(new GroupModel() { GroupName = groupModels[0].GroupName, Item = item }); + if (!hasSplitField) + { + if (firstGroupName == null) + { + // 第一个 item 时才初始化 group name + var value = context.GetValue(attribute.SplitType, item); + firstGroupName = context.GetTableName(attribute.SplitType, value); + } + + yield return new GroupModel() { GroupName = firstGroupName, Item = item }; + } else { var value = context.GetValue(attribute.SplitType, item); var tableName = context.GetTableName(attribute.SplitType, value); - groupModels.Add(new GroupModel() { GroupName = tableName, Item = item }); + yield return new GroupModel() { GroupName = tableName, Item = item }; } } - result = 0; } /// 分组模型 diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertableHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertableHelper.cs index 1209f3668..7c0c3b29a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertableHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertableHelper.cs @@ -98,10 +98,7 @@ namespace ThingsGateway.SqlSugar List identities = GetIdentityKeys(); if (identities != null && identities.Count != 0) { - this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => - { - return !identities.Any(i => it.DbColumnName.Equals(i, StringComparison.CurrentCultureIgnoreCase)); - }).ToList(); + this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !identities.Any(i => it.DbColumnName.Equals(i, StringComparison.CurrentCultureIgnoreCase))).ToList(); } } #endregion @@ -110,19 +107,13 @@ namespace ThingsGateway.SqlSugar if (this.Context.IgnoreColumns?.Any() == true) { var currentIgnoreColumns = this.Context.IgnoreColumns.Where(it => it.EntityName == this.EntityInfo.EntityName).ToList(); - this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => - { - return !currentIgnoreColumns.Any(i => it.PropertyName.Equals(i.PropertyName, StringComparison.CurrentCulture)); - }).ToList(); + this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !currentIgnoreColumns.Any(i => it.PropertyName.Equals(i.PropertyName, StringComparison.CurrentCulture))).ToList(); } if (this.Context.IgnoreInsertColumns?.Any() == true) { var currentIgnoreColumns = this.Context.IgnoreInsertColumns.Where(it => it.EntityName == this.EntityInfo.EntityName).ToList(); - this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => - { - return !currentIgnoreColumns.Any(i => it.PropertyName.Equals(i.PropertyName, StringComparison.CurrentCulture)); - }).ToList(); + this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !currentIgnoreColumns.Any(i => it.PropertyName.Equals(i.PropertyName, StringComparison.CurrentCulture))).ToList(); } #endregion if (this.IsSingle) @@ -156,7 +147,6 @@ namespace ThingsGateway.SqlSugar { ArrayNull(item, paramters); } - } if (item.Value == null && isDic) { @@ -164,7 +154,6 @@ namespace ThingsGateway.SqlSugar if (type != null) { paramters = new SugarParameter(this.SqlBuilder.SqlParameterKeyWord + item.DbColumnName, item.Value, type); - } } this.InsertBuilder.Parameters.Add(paramters); @@ -258,7 +247,6 @@ namespace ThingsGateway.SqlSugar /// private void DataChangeAop(IReadOnlyList items) { - var dataEvent = this.Context.CurrentConnectionConfig.AopEvents?.DataChangesExecuted; if (dataEvent != null) { @@ -349,7 +337,6 @@ namespace ThingsGateway.SqlSugar DataType = column.DataType, SqlParameterDbType = column.SqlParameterDbType, IsIdentity = column.IsIdentity - }; if (column.DbColumnName == null) { @@ -467,13 +454,11 @@ namespace ThingsGateway.SqlSugar { return this.EntityInfo.Columns.Where(it => { - if (StaticConfig.Check_StringIdentity) { Check.ExceptionEasy(it.IsIdentity && it.UnderType == typeof(string), "Auto-incremented is not a string, how can I use a executable startup configuration: StaticConfig.Check_StringIdentity=false ", "自增不是能string,如何非要用可以程序启动配置:StaticConfig.Check_StringIdentity=false"); } return it.IsIdentity; - }).Select(it => it.DbColumnName).ToList(); } //private void TaskStart(Task result) @@ -563,7 +548,6 @@ namespace ThingsGateway.SqlSugar /// private List GetDiffTable(string sql, long? identity) { - if (GetIdentityKeys().HasValue() && this.InsertObjs.Count > 1) { return GetDiffTableByEntity(); @@ -576,7 +560,6 @@ namespace ThingsGateway.SqlSugar { return GetDiffTableBySql(identity); } - } /// diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertablePage.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertablePage.cs index 464e34fd7..6283267b3 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertablePage.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertablePage.cs @@ -64,10 +64,7 @@ { this.Context.Ado.BeginTran(); } - this.Context.Utilities.PageEach(DataList, PageSize, pageItem => - { - result += this.Context.Insertable(pageItem).AS(TableName).MySqlIgnore(IsMySqlIgnore).IgnoreColumnsNull(this.IsInsertColumnsNull).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns).ExecuteCommand(); - }); + this.Context.Utilities.PageEach(DataList, PageSize, pageItem => result += this.Context.Insertable(pageItem).AS(TableName).MySqlIgnore(IsMySqlIgnore).IgnoreColumnsNull(this.IsInsertColumnsNull).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns).ExecuteCommand()); if (isNoTran) { this.Context.Ado.CommitTran(); @@ -102,10 +99,7 @@ { await Context.Ado.BeginTranAsync().ConfigureAwait(false); } - await Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => - { - result += await Context.Insertable(pageItem).AS(TableName).IgnoreColumnsNull(IsInsertColumnsNull).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns).ExecuteCommandAsync().ConfigureAwait(false); - }).ConfigureAwait(false); + await Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => result += await Context.Insertable(pageItem).AS(TableName).IgnoreColumnsNull(IsInsertColumnsNull).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns).ExecuteCommandAsync().ConfigureAwait(false)).ConfigureAwait(false); if (isNoTran) { await Context.Ado.CommitTranAsync().ConfigureAwait(false); @@ -140,10 +134,7 @@ { this.Context.Ado.BeginTran(); } - this.Context.Utilities.PageEach(DataList, PageSize, pageItem => - { - result.AddRange(this.Context.Insertable(pageItem).AS(TableName).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns).ExecuteReturnSnowflakeIdList()); - }); + this.Context.Utilities.PageEach(DataList, PageSize, pageItem => result.AddRange(this.Context.Insertable(pageItem).AS(TableName).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns).ExecuteReturnSnowflakeIdList())); if (isNoTran) { this.Context.Ado.CommitTran(); @@ -178,10 +169,7 @@ { await Context.Ado.BeginTranAsync().ConfigureAwait(false); } - await Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => - { - result.AddRange(await Context.Insertable(pageItem).AS(TableName).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns).ExecuteReturnSnowflakeIdListAsync().ConfigureAwait(false)); - }).ConfigureAwait(false); + await Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => result.AddRange(await Context.Insertable(pageItem).AS(TableName).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns).ExecuteReturnSnowflakeIdListAsync().ConfigureAwait(false))).ConfigureAwait(false); if (isNoTran) { await Context.Ado.CommitTranAsync().ConfigureAwait(false); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertableProvider.cs index 960b0c654..ab70802a8 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -82,7 +82,6 @@ namespace ThingsGateway.SqlSugar /// internal Action RemoveCacheFunc { get; set; } - #region Core /// /// 添加到队列 @@ -569,7 +568,6 @@ namespace ThingsGateway.SqlSugar var snowColumn = this.EntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey && it.UnderType == UtilConstants.LongType); if (snowColumn != null) { - if (Convert.ToInt64(snowColumn.PropertyInfo.GetValue(result)) == 0) { var id = await ExecuteReturnSnowflakeIdAsync().ConfigureAwait(false); @@ -934,7 +932,6 @@ namespace ThingsGateway.SqlSugar public OracleBlukCopy UseOracle() { - PreToSql(); var currentType = this.Context.CurrentConnectionConfig.DbType; @@ -955,10 +952,8 @@ namespace ThingsGateway.SqlSugar InsertBuilder.IsBlukCopy = true; return result; - } - /// /// 条件启用差异日志事件 /// @@ -1074,10 +1069,6 @@ namespace ThingsGateway.SqlSugar /// 可分表插入对象 public SplitInsertable SplitTable() { - if (StaticConfig.SplitTableCreateTableFunc != null) - { - StaticConfig.SplitTableCreateTableFunc(typeof(T), this.InsertObjs); - } UtilMethods.StartCustomSplitTable(this.Context, typeof(T)); var splitTableAttribute = typeof(T).GetCustomAttribute(); if (splitTableAttribute != null) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/ParameterInsertable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/ParameterInsertable.cs index 0567d7aa9..18b7179b1 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/ParameterInsertable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/ParameterInsertable.cs @@ -123,7 +123,6 @@ namespace ThingsGateway.SqlSugar /// 影响行数 public int ValuesExecuteCommand() { - int result = 0; var inserable = Inserable as InsertableProvider; var columns = inserable.InsertBuilder.DbColumnInfoList.GroupBy(it => it.DbColumnName).Select(it => it.Key).Distinct().ToList(); @@ -144,15 +143,12 @@ namespace ThingsGateway.SqlSugar pageSize = GetPageSize(pageSize, count); this.Context.Utilities.PageEach(objects, pageSize, pagelist => { - StringBuilder batchInsetrSql; List allParamter = new List(); GetInsertValues(identityList, columns, tableWithString, removeCacheFunc, pagelist, out batchInsetrSql, allParamter); result += this.Context.Ado.ExecuteCommand(batchInsetrSql.ToString(), allParamter); - }); return result; - } /// @@ -174,12 +170,10 @@ namespace ThingsGateway.SqlSugar } await Context.Utilities.PageEachAsync(objects, 100, async pagelist => { - StringBuilder batchInsetrSql; List allParamter = new List(); GetInsertValues(identityList, columns, tableWithString, removeCacheFunc, pagelist, out batchInsetrSql, allParamter); result += await Context.Ado.ExecuteCommandAsync(batchInsetrSql.ToString(), allParamter).ConfigureAwait(false); - }).ConfigureAwait(false); return result; } @@ -218,7 +212,7 @@ namespace ThingsGateway.SqlSugar batchInsetrSql.Append("INSERT INTO " + itemable.InsertBuilder.GetTableNameString + " "); batchInsetrSql.Append('('); var groupList = itemable.InsertBuilder.DbColumnInfoList.Where(it => !identitys.Contains(it.PropertyName)).GroupBy(it => it.TableId).ToList(); - string columnsString = string.Join(",", groupList.First().Select(it => itemable.InsertBuilder.Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => itemable.InsertBuilder.Builder.GetTranslationColumnName(it.DbColumnName))); batchInsetrSql.Append(columnsString); batchInsetrSql.Append(") VALUES"); string insertColumns = ""; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/SubInserable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/SubInserable.cs index ab49f4c2d..d1dbb808b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/SubInserable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/InsertableProvider/SubInserable.cs @@ -55,7 +55,6 @@ namespace ThingsGateway.SqlSugar var memInit = lamda.Body as MemberInitExpression; if (memInit.Bindings != null) { - MemberAssignment memberAssignment = (MemberAssignment)memInit.Bindings[0]; SubList.Add(new SubInsertTreeExpression() { @@ -106,10 +105,7 @@ namespace ThingsGateway.SqlSugar public async Task ExecuteCommandAsync() { object resut = 0; - await Task.Run(() => - { - resut = ExecuteCommand(); - }).ConfigureAwait(false); + await Task.Run(() => resut = ExecuteCommand()).ConfigureAwait(false); return resut; } /// @@ -267,7 +263,6 @@ namespace ThingsGateway.SqlSugar { if (item.IsIdentity || item.IsIgnore) { - } else if (!string.IsNullOrEmpty(item.OracleSequenceName) && this.Context.CurrentConnectionConfig.DbType == DbType.Oracle) { @@ -300,8 +295,7 @@ namespace ThingsGateway.SqlSugar MemberExpression listMember = null; if (subMemberException.Expression is MethodCallExpression) { - listMember = (subMemberException.Expression as MethodCallExpression).Arguments.First() as MemberExpression; - + listMember = (subMemberException.Expression as MethodCallExpression).Arguments[0] as MemberExpression; } else { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/Includes.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/Includes.cs index b9d7d0b25..8ece74875 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/Includes.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/Includes.cs @@ -339,7 +339,6 @@ namespace ThingsGateway.SqlSugar public partial class NavQueryableProvider : QueryableProvider, NavISugarQueryable { - public NavQueryableProvider Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } public NavQueryableProvider Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } public NavQueryableProvider Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } @@ -580,7 +579,5 @@ namespace ThingsGateway.SqlSugar public NavQueryableProvider Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } public NavQueryableProvider Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } public NavQueryableProvider Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } - } } - diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/IncludesHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/IncludesHelper.cs index 9b5b2a1b0..d00f07021 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/IncludesHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/IncludesHelper.cs @@ -142,7 +142,6 @@ namespace ThingsGateway.SqlSugar var array = ExpressionTool.ExtractMemberNames(include1); if (array.Count > 1) { - if (array.Count == 2) { result = this.IncludesByNameString(array[0], array[1]); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/MappingFieldsHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/MappingFieldsHelper.cs index dc9994fca..8384005c8 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/MappingFieldsHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/MappingFieldsHelper.cs @@ -205,7 +205,6 @@ namespace ThingsGateway.SqlSugar item.RightEntityColumn = this.RootEntity.Columns.FirstOrDefault(it => it.PropertyName == rightName); } } - } /// /// 映射字段信息 diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/NavSelectHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/NavSelectHelper.cs index 7f8b381ce..da1d982a8 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/NavSelectHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/NavSelectHelper.cs @@ -6,7 +6,6 @@ namespace ThingsGateway.SqlSugar { internal static List GetList(Expression> expression, QueryableProvider queryableProvider) { - List result = new List(); var isSqlFunc = IsSqlFunc(expression, queryableProvider); var isClass = IsClass(expression, queryableProvider); @@ -54,7 +53,6 @@ namespace ThingsGateway.SqlSugar } catch { - throw; } } @@ -122,7 +120,7 @@ namespace ThingsGateway.SqlSugar internal static async Task> GetListAsync(Expression> expression, QueryableProvider queryableProvider) { - return await Task.Run(() => { return GetList(expression, queryableProvider); }).ConfigureAwait(false); + return await Task.Run(() => GetList(expression, queryableProvider)).ConfigureAwait(false); } private static string GetGroupSelect(Type type, SqlSugarProvider context, QueryBuilder queryBuilder) @@ -328,7 +326,6 @@ namespace ThingsGateway.SqlSugar } else if (method.Method.Name == "Join") { - if (item.ToString().Contains($" {parameterName}.")) { result.Add(new NavMappingColumn() { IsError = true }); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/NavigatManager.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/NavigatManager.cs index 4929a9a8d..4543b58fa 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/NavigatManager.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/NavigatManager.cs @@ -58,7 +58,6 @@ namespace ThingsGateway.SqlSugar if (isList) { list = currentList.SelectMany(it => (it.GetType().GetProperty(navObjectName).GetValue(it) as IList)?.Cast() ?? new List()).ToList(); - } else { @@ -121,7 +120,6 @@ namespace ThingsGateway.SqlSugar if (isList) { list = currentList.Where(it => it.GetType().GetProperty(navObjectName).GetValue(it) != null).SelectMany(it => (it.GetType().GetProperty(navObjectName).GetValue(it) as IList).Cast()).ToList(); - } else { @@ -155,42 +153,25 @@ namespace ThingsGateway.SqlSugar var navObjectNameColumnInfo = listItemEntity.Columns.First(it => it.PropertyName == navObjectName); Check.ExceptionEasy(navObjectNameColumnInfo.Navigat == null, $"{navObjectName} not [Navigat(..)] ", $"{navObjectName} 没有导航特性 [Navigat(..)] "); - - if (navObjectNameColumnInfo.Navigat.NavigatType == NavigateType.OneToOne) { - this.Context.Utilities.PageEach(list, 5000, pageList => - { - OneToOne(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo); - }); + this.Context.Utilities.PageEach(list, 5000, pageList => OneToOne(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo)); } else if (navObjectNameColumnInfo.Navigat.NavigatType == NavigateType.OneToMany) { - this.Context.Utilities.PageEach(list, 5000, pageList => - { - OneToMany(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo); - }); + this.Context.Utilities.PageEach(list, 5000, pageList => OneToMany(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo)); } else if (navObjectNameColumnInfo.Navigat.NavigatType == NavigateType.ManyToOne) { - this.Context.Utilities.PageEach(list, 5000, pageList => - { - OneToOne(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo); - }); + this.Context.Utilities.PageEach(list, 5000, pageList => OneToOne(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo)); } else if (navObjectNameColumnInfo.Navigat.NavigatType == NavigateType.Dynamic) { - this.Context.Utilities.PageEach(list, 100, pageList => - { - Dynamic(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo, expression); - }); + this.Context.Utilities.PageEach(list, 100, pageList => Dynamic(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo, expression)); } else { - this.Context.Utilities.PageEach(list, 100, pageList => - { - ManyToMany(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo); - }); + this.Context.Utilities.PageEach(list, 100, pageList => ManyToMany(pageList, selector, listItemEntity, navObjectNameProperty, navObjectNameColumnInfo)); } } @@ -415,7 +396,7 @@ namespace ThingsGateway.SqlSugar } } } - if (list.Count != 0 && navObjectNameProperty.GetValue(list.First()) == null) + if (list.Count != 0 && navObjectNameProperty.GetValue(list[0]) == null) { var sqlObj = GetWhereSql(db, navObjectNameColumnInfo.Navigat.Name); if (sqlObj.SelectString == null) @@ -448,7 +429,6 @@ namespace ThingsGateway.SqlSugar }); foreach (var item in groupQuery) { - // var setValue = navList.FirstOrDefault(x => navPkColumn.PropertyInfo.GetValue(x).ObjToString() == navColumn.PropertyInfo.GetValue(item).ObjToString()); if (navObjectNameProperty.GetValue(item.l) == null) @@ -459,7 +439,6 @@ namespace ThingsGateway.SqlSugar { //The reserved } - } } else @@ -480,7 +459,6 @@ namespace ThingsGateway.SqlSugar foreach (var item in groupQuery) { - // var setValue = navList.FirstOrDefault(x => navPkColumn.PropertyInfo.GetValue(x).ObjToString() == navColumn.PropertyInfo.GetValue(item).ObjToString()); if (navObjectNameProperty.GetValue(item.l) == null) @@ -491,7 +469,6 @@ namespace ThingsGateway.SqlSugar { //The reserved } - } } } @@ -509,7 +486,6 @@ namespace ThingsGateway.SqlSugar }); foreach (var item in groupQuery) { - // var setValue = navList.FirstOrDefault(x => navPkColumn.PropertyInfo.GetValue(x).ObjToString() == navColumn.PropertyInfo.GetValue(item).ObjToString()); if (navObjectNameProperty.GetValue(item.l) == null) @@ -520,7 +496,6 @@ namespace ThingsGateway.SqlSugar { //The reserved } - } } } @@ -564,7 +539,7 @@ namespace ThingsGateway.SqlSugar })); var sqlObj = GetWhereSql(childDb, navObjectNameColumnInfo.Navigat.Name); - if (list.Count != 0 && navObjectNameProperty.GetValue(list.First()) == null) + if (list.Count != 0 && navObjectNameProperty.GetValue(list[0]) == null) { if (sqlObj.SelectString == null) { @@ -610,7 +585,6 @@ namespace ThingsGateway.SqlSugar } else { - var instance = Activator.CreateInstance(navObjectNameProperty.PropertyType, true); var ilist = instance as IList; foreach (var value in list1) @@ -666,7 +640,7 @@ namespace ThingsGateway.SqlSugar } } Check.ExceptionEasy(sqlObj.MappingExpressions.IsNullOrEmpty(), $"{expression} error,dynamic need MappingField ,Demo: Includes(it => it.Books.MappingField(z=>z.studenId,()=>it.StudentId).ToList())", $"{expression} 解析出错,自定义映射需要 MappingField ,例子: Includes(it => it.Books.MappingField(z=>z.studenId,()=>it.StudentId).ToList())"); - if (list.Count != 0 && navObjectNameProperty.GetValue(list.First()) == null) + if (list.Count != 0 && navObjectNameProperty.GetValue(list[0]) == null) { MappingFieldsHelper helper = new MappingFieldsHelper(); helper.Context = childDb; @@ -682,7 +656,6 @@ namespace ThingsGateway.SqlSugar } } } - } private void DynamicOneToOne(List list, Func, List> selector, EntityInfo listItemEntity, System.Reflection.PropertyInfo navObjectNameProperty, EntityColumnInfo navObjectNameColumnInfo, Expression expression) @@ -702,7 +675,7 @@ namespace ThingsGateway.SqlSugar } } Check.ExceptionEasy(sqlObj.MappingExpressions.IsNullOrEmpty(), $"{expression} error,dynamic need MappingField ,Demo: Includes(it => it.Books.MappingField(z=>z.studenId,()=>it.StudentId).ToList())", $"{expression}解析出错, 自定义映射需要 MappingField ,例子: Includes(it => it.Books.MappingField(z=>z.studenId,()=>it.StudentId).ToList())"); - if (list.Count != 0 && navObjectNameProperty.GetValue(list.First()) == null) + if (list.Count != 0 && navObjectNameProperty.GetValue(list[0]) == null) { MappingFieldsHelper helper = new MappingFieldsHelper(); helper.Context = this.Context; @@ -844,17 +817,17 @@ namespace ThingsGateway.SqlSugar } if (where.Count != 0) { - Check.ExceptionEasy(isList == false, $"{_ListCallFunc.First()} need is ToList()", $"{_ListCallFunc.First()} 需要ToList"); + Check.ExceptionEasy(isList == false, $"{_ListCallFunc[0]} need is ToList()", $"{_ListCallFunc[0]} 需要ToList"); result.WhereString = String.Join(" AND ", where); } if (orderBy.Count != 0) { - Check.ExceptionEasy(isList == false, $"{_ListCallFunc.First()} need is ToList()", $"{_ListCallFunc.First()} 需要ToList"); + Check.ExceptionEasy(isList == false, $"{_ListCallFunc[0]} need is ToList()", $"{_ListCallFunc[0]} 需要ToList"); result.OrderByString = String.Join(" , ", orderBy); } if (result.SelectString.HasValue()) { - Check.ExceptionEasy(isList == false, $"{_ListCallFunc.First()} need is ToList()", $"{_ListCallFunc.First()} 需要ToList"); + Check.ExceptionEasy(isList == false, $"{_ListCallFunc[0]} need is ToList()", $"{_ListCallFunc[0]} 需要ToList"); result.OrderByString = String.Join(" , ", orderBy); } return result; @@ -948,7 +921,6 @@ namespace ThingsGateway.SqlSugar } } - private SqlSugarProvider GetCrossDatabase(SqlSugarProvider db, Type type) { if (IsCrossQueryWithAttr == false && this.CrossQueryItems == null) @@ -1023,7 +995,6 @@ namespace ThingsGateway.SqlSugar return shortName; } - private string GetDbTableName(EntityInfo navEntityInfo, SqlInfo sqlInfo) { if (navEntityInfo.Type.GetCustomAttribute() != null && sqlInfo.SplitTable != null) @@ -1055,7 +1026,6 @@ namespace ThingsGateway.SqlSugar } } - private bool IsEnumNumber(EntityColumnInfo navPkColumn) { return @@ -1088,7 +1058,6 @@ namespace ThingsGateway.SqlSugar Check.ExceptionEasy(cColumn == null, $"{m} does not exist in {listItemEntity.EntityName}", $"{m}不存在于{listItemEntity.EntityName}"); sqlObj.MappingExpressions.Add(new MappingFieldsExpression() { - LeftEntityColumn = cColumn, RightEntityColumn = mColumn, }); @@ -1117,11 +1086,9 @@ namespace ThingsGateway.SqlSugar } if (it.ForOwnsOnePropertyInfo != null) { - return QueryBuilder.Builder.GetTranslationColumnName(it.DbColumnName); } return QueryBuilder.Builder.GetTranslationColumnName(it.DbColumnName) + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryMethodInfo.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryMethodInfo.cs index 97e478c22..59782f293 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryMethodInfo.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryMethodInfo.cs @@ -1,7 +1,6 @@ using System.Data; using System.Text.RegularExpressions; - namespace ThingsGateway.SqlSugar { public class QueryMethodInfo @@ -10,8 +9,6 @@ namespace ThingsGateway.SqlSugar public SqlSugarProvider Context { get; internal set; } public Type EntityType { get; set; } - - #region Sql API public QueryMethodInfo MergeTable() diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableExecuteSql.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableExecuteSql.cs index 50a2ed8a5..42069dd1b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableExecuteSql.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableExecuteSql.cs @@ -1,9 +1,9 @@ using System.Data; using System.Linq.Expressions; +using System.Runtime.CompilerServices; namespace ThingsGateway.SqlSugar { - public partial class QueryableProvider : QueryableAccessory, ISugarQueryable { public virtual T Single() @@ -124,7 +124,7 @@ namespace ThingsGateway.SqlSugar if (IsCache) { var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; - result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => { return GetCount(); }, CacheTime, this.Context, CacheKey); + result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => GetCount(), CacheTime, this.Context, CacheKey); } else { @@ -186,7 +186,6 @@ namespace ThingsGateway.SqlSugar } public virtual T[] ToArray() { - var result = this.ToList(); if (result.HasValue()) return result.ToArray(); @@ -199,10 +198,7 @@ namespace ThingsGateway.SqlSugar if (IsCache) { var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; - var result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => - { - return this.Context.Utilities.SerializeObject(this.ToList(), typeof(T)); - }, CacheTime, this.Context, CacheKey); + var result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => this.Context.Utilities.SerializeObject(this.ToList(), typeof(T)), CacheTime, this.Context, CacheKey); return result; } else @@ -300,11 +296,11 @@ namespace ThingsGateway.SqlSugar { if (this.QueryBuilder.JoinQueryInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } if (this.QueryBuilder.EasyJoinInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } } var current = this.Context.Queryable().AS(tableName).WithCacheIF(this.IsCache, this.CacheTime).Filter(null, this.QueryBuilder.IsDisabledGobalFilter).ClearFilter(this.QueryBuilder.RemoveFilters).InSingle(primaryKeyValue); @@ -342,11 +338,11 @@ namespace ThingsGateway.SqlSugar { if (this.QueryBuilder.JoinQueryInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } if (this.QueryBuilder.EasyJoinInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } } var current = this.Context.Queryable().AS(tableName).WhereIF(parentWhereExpression != default, parentWhereExpression).Filter(null, this.QueryBuilder.IsDisabledGobalFilter).InSingle(primaryKeyValue); @@ -417,7 +413,7 @@ namespace ThingsGateway.SqlSugar if (IsCache) { var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; - result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => { return this.Db.GetDataTable(sqlObj.Key, sqlObj.Value); }, CacheTime, this.Context, CacheKey); + result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => this.Db.GetDataTable(sqlObj.Key, sqlObj.Value), CacheTime, this.Context, CacheKey); } else { @@ -608,10 +604,7 @@ namespace ThingsGateway.SqlSugar { if (queryableContext.TempChildLists == null) queryableContext.TempChildLists = new Dictionary(); - this.Context.Utilities.PageEach(ids, 200, pageIds => - { - result.AddRange(this.Clone().In(thisField, pageIds).ToList()); - }); + this.Context.Utilities.PageEach(ids, 200, pageIds => result.AddRange(this.Clone().In(thisField, pageIds).ToList())); queryableContext.TempChildLists[key] = result; } var name = ""; @@ -693,7 +686,6 @@ namespace ThingsGateway.SqlSugar { while (dr.Read()) { - var order = entytyList.Build(dr); action(order); } @@ -703,36 +695,41 @@ namespace ThingsGateway.SqlSugar this.Context.Ado.Close(); } } - public IEnumerable GetEnumerable() + public IEnumerable ToEnumerable(CancellationToken cancellationToken) { var queryable = this.Clone(); var sql = queryable.ToSql(); var dr = this.Context.Ado.GetDataReader(sql.Key, sql.Value); var entityInfo = this.Context.EntityMaintenance.GetEntityInfo(); var columns = UtilMethods.GetColumnInfo(dr); - var cacheKey = "GetEnumerable" + typeof(T).GetHashCode() + string.Join(",", columns.Select(it => it.Item1 + it.Item2.Name + "_")); + var cacheKey = "ToEnumerable" + typeof(T).GetHashCode() + string.Join(",", columns.Select(it => it.Item1 + it.Item2.Name + "_")); IDataReaderEntityBuilder entytyList = this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, () => { var cacheResult = new IDataReaderEntityBuilder(this.Context, dr, columns.Select(it => it.Item1).ToList()).CreateBuilder(typeof(T)); return cacheResult; }); + if (cancellationToken.IsCancellationRequested) yield break; - - using (dr) + try { - while (dr.Read()) + using (dr) { + while (dr.Read()) + { + if (cancellationToken.IsCancellationRequested) yield break; - var order = entytyList.Build(dr); - yield return order; + var order = entytyList.Build(dr); + yield return order; + } } } - - - if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection) + finally { - this.Context.Ado.Close(); + if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection) + { + this.Context.Ado.Close(); + } } } public async Task ForEachDataReaderAsync(Action action) @@ -753,7 +750,6 @@ namespace ThingsGateway.SqlSugar { while (dr.Read()) { - var order = entytyList.Build(dr); action(order); } @@ -768,14 +764,14 @@ namespace ThingsGateway.SqlSugar /// Diego 新增一个延迟返回 /// /// - public async IAsyncEnumerable GetAsyncEnumerable() + public async IAsyncEnumerable ToAsyncEnumerable([EnumeratorCancellation] CancellationToken cancellationToken) { var queryable = this.Clone(); var sql = queryable.ToSql(); var dr = await Context.Ado.GetDataReaderAsync(sql.Key, sql.Value).ConfigureAwait(false); var entityInfo = this.Context.EntityMaintenance.GetEntityInfo(); var columns = UtilMethods.GetColumnInfo(dr); - var cacheKey = "GetAsyncEnumerable" + typeof(T).GetHashCode() + string.Join(",", columns.Select(it => it.Item1 + it.Item2.Name + "_")); + var cacheKey = "ToAsyncEnumerable" + typeof(T).GetHashCode() + string.Join(",", columns.Select(it => it.Item1 + it.Item2.Name + "_")); IDataReaderEntityBuilder entytyList = this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, () => { var cacheResult = new IDataReaderEntityBuilder(this.Context, dr, @@ -783,21 +779,27 @@ namespace ThingsGateway.SqlSugar return cacheResult; }); + if (cancellationToken.IsCancellationRequested) yield break; - using (dr) + try { - while (dr.Read()) + using (dr) { - - var order = entytyList.Build(dr); - yield return order; + while (dr.Read()) + { + if (cancellationToken.IsCancellationRequested) yield break; + var order = entytyList.Build(dr); + yield return order; + } } } - if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection) + finally { - this.Context.Ado.Close(); + if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection) + { + this.Context.Ado.Close(); + } } - } public virtual void ForEach(Action action, int singleMaxReads = 300, System.Threading.CancellationTokenSource cancellationTokenSource = null) { @@ -960,7 +962,6 @@ namespace ThingsGateway.SqlSugar return result; } - public virtual KeyValuePair> ToSql() { if (!QueryBuilder.IsClone) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableExecuteSqlAsync.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableExecuteSqlAsync.cs index 506cc9fb0..67041c04c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableExecuteSqlAsync.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableExecuteSqlAsync.cs @@ -3,12 +3,10 @@ using System.Linq.Expressions; namespace ThingsGateway.SqlSugar { - public partial class QueryableProvider : QueryableAccessory, ISugarQueryable { public virtual async Task ToArrayAsync() { - var result = await ToListAsync().ConfigureAwait(false); if (result.HasValue()) return result.ToArray(); @@ -152,7 +150,7 @@ namespace ThingsGateway.SqlSugar if (IsCache) { var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; - result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => { return GetCount(); }, CacheTime, this.Context, CacheKey); + result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => GetCount(), CacheTime, this.Context, CacheKey); } else { @@ -322,10 +320,7 @@ namespace ThingsGateway.SqlSugar if (IsCache) { var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; - var result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => - { - return this.Context.Utilities.SerializeObject(this.ToList(), typeof(T)); - }, CacheTime, this.Context, CacheKey); + var result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => this.Context.Utilities.SerializeObject(this.ToList(), typeof(T)), CacheTime, this.Context, CacheKey); return result; } else @@ -392,7 +387,7 @@ namespace ThingsGateway.SqlSugar if (IsCache) { var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; - result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => { return this.Db.GetDataTable(sqlObj.Key, sqlObj.Value); }, CacheTime, this.Context, CacheKey); + result = CacheSchemeMain.GetOrCreate(cacheService, this.QueryBuilder, () => this.Db.GetDataTable(sqlObj.Key, sqlObj.Value), CacheTime, this.Context, CacheKey); } else { @@ -581,10 +576,7 @@ ParameterT parameter) { if (queryableContext.TempChildLists == null) queryableContext.TempChildLists = new Dictionary(); - await Context.Utilities.PageEachAsync(ids, 200, async pageIds => - { - result.AddRange(await Clone().In(thisField, pageIds).ToListAsync().ConfigureAwait(false)); - }).ConfigureAwait(false); + await Context.Utilities.PageEachAsync(ids, 200, async pageIds => result.AddRange(await Clone().In(thisField, pageIds).ToListAsync().ConfigureAwait(false))).ConfigureAwait(false); queryableContext.TempChildLists[key] = result; } var name = ""; @@ -677,11 +669,11 @@ ParameterT parameter) { if (this.QueryBuilder.JoinQueryInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } if (this.QueryBuilder.EasyJoinInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } } var current = await Context.Queryable().AS(tableName).WithCacheIF(IsCache, CacheTime).Filter(null, QueryBuilder.IsDisabledGobalFilter).InSingleAsync(primaryKeyValue).ConfigureAwait(false); @@ -719,11 +711,11 @@ ParameterT parameter) { if (this.QueryBuilder.JoinQueryInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } if (this.QueryBuilder.EasyJoinInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } } var current = await Context.Queryable().AS(tableName).WhereIF(parentWhereExpression != default, parentWhereExpression).Filter(null, QueryBuilder.IsDisabledGobalFilter).InSingleAsync(primaryKeyValue).ConfigureAwait(false); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableHelper.cs index 9db9b811f..8e0f59aa3 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableHelper.cs @@ -7,7 +7,6 @@ using System.Linq.Expressions; using System.Reflection; using System.Text.RegularExpressions; - namespace ThingsGateway.SqlSugar { public partial class QueryableProvider : QueryableAccessory, ISugarQueryable @@ -26,11 +25,11 @@ namespace ThingsGateway.SqlSugar { if (this.QueryBuilder.JoinQueryInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } if (this.QueryBuilder.EasyJoinInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } } var current = this.Context.Queryable().AS(tableName).Filter(null, this.QueryBuilder.IsDisabledGobalFilter).Where(new List() { @@ -84,11 +83,11 @@ namespace ThingsGateway.SqlSugar { if (this.QueryBuilder.JoinQueryInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } if (this.QueryBuilder.EasyJoinInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } } var current = this.Context.Queryable().AS(tableName).WhereIF(parentWhereExpression != default, parentWhereExpression).Filter(null, this.QueryBuilder.IsDisabledGobalFilter).Where(new List() { @@ -143,11 +142,11 @@ namespace ThingsGateway.SqlSugar { if (this.QueryBuilder.JoinQueryInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } if (this.QueryBuilder.EasyJoinInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } } var current = await Context.Queryable().AS(tableName).Filter(null, QueryBuilder.IsDisabledGobalFilter).Where(new List() { @@ -202,11 +201,11 @@ namespace ThingsGateway.SqlSugar { if (this.QueryBuilder.JoinQueryInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } if (this.QueryBuilder.EasyJoinInfos.Count > 0) { - tableName = this.QueryBuilder.JoinQueryInfos.First().TableName; + tableName = this.QueryBuilder.JoinQueryInfos[0].TableName; } } var current = await Context.Queryable().AS(tableName).WhereIF(parentWhereExpression != default, parentWhereExpression).Filter(null, QueryBuilder.IsDisabledGobalFilter).Where(new List() { @@ -363,10 +362,8 @@ namespace ThingsGateway.SqlSugar { var result = alllist.Where(it => { - var value = it.GetType().GetProperty(parentIdName).GetValue(it); return value.ObjToString() == pkValue.ObjToString(); - }).ToList(); if (result?.Count > 0) { @@ -417,7 +414,7 @@ namespace ThingsGateway.SqlSugar { this.QueryableMappingTableList = new MappingTableList(); } - this.QueryableMappingTableList.Add(expMapping.First()); + this.QueryableMappingTableList.Add(expMapping[0]); } } private void _CountBegin(out MappingTableList expMapping, out int result) @@ -599,8 +596,7 @@ namespace ThingsGateway.SqlSugar var isSqlMethod = expressionTree.Count != 0 && ExpressionTool.GetMethodName(expressionTree.Last()).IsIn("Any", "Count"); if (expressionTree.Count != 0 && isSqlMethod == false) { - - var name = ExpressionTool.GetMemberName(expressionTree.First()); + var name = ExpressionTool.GetMemberName(expressionTree[0]); if (name != null && entityColumns.Any(it => it.Navigat != null && it.PropertyName == name)) { var mappingNavColumnInfo = new MappingNavColumnInfo() @@ -627,7 +623,6 @@ namespace ThingsGateway.SqlSugar navInfo.MappingNavProperties.Add(item.Key, mappingNavColumnInfo); } } - } } @@ -639,7 +634,7 @@ namespace ThingsGateway.SqlSugar } foreach (var item in navManages) { - var FirstExp = item.Expressions.First(); + var FirstExp = item.Expressions[0]; var navName = ExpressionTool.GetMemberName(FirstExp); if (FirstExp is LambdaExpression && ExpressionTool.GetMethodName((FirstExp as LambdaExpression).Body) == "ToList") { @@ -685,7 +680,7 @@ namespace ThingsGateway.SqlSugar { if (this.QueryBuilder.Includes != null) { - await Task.Run(() => { _InitNavigat(result); }).ConfigureAwait(false); + await Task.Run(() => _InitNavigat(result)).ConfigureAwait(false); } } private void _InitNavigat(List result) @@ -728,7 +723,7 @@ namespace ThingsGateway.SqlSugar var allColumns = this.Context.EntityMaintenance.GetEntityInfo(tType) .Columns; var columns = allColumns - .Where(a => this.QueryBuilder.AppendNavInfo.Result.First().result.ContainsKey("SugarNav_" + a.PropertyName)) + .Where(a => this.QueryBuilder.AppendNavInfo.Result[0].result.ContainsKey("SugarNav_" + a.PropertyName)) .ToList(); var listType = typeof(List<>).MakeGenericType(tType); if (outList == null) @@ -774,7 +769,6 @@ namespace ThingsGateway.SqlSugar // object value = item; if (item.Value.ExpressionList.Count > 1 && rightValue != null) { - //foreach (var callExp in item.Value.ExpressionList.Skip(1)) //{ try @@ -822,13 +816,11 @@ namespace ThingsGateway.SqlSugar var propertyInfo = columns.First(i => i.PropertyName == propertyName).PropertyInfo; if (kv.Value is decimal && UtilMethods.GetUnderType(propertyInfo.PropertyType).IsIn(typeof(int), typeof(long))) { - var changeValue = UtilMethods.ChangeType2(kv.Value, propertyInfo.PropertyType); propertyInfo.SetValue(addItem, changeValue); } else if (kv.Value == DBNull.Value && UtilMethods.GetUnderType(propertyInfo.PropertyType).IsIn(typeof(int), typeof(long))) { - var changeValue = UtilMethods.ChangeType2(0, propertyInfo.PropertyType); propertyInfo.SetValue(addItem, changeValue); } @@ -970,7 +962,7 @@ namespace ThingsGateway.SqlSugar Action> mapper = (entitys) => { if (entitys.IsNullOrEmpty() || entitys.Count == 0) return; - var entity = entitys.First(); + var entity = entitys[0]; var whereCol = fieldEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals(fieldName, StringComparison.CurrentCultureIgnoreCase)); if (whereCol == null) { @@ -993,7 +985,7 @@ namespace ThingsGateway.SqlSugar Check.Exception(true, ".Mapper() parameter error"); } var inValues = entitys.Select(it => it.GetType().GetProperty(fieldName).GetValue(it, null).ObjToString()); - if (inValues?.Any() == true && UtilMethods.GetUnderType(entitys.First().GetType().GetProperty(fieldName).PropertyType) == UtilConstants.GuidType) + if (inValues?.Any() == true && UtilMethods.GetUnderType(entitys[0].GetType().GetProperty(fieldName).PropertyType) == UtilConstants.GuidType) { inValues = inValues.Select(x => string.IsNullOrEmpty(x) ? "null" : x).Distinct(); } @@ -1030,7 +1022,7 @@ namespace ThingsGateway.SqlSugar Action> mapper = (entitys) => { if (entitys.IsNullOrEmpty() || entitys.Count == 0) return; - var entity = entitys.First(); + var entity = entitys[0]; var tEntity = this.Context.EntityMaintenance.GetEntityInfo(); var whereCol = tEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals(fieldName, StringComparison.CurrentCultureIgnoreCase)); if (whereCol == null) @@ -1137,7 +1129,7 @@ namespace ThingsGateway.SqlSugar Action> mapper = (entitys) => { if (entitys.IsNullOrEmpty() || entitys.Count == 0) return; - var entity = entitys.First(); + var entity = entitys[0]; var whereCol = fieldEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals(childFieldName, StringComparison.CurrentCultureIgnoreCase)); if (whereCol == null) { @@ -1192,7 +1184,7 @@ namespace ThingsGateway.SqlSugar Action> mapper = (entitys) => { if (entitys.IsNullOrEmpty() || entitys.Count == 0) return; - var entity = entitys.First(); + var entity = entitys[0]; var tEntity = this.Context.EntityMaintenance.GetEntityInfo(); var whereCol = tEntity.Columns.FirstOrDefault(it => it.PropertyName.Equals(childFieldName, StringComparison.CurrentCultureIgnoreCase)); if (whereCol == null) @@ -1391,7 +1383,7 @@ namespace ThingsGateway.SqlSugar var dbLinkName = this.Context.Root.GetConnection(attr.configId).CurrentConnectionConfig.DbLinkName; if (dbLinkName != null) { - if (dbLinkName.First() == '@') + if (dbLinkName[0] == '@') { tableName = this.QueryBuilder.Builder.GetTranslationColumnName(oldTableName) + dbLinkName; } @@ -1477,7 +1469,6 @@ namespace ThingsGateway.SqlSugar if (!sql.Contains($"{SqlBuilder.GetTranslationColumnName(item.DbColumnName)} AS {SqlBuilder.GetTranslationColumnName(item.PropertyName)}") && !sql.Contains($"{SqlBuilder.GetTranslationColumnName(item.DbColumnName)} AS {SqlBuilder.GetTranslationColumnName(item.PropertyName)}")) { - if (parameterIndex1 == 0 && this.QueryBuilder.JoinQueryInfos.Count != 0) { sql = $" {sql},{SqlBuilder.GetTranslationColumnName(this.QueryBuilder.TableShortName)}.{SqlBuilder.GetTranslationColumnName(item.DbColumnName)} AS {SqlBuilder.GetTranslationColumnName(item.PropertyName)} "; @@ -1563,7 +1554,7 @@ namespace ThingsGateway.SqlSugar } if (result.JoinIndex == 0) { - var firstPareamter = (express as LambdaExpression).Parameters.First(); + var firstPareamter = (express as LambdaExpression).Parameters[0]; this.QueryBuilder.TableShortName = firstPareamter.Name; if (this.QueryBuilder.AsTables?.Count == 1) { @@ -1763,7 +1754,6 @@ namespace ThingsGateway.SqlSugar this.QueryBuilder.GroupBySql = groupBySql; this.QueryBuilder.GroupBySqlOld = result; - if (expression is NewExpression s && s.Arguments.Count > 1) { foreach (var item in s.Arguments) @@ -1861,7 +1851,7 @@ namespace ThingsGateway.SqlSugar if (IsCache) { var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; - result = CacheSchemeMain.GetOrCreate>(cacheService, this.QueryBuilder, () => { return GetData(sqlObj); }, CacheTime, this.Context, CacheKey); + result = CacheSchemeMain.GetOrCreate>(cacheService, this.QueryBuilder, () => GetData(sqlObj), CacheTime, this.Context, CacheKey); } else { @@ -1874,8 +1864,6 @@ namespace ThingsGateway.SqlSugar return result; } - - protected async Task> _ToListAsync() { List result = null; @@ -1883,7 +1871,7 @@ namespace ThingsGateway.SqlSugar if (IsCache) { var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; - result = CacheSchemeMain.GetOrCreate>(cacheService, this.QueryBuilder, () => { return GetData(sqlObj); }, CacheTime, this.Context, CacheKey); + result = CacheSchemeMain.GetOrCreate>(cacheService, this.QueryBuilder, () => GetData(sqlObj), CacheTime, this.Context, CacheKey); } else { @@ -2085,7 +2073,6 @@ namespace ThingsGateway.SqlSugar } protected List GetPrimaryKeys() { - return this.EntityInfo.Columns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName).ToList(); } protected virtual List GetIdentityKeys() @@ -2285,7 +2272,6 @@ namespace ThingsGateway.SqlSugar else AppendSubToList(result, appendValues, subPara); } - } private void AppendSubToList(List result, List> appendValues, KeyValuePair subPara) @@ -2348,7 +2334,6 @@ namespace ThingsGateway.SqlSugar List sqls = new List(); foreach (var item in result) { - var sql = subPara.Value.ObjToString(); var replaceValues = appendValues[index]; foreach (var re in replaceValues) @@ -2365,7 +2350,6 @@ namespace ThingsGateway.SqlSugar } var value = UtilMethods.GetSqlString(config.DbType, "@p", p, isNvarchar); sql = sql.Replace(re.Name, value); - } sql = SqlBuilder.RemoveParentheses(sql); sql = sql.Replace("@sugarIndex", index + ""); @@ -2540,7 +2524,7 @@ namespace ThingsGateway.SqlSugar { return; } - await Task.Run(() => { _SubQuery(result); }).ConfigureAwait(false); + await Task.Run(() => _SubQuery(result)).ConfigureAwait(false); } public List SubQueryList(string sql, object parameters) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider.cs index ebd1edf14..b565bf70b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -7,10 +7,8 @@ using System.Text.RegularExpressions; namespace ThingsGateway.SqlSugar { - public partial class QueryableProvider : QueryableAccessory, ISugarQueryable { - public ISugarQueryable CrossQuery(string configId) { return this.CrossQuery(typeof(Type), configId); @@ -108,7 +106,6 @@ namespace ThingsGateway.SqlSugar } public ISugarQueryable LeftJoin(ISugarQueryable joinQueryable, Expression> joinExpression) { - if (MasterHasWhereFirstJoin()) { return this.MergeTable().LeftJoin(joinQueryable, joinExpression); @@ -153,7 +150,6 @@ namespace ThingsGateway.SqlSugar } public ISugarQueryable RightJoin(ISugarQueryable joinQueryable, Expression> joinExpression) { - if (MasterHasWhereFirstJoin()) { return this.MergeTable().RightJoin(joinQueryable, joinExpression); @@ -176,7 +172,6 @@ namespace ThingsGateway.SqlSugar } public ISugarQueryable FullJoin(ISugarQueryable joinQueryable, Expression> joinExpression) { - if (MasterHasWhereFirstJoin()) { return this.MergeTable().FullJoin(joinQueryable, joinExpression); @@ -262,7 +257,6 @@ namespace ThingsGateway.SqlSugar } public ISugarQueryable RightJoin(Expression> joinExpression) { - if (MasterHasWhereFirstJoin()) { return this.MergeTable().RightJoin(joinExpression); @@ -283,7 +277,6 @@ namespace ThingsGateway.SqlSugar } public ISugarQueryable InnerJoin(Expression> joinExpression) { - if (MasterHasWhereFirstJoin()) { return this.MergeTable().InnerJoin(joinExpression); @@ -479,8 +472,6 @@ namespace ThingsGateway.SqlSugar { var list = cache.Get>>(oldList => { - - //query mapping by a var cons = new List() { new ConditionalModel(){ @@ -515,7 +506,6 @@ namespace ThingsGateway.SqlSugar result.Add(item.Key, bList.Where(z => currentBids.Contains(UtilMethods.GetPropertyValue(z, bProperty))).ToList()); } return result; - }, expression.ToString()); foreach (var item in aEntity.Columns) { @@ -631,7 +621,6 @@ namespace ThingsGateway.SqlSugar } public virtual ISugarQueryable AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left) { - QueryBuilder.JoinIndex = +1; QueryBuilder.JoinQueryInfos .Add(new JoinQueryInfo() @@ -756,7 +745,6 @@ namespace ThingsGateway.SqlSugar /// public ISugarQueryable _WhereClassByPrimaryKey(IReadOnlyList whereClassTypes) { - if (whereClassTypes.HasValue()) { var columns = this.Context.EntityMaintenance.GetEntityInfo().Columns.Where(it => it.IsIgnore == false && it.IsPrimarykey == true); @@ -775,7 +763,6 @@ namespace ThingsGateway.SqlSugar cons.ConditionalList = new List>(); if (QueryBuilder.WhereInfos.IsNullOrEmpty() && whereModels.IsNullOrEmpty()) { - } else { @@ -828,7 +815,6 @@ namespace ThingsGateway.SqlSugar /// public ISugarQueryable _WhereClassByWhereColumns(IReadOnlyList whereClassTypes, IReadOnlyList whereColumns) { - if (whereClassTypes.HasValue()) { var columns = this.Context.EntityMaintenance.GetEntityInfo().Columns.Where(it => whereColumns.Any(x => x == it.PropertyName) || whereColumns.Any(x => x.EqualCase(it.DbColumnName))); @@ -847,7 +833,6 @@ namespace ThingsGateway.SqlSugar cons.ConditionalList = new List>(); if (QueryBuilder.WhereInfos.IsNullOrEmpty() && whereModels.IsNullOrEmpty()) { - } else { @@ -902,7 +887,6 @@ namespace ThingsGateway.SqlSugar /// public ISugarQueryable WhereClass(List whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() { - if (whereClassTypes.HasValue()) { var columns = this.Context.EntityMaintenance.GetEntityInfo().Columns.Where(it => it.IsIgnore == false); @@ -912,7 +896,6 @@ namespace ThingsGateway.SqlSugar var cons = new ConditionalCollections(); foreach (var column in columns) { - var value = column.PropertyInfo.GetValue(item, null); WhereType WhereType = WhereType.And; var isNotNull = ignoreDefaultValue == false && value != null; @@ -924,13 +907,11 @@ namespace ThingsGateway.SqlSugar cons.ConditionalList = new List>(); if (QueryBuilder.WhereInfos.IsNullOrEmpty() && whereModels.IsNullOrEmpty()) { - } else { WhereType = WhereType.Or; } - } var data = new KeyValuePair(WhereType, new ConditionalModel() { @@ -943,13 +924,11 @@ namespace ThingsGateway.SqlSugar { if (this.Context.CurrentConnectionConfig?.MoreSettings?.TableEnumIsString == true) { - } else { data.Value.FieldValue = Convert.ToInt64(value).ObjToString(); } - } else if (value != null && column.PropertyInfo.PropertyType == UtilConstants.DateType) { @@ -958,10 +937,7 @@ namespace ThingsGateway.SqlSugar cons.ConditionalList.Add(data); if (this.Context.CurrentConnectionConfig.DbType == DbType.PostgreSQL) { - data.Value.FieldValueConvertFunc = it => - { - return UtilMethods.ChangeType2(it, value.GetType()); - }; + data.Value.FieldValueConvertFunc = it => UtilMethods.ChangeType2(it, value.GetType()); } } } @@ -1062,7 +1038,6 @@ namespace ThingsGateway.SqlSugar } public virtual ISugarQueryable Having(string whereString, object parameters = null) { - QueryBuilder.HavingInfos = SqlBuilder.AppendHaving(whereString); if (parameters != null) QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters)); @@ -1188,7 +1163,6 @@ namespace ThingsGateway.SqlSugar } } this.Where(string.Format(QueryBuilder.InTemplate, SqlBuilder.GetTranslationColumnName(field), string.Join(",", values))); - } return this; } @@ -1220,9 +1194,6 @@ namespace ThingsGateway.SqlSugar } } - - - public ISugarQueryable InIF(bool isWhere, Expression> expression, ISugarQueryable childQueryExpression) { if (isWhere) @@ -1362,7 +1333,6 @@ namespace ThingsGateway.SqlSugar return this; } - public virtual ISugarQueryable OrderByIF(bool isOrderBy, string orderByFields) { if (isOrderBy) @@ -1708,7 +1678,6 @@ namespace ThingsGateway.SqlSugar } else if (SplitType.Season == type.SplitType) { - var beginSeason = Convert.ToDateTime(beginTime.AddMonths(0 - ((beginTime.Month - 1) % 3)).ToString("yyyy-MM-01")).Date; var endSeason = DateTime.Parse(endTime.AddMonths(3 - ((endTime.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).Date; result = result.Where(y => diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider02-05.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider02-05.cs index d0de2c3d9..7af384661 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider02-05.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider02-05.cs @@ -199,7 +199,6 @@ namespace ThingsGateway.SqlSugar return result; } - public ISugarQueryable LeftJoinIF(bool isJoin, Expression> joinExpression, string tableName) { var result = LeftJoin(joinExpression); @@ -322,7 +321,6 @@ namespace ThingsGateway.SqlSugar /// public new ISugarQueryable WhereClass(List whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() { - base.WhereClass(whereClassTypes, ignoreDefaultValue); return this; } @@ -884,7 +882,6 @@ namespace ThingsGateway.SqlSugar return result; } - public ISugarQueryable InnerJoin(Expression> joinExpression) { this.Context.InitMappingInfo(); @@ -918,7 +915,6 @@ namespace ThingsGateway.SqlSugar var result = RightJoin(joinExpression); result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; return result; - } public ISugarQueryable LeftJoinIF(bool isJoin, Expression> joinExpression, string tableName) @@ -962,7 +958,6 @@ namespace ThingsGateway.SqlSugar return result; } - #region Group public new ISugarQueryable PartitionBy(Expression> expression) { @@ -1294,7 +1289,6 @@ namespace ThingsGateway.SqlSugar /// public new ISugarQueryable WhereClass(List whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() { - base.WhereClass(whereClassTypes, ignoreDefaultValue); return this; } @@ -1861,7 +1855,6 @@ namespace ThingsGateway.SqlSugar /// public new ISugarQueryable WhereClass(List whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() { - base.WhereClass(whereClassTypes, ignoreDefaultValue); return this; } @@ -2179,7 +2172,6 @@ namespace ThingsGateway.SqlSugar return this; } - public ISugarQueryable In(Expression> expression, IReadOnlyList inValues) { QueryBuilder.CheckExpression(expression, "In"); @@ -2212,7 +2204,6 @@ namespace ThingsGateway.SqlSugar return this; } - public ISugarQueryable In(Expression> expression, IReadOnlyList inValues) { QueryBuilder.CheckExpression(expression, "In"); @@ -2230,7 +2221,6 @@ namespace ThingsGateway.SqlSugar } #endregion - #region Other public new ISugarQueryable Take(int num) { @@ -2544,7 +2534,6 @@ namespace ThingsGateway.SqlSugar return result; } - #region Where public new ISugarQueryable Where(string expShortName, FormattableString expressionString) { @@ -2659,7 +2648,6 @@ namespace ThingsGateway.SqlSugar /// public new ISugarQueryable WhereClass(List whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() { - base.WhereClass(whereClassTypes, ignoreDefaultValue); return this; } @@ -3046,7 +3034,6 @@ namespace ThingsGateway.SqlSugar return this; } - public new ISugarQueryable ClearFilter(params Type[] types) { base.ClearFilter(types); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider06-10.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider06-10.cs index b75142b77..73bae9228 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider06-10.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider06-10.cs @@ -306,7 +306,6 @@ namespace ThingsGateway.SqlSugar /// public new ISugarQueryable WhereClass(List whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() { - base.WhereClass(whereClassTypes, ignoreDefaultValue); return this; } @@ -741,7 +740,6 @@ namespace ThingsGateway.SqlSugar return this; } - public new ISugarQueryable ClearFilter(params Type[] types) { base.ClearFilter(types); @@ -1134,7 +1132,6 @@ namespace ThingsGateway.SqlSugar /// public new ISugarQueryable WhereClass(List whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() { - base.WhereClass(whereClassTypes, ignoreDefaultValue); return this; } @@ -1977,7 +1974,6 @@ namespace ThingsGateway.SqlSugar /// public new ISugarQueryable WhereClass(List whereClassTypes, bool ignoreDefaultValue = false) where ClassType : class, new() { - base.WhereClass(whereClassTypes, ignoreDefaultValue); return this; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider11-12.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider11-12.cs index d2be89d2b..e04fea25b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider11-12.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/QueryableProvider/QueryableProvider11-12.cs @@ -691,7 +691,6 @@ namespace ThingsGateway.SqlSugar return this; } - public new ISugarQueryable ClearFilter(params Type[] types) { base.ClearFilter(types); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/Reportable/ReportableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/Reportable/ReportableProvider.cs index fb7df9701..dae374f85 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/Reportable/ReportableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/Reportable/ReportableProvider.cs @@ -49,7 +49,6 @@ namespace ThingsGateway.SqlSugar { if (typeof(T).IsClass()) { - var result = (T)Activator.CreateInstance(typeof(T), true); datas = new List() { result }; ClassMethod(result, sb, true); @@ -112,7 +111,6 @@ namespace ThingsGateway.SqlSugar private string GetSelect(EntityColumnInfo it, Y data) { - return string.Format(" {0} AS {1} ", FormatValue(it.PropertyInfo.GetValue(data, null), it), queryBuilder.Builder.GetTranslationColumnName(it.PropertyName)); } @@ -280,6 +278,5 @@ namespace ThingsGateway.SqlSugar return formatBuilder.FormatValue(value); } } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/SaveableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/SaveableProvider.cs index 953e8a231..5ab95b707 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/SaveableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/SaveableProvider.cs @@ -29,7 +29,7 @@ namespace ThingsGateway.SqlSugar var pks = GetPrimaryKeys(); Check.Exception(pks.IsNullOrEmpty(), "Need primary key"); Check.Exception(pks.Count > 1, "Multiple primary keys are not supported"); - var pkInfo = this.EntityInfo.Columns.Where(it => it.IsIgnore == false).Where(it => it.DbColumnName.Equals(pks.First(), StringComparison.CurrentCultureIgnoreCase)).First(); + var pkInfo = this.EntityInfo.Columns.Where(it => it.IsIgnore == false).Where(it => it.DbColumnName.Equals(pks[0], StringComparison.CurrentCultureIgnoreCase)).First(); var pkValues = saveObjects.Select(it => it.GetType().GetProperty(pkInfo.PropertyName).GetValue(it, null)); if (existsObjects == null) existsObjects = this.Context.Queryable().In([pkValues]).ToList(); @@ -51,7 +51,7 @@ namespace ThingsGateway.SqlSugar var pks = GetPrimaryKeys(); Check.Exception(pks.IsNullOrEmpty(), "Need primary key"); Check.Exception(pks.Count > 1, "Multiple primary keys are not supported"); - var pkInfo = this.EntityInfo.Columns.Where(it => it.IsIgnore == false).Where(it => it.DbColumnName.Equals(pks.First(), StringComparison.CurrentCultureIgnoreCase)).First(); + var pkInfo = this.EntityInfo.Columns.Where(it => it.IsIgnore == false).Where(it => it.DbColumnName.Equals(pks[0], StringComparison.CurrentCultureIgnoreCase)).First(); var pkValues = saveObjects.Select(it => it.GetType().GetProperty(pkInfo.PropertyName).GetValue(it, null)); if (existsObjects == null) existsObjects = this.Context.Queryable().In([pkValues]).ToList(); @@ -99,7 +99,7 @@ namespace ThingsGateway.SqlSugar LoadUpdateable(); insertable?.ExecuteCommandIdentityIntoEntity(); updateable?.ExecuteCommand(); - return saveObjects.First(); + return saveObjects[0]; } public List ExecuteReturnList() @@ -192,7 +192,5 @@ namespace ThingsGateway.SqlSugar if (updateable == null && temp.HasValue()) updateable = this.Context.Updateable(temp); } - - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/Storageable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/Storageable.cs index 659ba78aa..b686bf838 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/Storageable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/Storageable.cs @@ -8,7 +8,7 @@ namespace ThingsGateway.SqlSugar SqlSugarProvider Context { get; set; } internal ISqlBuilder Builder; List Parameters; - List> allDatas = new List>(); + IEnumerable> allDatas; List dbDataList = new List(); List, bool>, string>> whereFuncs = new List, bool>, string>>(); Expression> whereExpression; @@ -16,7 +16,7 @@ namespace ThingsGateway.SqlSugar DbLockType? lockType; private string asname { get; set; } private bool isDisableFilters = false; - public Storageable(IReadOnlyList datas, SqlSugarProvider context) + public Storageable(IEnumerable datas, SqlSugarProvider context) { this.Context = context; if (datas == null) @@ -24,7 +24,7 @@ namespace ThingsGateway.SqlSugar this.allDatas = datas.Select(it => new StorageableInfo() { Item = it - }).ToList(); + }); } Expression> queryableWhereExp; @@ -132,7 +132,6 @@ namespace ThingsGateway.SqlSugar var defaultValue = UtilMethods.GetDefaultValue(column.PropertyInfo.PropertyType); var result = itemPkValue != null && itemPkValue.ObjToString() != defaultValue.ObjToString(); return result; - }).SplitInsert(it => true); } @@ -210,7 +209,7 @@ namespace ThingsGateway.SqlSugar { return this.Saveable().ToStorage(); } - if (this.allDatas.Count == 0) + if (!this.allDatas.Any()) return new StorageableResult() { AsDeleteable = this.Context.Deleteable().AS(asname).Where(it => false), @@ -299,7 +298,7 @@ namespace ThingsGateway.SqlSugar { return this.Saveable().GetStorageableResult(); } - if (this.allDatas.Count == 0) + if (!this.allDatas.Any()) return new StorageableResult() { //AsDeleteable = this.Context.Deleteable().AS(asname).Where(it => false), @@ -381,7 +380,7 @@ namespace ThingsGateway.SqlSugar { return await Saveable().ToStorageAsync().ConfigureAwait(false); } - if (this.allDatas.Count == 0) + if (!this.allDatas.Any()) return new StorageableResult() { AsDeleteable = this.Context.Deleteable().AS(asname).Where(it => false), @@ -457,7 +456,6 @@ namespace ThingsGateway.SqlSugar return result; } - private string[] GetPkProperties(IEnumerable pkInfos) { if (whereExpression == null) @@ -477,7 +475,6 @@ namespace ThingsGateway.SqlSugar } public IStorageable WhereColumns(Expression> columns) { - if (columns == null) return this; else if (asname == null && typeof(T).GetCustomAttribute() != null) @@ -523,7 +520,6 @@ namespace ThingsGateway.SqlSugar } } - public IStorageable WhereColumns(string[] columns) { var list = columns.Select(it => this.Context.EntityMaintenance.GetPropertyName(it)).ToList(); @@ -537,7 +533,6 @@ namespace ThingsGateway.SqlSugar } private void SetConditList(List> itemList, List whereColumns, List conditList) { - foreach (var dataItem in itemList) { var condition = new ConditionalCollections() diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableDataTable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableDataTable.cs index 6df458dc9..fab40ab7e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableDataTable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableDataTable.cs @@ -163,7 +163,6 @@ namespace ThingsGateway.SqlSugar } private void SetConditList(List itemList, IReadOnlyList whereColumns, List conditList) { - foreach (var dataItem in itemList) { var condition = new ConditionalCollections() @@ -215,7 +214,6 @@ namespace ThingsGateway.SqlSugar var result = true; foreach (var name in columns) { - if (result) { result = row[name].ObjToString() == it[name].ObjToString(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageablePage.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageablePage.cs index 39fc9d2bb..e547699b5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageablePage.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageablePage.cs @@ -15,7 +15,7 @@ namespace ThingsGateway.SqlSugar public int ExecuteCommand() { - if (Data.Count == 1 && Data.First() == null) + if (Data.Count == 1 && Data[0] == null) { return 0; } @@ -55,7 +55,7 @@ namespace ThingsGateway.SqlSugar { if (cancellationToken != null) this.Context.Ado.CancellationToken = cancellationToken.Value; - if (Data.Count == 1 && Data.First() == null) + if (Data.Count == 1 && Data[0] == null) { return 0; } @@ -93,7 +93,7 @@ namespace ThingsGateway.SqlSugar } public int ExecuteSqlBulkCopy() { - if (Data.Count == 1 && Data.First() == null) + if (Data.Count == 1 && Data[0] == null) { return 0; } @@ -102,7 +102,6 @@ namespace ThingsGateway.SqlSugar var isNoTran = this.Context.Ado.IsNoTran(); try { - this.Context.Utilities.PageEach(Data, PageSize, pageItem => { result += this.Context.Storageable(pageItem).As(TableName).TranLock(lockType).WhereColumns(whereExpression).ExecuteSqlBulkCopy(); @@ -122,7 +121,7 @@ namespace ThingsGateway.SqlSugar { if (cancellationToken != null) this.Context.Ado.CancellationToken = cancellationToken.Value; - if (Data.Count == 1 && Data.First() == null) + if (Data.Count == 1 && Data[0] == null) { return 0; } @@ -146,6 +145,5 @@ namespace ThingsGateway.SqlSugar } return result; } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableSplitProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableSplitProvider.cs index debebab9b..27e009190 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableSplitProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableSplitProvider.cs @@ -23,10 +23,7 @@ namespace ThingsGateway.SqlSugar if (List.Count > pageSize) { var result = 0; - this.Context.Utilities.PageEach(List, pageSize, pageItem => - { - result += _ExecuteCommand(pageItem); - }); + this.Context.Utilities.PageEach(List, pageSize, pageItem => result += _ExecuteCommand(pageItem)); return result; } else @@ -34,17 +31,13 @@ namespace ThingsGateway.SqlSugar var list = List; return _ExecuteCommand(list); } - } public int ExecuteSqlBulkCopy() { if (List.Count > pageSize) { var result = 0; - this.Context.Utilities.PageEach(List, pageSize, pageItem => - { - result += _ExecuteSqlBulkCopy(pageItem); - }); + this.Context.Utilities.PageEach(List, pageSize, pageItem => result += _ExecuteSqlBulkCopy(pageItem)); return result; } else @@ -52,10 +45,8 @@ namespace ThingsGateway.SqlSugar var list = List; return _ExecuteSqlBulkCopy(list); } - } - public async Task ExecuteCommandAsync() { if (List.Count > pageSize) @@ -99,16 +90,14 @@ namespace ThingsGateway.SqlSugar } } - - private async Task _ExecuteCommandAsync(List list) + private async Task _ExecuteCommandAsync(IEnumerable list) { int resultValue = 0; - List groupModels; - int result; - GroupDataList(list, out groupModels, out result); + var groupModels = GroupDataList(list); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { - var addList = item.Select(it => it.Item).ToList(); + CreateTable(item.Key); + var addList = item.Select(it => it.Item); resultValue += await Context.Storageable(addList).As(item.Key).WhereColumns(whereExpression).ExecuteCommandAsync().ConfigureAwait(false); if (ActionCallBack != null) { @@ -117,29 +106,28 @@ namespace ThingsGateway.SqlSugar } return resultValue; } - private int _ExecuteCommand(List list) + private int _ExecuteCommand(IEnumerable list) { int resultValue = 0; - List groupModels; - int result; - GroupDataList(list, out groupModels, out result); + + var groupModels = GroupDataList(list); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { - var addList = item.Select(it => it.Item).ToList(); + CreateTable(item.Key); + var addList = item.Select(it => it.Item); resultValue += this.Context.Storageable(addList).As(item.Key).WhereColumns(whereExpression).ExecuteCommand(); } return resultValue; } - private async Task _ExecuteSqlBulkCopyAsync(List list) + private async Task _ExecuteSqlBulkCopyAsync(IEnumerable list) { int resultValue = 0; - List groupModels; - int result; - GroupDataList(list, out groupModels, out result); + var groupModels = GroupDataList(list); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { - var addList = item.Select(it => it.Item).ToList(); + CreateTable(item.Key); + var addList = item.Select(it => it.Item); resultValue += await Context.Storageable(addList).As(item.Key).WhereColumns(whereExpression).ExecuteSqlBulkCopyAsync().ConfigureAwait(false); if (ActionCallBack != null) { @@ -148,55 +136,53 @@ namespace ThingsGateway.SqlSugar } return resultValue; } - private int _ExecuteSqlBulkCopy(List list) + private int _ExecuteSqlBulkCopy(IEnumerable list) { int resultValue = 0; - List groupModels; - int result; - GroupDataList(list, out groupModels, out result); + + var groupModels = GroupDataList(list); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { - var addList = item.Select(it => it.Item).ToList(); + CreateTable(item.Key); + var addList = item.Select(it => it.Item); resultValue += this.Context.Storageable(addList).As(item.Key).WhereColumns(whereExpression).ExecuteSqlBulkCopy(); } return resultValue; } - private void GroupDataList(List datas, out List groupModels, out int result) + private IEnumerable GroupDataList(IEnumerable datas) { var attribute = typeof(T).GetCustomAttribute() as SplitTableAttribute; Check.Exception(attribute == null, $"{typeof(T).Name} need SplitTableAttribute"); - groupModels = new List(); + var db = this.Context; var context = db.SplitHelper(); + foreach (var item in datas) { var value = context.GetValue(attribute.SplitType, item); var tableName = context.GetTableName(attribute.SplitType, value); - groupModels.Add(new GroupModel() { GroupName = tableName, Item = item }); + yield return new GroupModel { GroupName = tableName, Item = item }; } - var tablenames = groupModels.Select(it => it.GroupName).Distinct().ToList(); - CreateTable(tablenames); - result = 0; } - private void CreateTable(List tableNames) + + /// 创建分表 + private void CreateTable(string tableName) { - var isLog = this.Context.Ado.IsEnableLogEvent; - this.Context.Ado.IsEnableLogEvent = false; - foreach (var item in tableNames) + if (tableName != null) { - if (!this.Context.DbMaintenance.IsAnyTable(item, false)) + var isLog = this.Context.Ado.IsEnableLogEvent; + this.Context.Ado.IsEnableLogEvent = false; + if (!this.Context.DbMaintenance.IsAnyTable(tableName, false)) { - if (item != null) - { - this.Context.MappingTables.Add(EntityInfo.EntityName, item); - this.Context.CodeFirst.InitTables(); - } + this.Context.MappingTables.Add(EntityInfo.EntityName, tableName); + this.Context.CodeFirst.InitTables(); } + this.Context.Ado.IsEnableLogEvent = isLog; + this.Context.MappingTables.Add(EntityInfo.EntityName, EntityInfo.DbTableName); } - this.Context.Ado.IsEnableLogEvent = isLog; - this.Context.MappingTables.Add(EntityInfo.EntityName, EntityInfo.DbTableName); } + internal class GroupModel { public string GroupName { get; set; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/InsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/InsertBuilder.cs index 7387c7e81..bd517568a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/InsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/InsertBuilder.cs @@ -55,7 +55,6 @@ namespace ThingsGateway.SqlSugar ({1}) VALUES ({2}) ;"; - } } } @@ -110,7 +109,6 @@ namespace ThingsGateway.SqlSugar } public virtual void Clear() { - } public virtual string GetTableNameString { @@ -164,7 +162,7 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => this.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName))); @@ -371,7 +369,6 @@ namespace ThingsGateway.SqlSugar this.Parameters.Add(p); GetDbColumnIndex++; return pname; - } else { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/QueryBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/QueryBuilder.cs index f7961e312..09375f7cf 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/QueryBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/QueryBuilder.cs @@ -7,7 +7,6 @@ namespace ThingsGateway.SqlSugar { public abstract class QueryBuilder : IDMLBuilder { - public QueryBuilder() { this.Parameters = new List(); @@ -707,7 +706,6 @@ namespace ThingsGateway.SqlSugar } if (joinInfo.JoinType == JoinType.Cross) { - var onIndex = result.IndexOf(" ON "); result = result.Substring(0, onIndex); } @@ -757,10 +755,7 @@ namespace ThingsGateway.SqlSugar protected virtual string ReplaceHints(string result) { - result = Regex.Replace(result, "^SELECT ", it => - { - return $"{it} {Hints} "; - }); + result = Regex.Replace(result, "^SELECT ", it => $"{it} {Hints} "); return result; } @@ -1055,7 +1050,6 @@ namespace ThingsGateway.SqlSugar } if (this.EasyJoinInfos.IsValuable()) { - if (this.TableWithString.HasValue() && this.TableWithString != SqlWith.Null) { result += "," + string.Join(",", this.EasyJoinInfos.Select(it => string.Format("{0} {1} {2} ", GetTableName(it.Value), " " + Builder.GetTranslationColumnName(it.Key.ObjToString().Trim()), TableWithString))); @@ -1093,7 +1087,6 @@ namespace ThingsGateway.SqlSugar } } - #endregion #region NoCopy diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs index 12f56c4b3..4a2ca6e78 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs @@ -34,7 +34,6 @@ namespace ThingsGateway.SqlSugar } public virtual void ChangeJsonType(SugarParameter paramter) { - } public virtual string GetTranslationTableName(string name) { @@ -119,7 +118,6 @@ namespace ThingsGateway.SqlSugar return "t"; } - public string GetWhere(string fieldName, string conditionalType, int? parameterIndex = null) { return string.Format(" {0} {1} {2}{3} ", this.GetTranslationColumnName(fieldName), conditionalType, this.SqlParameterKeyWord, fieldName.Replace(".", "_") + parameterIndex); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlBuilderProvider_Condition.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlBuilderProvider_Condition.cs index 66d75fbc4..898a2c985 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlBuilderProvider_Condition.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlBuilderProvider_Condition.cs @@ -148,7 +148,6 @@ namespace ThingsGateway.SqlSugar if (models.IndexOf(item) == 0 && index == 0 && beginIndex == 0) { builder.AppendFormat(" ( "); - } else if (isFirst) { @@ -159,7 +158,6 @@ namespace ThingsGateway.SqlSugar var childSqlInfo = ConditionalModelToSql(conModels, 1000 * (1 + index) + models.IndexOf(item)); if (!isFirst && con.Value.FieldName != $"[value=sql{UtilConstants.ReplaceKey}]") { - builder.AppendFormat(" {0} ", con.Key.ToString().ToUpper()); } builder.Append(childSqlInfo.Key); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlQueryBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlQueryBuilder.cs index 2931e5779..84e3d2514 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlQueryBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/SqlQueryBuilder.cs @@ -5,7 +5,6 @@ namespace ThingsGateway.SqlSugar { public class SqlQueryBuilder : IDMLBuilder { - #region Fields private string _Fields; private StringBuilder _Sql; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs index 65e8eceb6..ef45a46c0 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs @@ -46,7 +46,6 @@ namespace ThingsGateway.SqlSugar { return @"UPDATE {0} SET {1} {2}"; - } } @@ -95,7 +94,6 @@ namespace ThingsGateway.SqlSugar public virtual void Clear() { - } public virtual string GetTableNameString { @@ -119,7 +117,6 @@ namespace ThingsGateway.SqlSugar } } - public virtual ExpressionResult GetExpressionValue(Expression expression, ResolveExpressType resolveType, bool isMapping = true) { ILambdaExpressions resolveExpress = this.LambdaExpressions; @@ -176,7 +173,6 @@ namespace ThingsGateway.SqlSugar { return it.Value.ObjToString() != UtilMethods.DefaultForType(it.PropertyType).ObjToString(); } - }).ToList(); } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); @@ -203,7 +199,7 @@ namespace ThingsGateway.SqlSugar while (pageCount >= pageIndex) { StringBuilder updateTable = new StringBuilder(); - string setValues = string.Join(",", groupList.First().Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => + string setValues = string.Join(",", groupList[0].Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => { if (SetValues.IsValuable()) { @@ -256,7 +252,7 @@ namespace ThingsGateway.SqlSugar protected virtual string ToSingleSqlString(List> groupList) { - string columnsString = string.Join(",", groupList.First().Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => + string columnsString = string.Join(",", groupList[0].Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => { if (SetValues.IsValuable()) { @@ -564,7 +560,6 @@ namespace ThingsGateway.SqlSugar this.Parameters.Add(p); GetDbColumnIndex++; return pname; - } else { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarAccessory.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarAccessory.cs index a73a2327e..a93ffae07 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarAccessory.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarAccessory.cs @@ -41,7 +41,6 @@ namespace ThingsGateway.SqlSugar } } - #endregion #region Fields @@ -607,7 +606,7 @@ namespace ThingsGateway.SqlSugar var isNoPgAuto = this.Context.CurrentConnectionConfig.MoreSettings?.PgSqlIsAutoToLower == false; if (isFirst) { - var firstItem = lambdaParameters.First(); + var firstItem = lambdaParameters[0]; lambdaParameters.Remove(firstItem); shortName = firstItem.Name; if (isNoPgAuto) @@ -662,7 +661,7 @@ namespace ThingsGateway.SqlSugar { Dictionary result = new Dictionary(); var lambdaParameters = ((LambdaExpression)joinExpression).Parameters.ToList(); - shortName = lambdaParameters.First().Name; + shortName = lambdaParameters[0].Name; var isNoPgAuto = this.Context.CurrentConnectionConfig.MoreSettings?.PgSqlIsAutoToLower == false; var index = 1; foreach (var item in entityTypeArray) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarCoreProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarCoreProvider.cs index e08d55de3..cebf9b160 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarCoreProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarCoreProvider.cs @@ -78,6 +78,5 @@ namespace ThingsGateway.SqlSugar { return _configs.Select(it => UtilMethods.CopyConfig(it)).ToList(); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarProvider.cs index acb39b1ae..b7eac6813 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarProvider.cs @@ -13,7 +13,6 @@ namespace ThingsGateway.SqlSugar /// public partial class SqlSugarProvider : ISqlSugarClient { - #region Constructor public SqlSugarProvider(ConnectionConfig config) { @@ -121,7 +120,6 @@ namespace ThingsGateway.SqlSugar /// public virtual ISugarQueryable Queryable() { - InitMappingInfo(); var result = this.CreateQueryable(); UtilMethods.AddDiscrimator(typeof(T), result); @@ -496,7 +494,6 @@ namespace ThingsGateway.SqlSugar return queryable; } - public virtual ISugarQueryable Queryable( ISugarQueryable joinQueryable1, ISugarQueryable joinQueryable2, ISugarQueryable joinQueryable3, JoinType joinType1, Expression> joinExpression1, @@ -539,7 +536,6 @@ namespace ThingsGateway.SqlSugar var exp = queryable.QueryBuilder.GetExpressionValue(joinExpression1, ResolveExpressType.WhereMultiple); queryable.QueryBuilder.JoinQueryInfos.Add(new JoinQueryInfo() { JoinIndex = 0, JoinType = joinType1, JoinWhere = exp.GetResultString(), TableName = sqlBuilder.GetPackTable(sql2, shortName2) }); - //join table 2 var shortName3 = joinExpression1.Parameters[2].Name; var sqlObj3 = joinQueryable3.ToSql(); @@ -594,7 +590,6 @@ namespace ThingsGateway.SqlSugar var exp = queryable.QueryBuilder.GetExpressionValue(joinExpression1, ResolveExpressType.WhereMultiple); queryable.QueryBuilder.JoinQueryInfos.Add(new JoinQueryInfo() { JoinIndex = 0, JoinType = joinType1, JoinWhere = exp.GetResultString(), TableName = sqlBuilder.GetPackTable(sql2, shortName2) }); - //join table 2 var shortName3 = joinExpression1.Parameters[2].Name; var sqlObj3 = joinQueryable3.ToSql(); @@ -617,8 +612,6 @@ namespace ThingsGateway.SqlSugar } #endregion - - internal ISugarQueryable _UnionAll(IReadOnlyList> queryables) { var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig); @@ -669,7 +662,6 @@ namespace ThingsGateway.SqlSugar public virtual ISugarQueryable Union(IReadOnlyList> queryables) where T : class { - var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig); Check.Exception(queryables.IsNullOrEmpty(), "UnionAll.queryables is null "); int i = 1; @@ -983,7 +975,6 @@ namespace ThingsGateway.SqlSugar } public virtual IUpdateable UpdateableT(T UpdateObj) where T : class, new() { - return this.Context.Updateable(new T[] { UpdateObj }); } public virtual IUpdateable Updateable() where T : class, new() @@ -1065,7 +1056,7 @@ namespace ThingsGateway.SqlSugar { return new SaveableProvider(this, saveObject); } - public StorageableDataTable Storageable(List> dictionaryList, string tableName) + public StorageableDataTable Storageable(IEnumerable> dictionaryList, string tableName) { DataTable dt = this.Context.Utilities.DictionaryListToDataTable(dictionaryList); dt.TableName = tableName; @@ -1077,9 +1068,9 @@ namespace ThingsGateway.SqlSugar dt.TableName = tableName; return this.Context.Storageable(dt); } - public IStorageable Storageable(IReadOnlyList dataList) where T : class, new() + public IStorageable Storageable(IEnumerable dataList) where T : class, new() { - dataList = dataList.Where(it => it != null).ToList(); + dataList = dataList.Where(it => it != null); this.InitMappingInfo(); var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig); var result = new Storageable(dataList, this); @@ -1122,7 +1113,7 @@ namespace ThingsGateway.SqlSugar var methods = this.Context.GetType().GetMethods() .Where(it => it.Name == "Storageable") .Where(it => it.GetGenericArguments().Length != 0) - .Where(it => it.GetParameters().Any(z => z.ParameterType.Name.StartsWith("IReadOnlyList"))) + .Where(it => it.GetParameters().Any(z => z.ParameterType.Name.StartsWith("IEnumerable"))) .Where(it => it.Name == "Storageable"); var method = methods.Single().MakeGenericMethod(newList.GetType().GetGenericArguments().First()); StorageableMethodInfo result = new StorageableMethodInfo() @@ -1406,68 +1397,68 @@ namespace ThingsGateway.SqlSugar #region Queue public int SaveQueues(bool isTran = true) { - return SaveQueuesProvider(isTran, (sql, parameters) => { return this.Ado.ExecuteCommand(sql, parameters); }); + return SaveQueuesProvider(isTran, (sql, parameters) => this.Ado.ExecuteCommand(sql, parameters)); } public async Task SaveQueuesAsync(bool isTran = true) { - return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return Ado.ExecuteCommandAsync(sql, parameters); }).ConfigureAwait(false); + return await SaveQueuesProviderAsync(isTran, (sql, parameters) => Ado.ExecuteCommandAsync(sql, parameters)).ConfigureAwait(false); } public List SaveQueues(bool isTran = true) { - return SaveQueuesProvider(isTran, (sql, parameters) => { return this.Ado.SqlQuery(sql, parameters); }); + return SaveQueuesProvider(isTran, (sql, parameters) => this.Ado.SqlQuery(sql, parameters)); } public async Task> SaveQueuesAsync(bool isTran = true) { - return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return Ado.SqlQueryAsync(sql, parameters); }).ConfigureAwait(false); + return await SaveQueuesProviderAsync(isTran, (sql, parameters) => Ado.SqlQueryAsync(sql, parameters)).ConfigureAwait(false); } public Tuple, List> SaveQueues(bool isTran = true) { - return SaveQueuesProvider(isTran, (sql, parameters) => { return this.Ado.SqlQuery(sql, parameters); }); + return SaveQueuesProvider(isTran, (sql, parameters) => this.Ado.SqlQuery(sql, parameters)); } public async Task, List>> SaveQueuesAsync(bool isTran = true) { - return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return Ado.SqlQueryAsync(sql, parameters); }).ConfigureAwait(false); + return await SaveQueuesProviderAsync(isTran, (sql, parameters) => Ado.SqlQueryAsync(sql, parameters)).ConfigureAwait(false); } public Tuple, List, List> SaveQueues(bool isTran = true) { - return SaveQueuesProvider(isTran, (sql, parameters) => { return this.Ado.SqlQuery(sql, parameters); }); + return SaveQueuesProvider(isTran, (sql, parameters) => this.Ado.SqlQuery(sql, parameters)); } public async Task, List, List>> SaveQueuesAsync(bool isTran = true) { - return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return Ado.SqlQueryAsync(sql, parameters); }).ConfigureAwait(false); + return await SaveQueuesProviderAsync(isTran, (sql, parameters) => Ado.SqlQueryAsync(sql, parameters)).ConfigureAwait(false); } public Tuple, List, List, List> SaveQueues(bool isTran = true) { - return SaveQueuesProvider(isTran, (sql, parameters) => { return this.Ado.SqlQuery(sql, parameters); }); + return SaveQueuesProvider(isTran, (sql, parameters) => this.Ado.SqlQuery(sql, parameters)); } public async Task, List, List, List>> SaveQueuesAsync(bool isTran = true) { - return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return Ado.SqlQueryAsync(sql, parameters); }).ConfigureAwait(false); + return await SaveQueuesProviderAsync(isTran, (sql, parameters) => Ado.SqlQueryAsync(sql, parameters)).ConfigureAwait(false); } public Tuple, List, List, List, List> SaveQueues(bool isTran = true) { - return SaveQueuesProvider(isTran, (sql, parameters) => { return this.Ado.SqlQuery(sql, parameters); }); + return SaveQueuesProvider(isTran, (sql, parameters) => this.Ado.SqlQuery(sql, parameters)); } public async Task, List, List, List, List>> SaveQueuesAsync(bool isTran = true) { - return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return Ado.SqlQueryAsync(sql, parameters); }).ConfigureAwait(false); + return await SaveQueuesProviderAsync(isTran, (sql, parameters) => Ado.SqlQueryAsync(sql, parameters)).ConfigureAwait(false); } public Tuple, List, List, List, List, List> SaveQueues(bool isTran = true) { - return SaveQueuesProvider(isTran, (sql, parameters) => { return this.Ado.SqlQuery(sql, parameters); }); + return SaveQueuesProvider(isTran, (sql, parameters) => this.Ado.SqlQuery(sql, parameters)); } public async Task, List, List, List, List, List>> SaveQueuesAsync(bool isTran = true) { - return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return Ado.SqlQueryAsync(sql, parameters); }).ConfigureAwait(false); + return await SaveQueuesProviderAsync(isTran, (sql, parameters) => Ado.SqlQueryAsync(sql, parameters)).ConfigureAwait(false); } public Tuple, List, List, List, List, List, List> SaveQueues(bool isTran = true) { - return SaveQueuesProvider(isTran, (sql, parameters) => { return this.Ado.SqlQuery(sql, parameters); }); + return SaveQueuesProvider(isTran, (sql, parameters) => this.Ado.SqlQuery(sql, parameters)); } public async Task, List, List, List, List, List, List>> SaveQueuesAsync(bool isTran = true) { - return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return Ado.SqlQueryAsync(sql, parameters); }).ConfigureAwait(false); + return await SaveQueuesProviderAsync(isTran, (sql, parameters) => Ado.SqlQueryAsync(sql, parameters)).ConfigureAwait(false); } public void AddQueue(string sql, object parsmeters = null) { @@ -1487,7 +1478,6 @@ namespace ThingsGateway.SqlSugar } } this.Queues.Add(sql, pars); - } public void AddQueue(string sql, SugarParameter parsmeter) { @@ -1507,8 +1497,6 @@ namespace ThingsGateway.SqlSugar } public QueueList Queues { get { if (_Queues == null) { _Queues = new QueueList(); } return _Queues; } set { _Queues = value; } } - - private async Task SaveQueuesProviderAsync(bool isTran, Func, Task> func) { try @@ -1815,18 +1803,12 @@ namespace ThingsGateway.SqlSugar } public void ThenMapper(IEnumerable list, Action action) { - this.Context.Utilities.PageEach(list, 200, pageList => - { - _ThenMapper(pageList, action); - }); + this.Context.Utilities.PageEach(list, 200, pageList => _ThenMapper(pageList, action)); } public async Task ThenMapperAsync(IEnumerable list, Func action) { - await Context.Utilities.PageEachAsync(list, 200, async pageList => - { - await _ThenMapperAsync(pageList, action).ConfigureAwait(false); - }).ConfigureAwait(false); + await Context.Utilities.PageEachAsync(list, 200, async pageList => await _ThenMapperAsync(pageList, action).ConfigureAwait(false)).ConfigureAwait(false); } #endregion } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarScopeProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarScopeProvider.cs index b0098fec9..b89cabcfc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarScopeProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarScopeProvider.cs @@ -45,7 +45,6 @@ namespace ThingsGateway.SqlSugar } else { - return result; } } @@ -69,7 +68,6 @@ namespace ThingsGateway.SqlSugar } else { - return result; } } @@ -154,7 +152,6 @@ namespace ThingsGateway.SqlSugar public SugarCacheProvider DataCache => ScopedContext.DataCache; - public void AddQueue(string sql, object parsmeters = null) { ScopedContext.AddQueue(sql, parsmeters); @@ -170,7 +167,6 @@ namespace ThingsGateway.SqlSugar ScopedContext.AddQueue(sql, parsmeter); } - public void Close() { ScopedContext.Close(); @@ -278,8 +274,6 @@ namespace ThingsGateway.SqlSugar return ScopedContext.InsertableT(insertObj); } - - public void Open() { ScopedContext.Open(); @@ -605,7 +599,7 @@ namespace ThingsGateway.SqlSugar return ScopedContext.SqlQueryable(sql); } - public StorageableDataTable Storageable(List> dictionaryList, string tableName) + public StorageableDataTable Storageable(IEnumerable> dictionaryList, string tableName) { return ScopedContext.Storageable(dictionaryList, tableName); } @@ -614,7 +608,7 @@ namespace ThingsGateway.SqlSugar return ScopedContext.Storageable(dictionary, tableName); } - public IStorageable Storageable(IReadOnlyList dataList) where T : class, new() + public IStorageable Storageable(IEnumerable dataList) where T : class, new() { return ScopedContext.Storageable(dataList); } @@ -637,14 +631,11 @@ namespace ThingsGateway.SqlSugar return ScopedContext.Union(queryables); } - - public ISugarQueryable UnionAll(IReadOnlyList> queryables) where T : class { return ScopedContext.UnionAll(queryables); } - public UpdateExpressionMethodInfo UpdateableByObject(Type entityType) { return ScopedContext.UpdateableByObject(entityType); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/ParameterUpdateable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/ParameterUpdateable.cs index f74891d5c..72d3a5a8d 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/ParameterUpdateable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/ParameterUpdateable.cs @@ -41,7 +41,6 @@ namespace ThingsGateway.SqlSugar return result < 0 ? count : result; } - private void Before(List updateObjects) { if (this.Updateable.IsEnableDiffLogEvent && updateObjects.Count > 0) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/SplitTableUpdateByObjectProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/SplitTableUpdateByObjectProvider.cs index f8382cd27..8554d88fe 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/SplitTableUpdateByObjectProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/SplitTableUpdateByObjectProvider.cs @@ -15,9 +15,8 @@ namespace ThingsGateway.SqlSugar public int ExecuteCommandWithOptLock(bool isThrowError = false) { - List groupModels; - int result; - GroupDataList(UpdateObjects, out groupModels, out result); + int result = 0; + var groupModels = GroupDataList(UpdateObjects); var dataEvent = this.Context.CurrentConnectionConfig.AopEvents?.DataExecuting; this.Context.Aop.DataExecuting = null; foreach (var item in groupModels.GroupBy(it => it.GroupName)) @@ -25,8 +24,8 @@ namespace ThingsGateway.SqlSugar var addList = item.Select(it => it.Item).ToList(); if (IsVersion()) { - Check.ExceptionEasy(addList.Count > 1, "The version number can only be used for single record updates", "版本号只能用于单条记录更新"); - result += this.Context.UpdateableT(addList.First()) + //Check.ExceptionEasy(addList.Count > 1, "The version number can only be used for single record updates", "版本号只能用于单条记录更新"); + result += this.Context.UpdateableT(addList[0]) .WhereColumns(this.WhereColumns) .EnableDiffLogEventIF(this.IsEnableDiffLogEvent, this.BusinessData) .UpdateColumns(updateobj.UpdateBuilder.UpdateColumns) @@ -48,9 +47,8 @@ namespace ThingsGateway.SqlSugar } public int ExecuteCommand() { - List groupModels; - int result; - GroupDataList(UpdateObjects, out groupModels, out result); + int result = 0; + var groupModels = GroupDataList(UpdateObjects); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { var addList = item.Select(it => it.Item).ToList(); @@ -67,12 +65,11 @@ namespace ThingsGateway.SqlSugar return result; } - public async Task ExecuteCommandAsync() { - List groupModels; - int result; - GroupDataList(UpdateObjects, out groupModels, out result); + int result = 0; + + var groupModels = GroupDataList(UpdateObjects); foreach (var item in groupModels.GroupBy(it => it.GroupName)) { var addList = item.Select(it => it.Item).ToList(); @@ -90,9 +87,9 @@ namespace ThingsGateway.SqlSugar } public async Task ExecuteCommandWithOptLockAsync(bool isThrowError = false) { - List groupModels; - int result; - GroupDataList(UpdateObjects, out groupModels, out result); + int result = 0; + + var groupModels = GroupDataList(UpdateObjects); var dataEvent = this.Context.CurrentConnectionConfig.AopEvents?.DataExecuting; this.Context.Aop.DataExecuting = null; foreach (var item in groupModels.GroupBy(it => it.GroupName)) @@ -100,14 +97,13 @@ namespace ThingsGateway.SqlSugar var addList = item.Select(it => it.Item).ToList(); if (IsVersion()) { - Check.ExceptionEasy(addList.Count > 1, "The version number can only be used for single record updates", "版本号只能用于单条记录更新"); - result += await Context.UpdateableT(addList.First()) + //Check.ExceptionEasy(addList.Count > 1, "The version number can only be used for single record updates", "版本号只能用于单条记录更新"); + result += await Context.UpdateableT(addList[0]) .WhereColumns(WhereColumns) .EnableDiffLogEventIF(IsEnableDiffLogEvent, BusinessData) .UpdateColumns(updateobj.UpdateBuilder.UpdateColumns) .IgnoreColumns(updateobj.UpdateBuilder.IsNoUpdateNull, updateobj.UpdateBuilder.IsOffIdentity, updateobj.UpdateBuilder.IsNoUpdateDefaultValue) .IgnoreColumns(GetIgnoreColumns()).AS(item.Key).ExecuteCommandWithOptLockAsync(isThrowError).ConfigureAwait(false); - } else { @@ -135,21 +131,22 @@ namespace ThingsGateway.SqlSugar return null; } } - private void GroupDataList(IReadOnlyList datas, out List groupModels, out int result) + private IEnumerable GroupDataList(IEnumerable datas) { var attribute = typeof(T).GetCustomAttribute() as SplitTableAttribute; Check.Exception(attribute == null, $"{typeof(T).Name} need SplitTableAttribute"); - groupModels = new List(); + var db = this.Context; var context = db.SplitHelper(); + foreach (var item in datas) { var value = context.GetValue(attribute.SplitType, item); var tableName = context.GetTableName(attribute.SplitType, value); - groupModels.Add(new GroupModel() { GroupName = tableName, Item = item }); + yield return new GroupModel { GroupName = tableName, Item = item }; } - result = 0; } + private bool IsVersion() { return this.Context.EntityMaintenance.GetEntityInfo().Columns.Any(it => it.IsEnableUpdateVersionValidation); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateExpressionMethodInfo.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateExpressionMethodInfo.cs index 810f207f4..e0a8eb7ea 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateExpressionMethodInfo.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateExpressionMethodInfo.cs @@ -36,7 +36,6 @@ namespace ThingsGateway.SqlSugar } public UpdateExpressionMethodInfo SetColumns(string expShortName, FormattableString fieldExpressionString) { - var newMethod = objectValue.GetType().GetMethods() .Where(it => { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableFilter.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableFilter.cs index d17b3b9fa..08d2160da 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableFilter.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableFilter.cs @@ -24,10 +24,7 @@ { this.Context.Ado.BeginTran(); } - this.Context.Utilities.PageEach(DataList, PageSize, pageItem => - { - result += SetFilterSql(this.Context.UpdateableT(pageItem.First()).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns)).ExecuteCommand(); - }); + this.Context.Utilities.PageEach(DataList, PageSize, pageItem => result += SetFilterSql(this.Context.UpdateableT(pageItem[0]).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns)).ExecuteCommand()); if (isNoTran) { this.Context.Ado.CommitTran(); @@ -44,8 +41,6 @@ return result; } - - public async Task ExecuteCommandAsync() { if (DataList.Count == 1 && DataList[0] == null) @@ -61,10 +56,7 @@ { await Context.Ado.BeginTranAsync().ConfigureAwait(false); } - await Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => - { - result += await SetFilterSql(Context.UpdateableT(pageItem.First()).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns)).ExecuteCommandAsync().ConfigureAwait(false); - }).ConfigureAwait(false); + await Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => result += await SetFilterSql(Context.UpdateableT(pageItem[0]).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns)).ExecuteCommandAsync().ConfigureAwait(false)).ConfigureAwait(false); if (isNoTran) { await Context.Ado.CommitTranAsync().ConfigureAwait(false); @@ -81,7 +73,6 @@ return result; } - private IUpdateable SetFilterSql(IUpdateable updateable) { var queryable = this.Context.Queryable(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableHelper.cs index 3af5f1881..d301a1f5a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableHelper.cs @@ -449,7 +449,7 @@ namespace ThingsGateway.SqlSugar { value = value.Replace("= \"SYSDATE\"", "= SYSDATE"); } - var shortName = (columns as LambdaExpression).Parameters.First().Name; + var shortName = (columns as LambdaExpression).Parameters[0].Name; var replaceKey = "," + this.SqlBuilder.GetTranslationColumnName(shortName) + "."; var newKey = "," + this.SqlBuilder.GetTranslationColumnName(this.EntityInfo.DbTableName) + "."; if (replaceKey != newKey) @@ -486,10 +486,7 @@ namespace ThingsGateway.SqlSugar if (this.Context.IgnoreColumns?.Any() == true) { var currentIgnoreColumns = this.Context.IgnoreColumns.Where(it => it.EntityName == this.EntityInfo.EntityName).ToList(); - this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => - { - return !currentIgnoreColumns.Any(i => it.PropertyName.Equals(i.PropertyName, StringComparison.CurrentCulture)); - }).ToList(); + this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => !currentIgnoreColumns.Any(i => it.PropertyName.Equals(i.PropertyName, StringComparison.CurrentCulture))).ToList(); } #endregion if (this.IsSingle) @@ -631,7 +628,6 @@ namespace ThingsGateway.SqlSugar } protected virtual List GetIdentityKeys() { - return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList(); } private void RestoreMapping() @@ -642,7 +638,6 @@ namespace ThingsGateway.SqlSugar } } - private void ValidateVersion() { var versionColumn = this.EntityInfo.Columns.FirstOrDefault(it => it.IsEnableUpdateVersionValidation); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProvider.cs index c2bb2ad1e..90b072520 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -421,8 +421,6 @@ namespace ThingsGateway.SqlSugar return this; } - - public IUpdateable IgnoreColumns(bool ignoreAllNullColumns, bool isOffIdentity = false, bool ignoreAllDefaultValue = false) { //Check.Exception(this.UpdateObjs.Count() > 1 && ignoreAllNullColumns, ErrorMessage.GetThrowMessage("ignoreNullColumn NoSupport batch insert", "ignoreNullColumn 不支持批量操作")); @@ -471,7 +469,6 @@ namespace ThingsGateway.SqlSugar return this; } - public IUpdateable ReSetValue(Action setValueExpression) { ThrowUpdateByExpression(); @@ -593,7 +590,6 @@ namespace ThingsGateway.SqlSugar } public IUpdateable WhereColumns(string columnName) { - ThrowUpdateByExpression(); if (this.WhereColumnList == null) this.WhereColumnList = new List(); _WhereColumn(columnName); @@ -844,7 +840,6 @@ namespace ThingsGateway.SqlSugar return this; } - public virtual IUpdateable SetColumns(Expression> columns, bool appendColumnsByDataFilter) { ThrowUpdateByObject(); @@ -1014,7 +1009,7 @@ namespace ThingsGateway.SqlSugar var tableName = this.SqlBuilder.GetTranslationColumnName(entityTableName); whereString = whereString.Replace(tableName, $"( SELECT * FROM {tableName}) "); } - whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName) + "."); + whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters[0].Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName) + "."); } else if (expResult.IsNavicate) { @@ -1023,8 +1018,8 @@ namespace ThingsGateway.SqlSugar { entityTableName2 = this.UpdateBuilder.TableName; } - whereString = whereString.Replace(expression.Parameters.First().Name + ".", this.SqlBuilder.GetTranslationTableName(entityTableName2) + "."); - whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName2) + "."); + whereString = whereString.Replace(expression.Parameters[0].Name + ".", this.SqlBuilder.GetTranslationTableName(entityTableName2) + "."); + whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters[0].Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName2) + "."); } UpdateBuilder.WhereValues.Add(whereString); return this; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProviderT3.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProviderT3.cs index 4aacf6095..1f8d32c28 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProviderT3.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProviderT3.cs @@ -46,7 +46,6 @@ namespace ThingsGateway.SqlSugar public IUpdateable Where(Expression> whereExpression) { - var value = updateableObj.UpdateBuilder.GetExpressionValue(whereExpression, ResolveExpressType.WhereMultiple).GetString(); updateableObj.UpdateBuilder.WhereValues.Add(value); return this; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProviderT4.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProviderT4.cs index af7fd41e5..5fedf9158 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProviderT4.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/UpdateProvider/UpdateableProviderT4.cs @@ -35,7 +35,6 @@ namespace ThingsGateway.SqlSugar public IUpdateable Where(Expression> whereExpression) { - var value = updateableObj.UpdateBuilder.GetExpressionValue(whereExpression, ResolveExpressType.WhereMultiple).GetString(); updateableObj.UpdateBuilder.WhereValues.Add(value); return this; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/CacheScheme/CacheKeyBuider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/CacheScheme/CacheKeyBuider.cs index fc328450e..4cbdc5b34 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/CacheScheme/CacheKeyBuider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/CacheScheme/CacheKeyBuider.cs @@ -60,14 +60,11 @@ internal class SugarCacheDictionary { - } internal class SugarCacheDictionaryList { - } internal class SugarCacheDataTable { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/IdWorker.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/IdWorker.cs index 400afb348..9742cc5eb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/IdWorker.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/IdWorker.cs @@ -27,7 +27,6 @@ namespace ThingsGateway.SqlSugar.DistributedSystem.Snowflake private long _sequence = 0L; private long _lastTimestamp = -1L; - public IdWorker(long workerId, long datacenterId, long sequence = 0L) { WorkerId = workerId; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/SnowFlakeSingle.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/SnowFlakeSingle.cs index 14c977cda..cd4f7ca67 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/SnowFlakeSingle.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/SnowFlakeSingle.cs @@ -8,7 +8,6 @@ public static int DatacenterId = 1; private SnowFlakeSingle() { - } static SnowFlakeSingle() { } public static DistributedSystem.Snowflake.IdWorker Instance diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/TimeExtensions.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/TimeExtensions.cs index c6548e872..3255cf2c0 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/TimeExtensions.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/TimeExtensions.cs @@ -12,19 +12,13 @@ public static IDisposable StubCurrentTime(Func func) { currentTimeFunc = func; - return new DisposableAction(() => - { - currentTimeFunc = InternalCurrentTimeMillis; - }); + return new DisposableAction(() => currentTimeFunc = InternalCurrentTimeMillis); } public static IDisposable StubCurrentTime(long millis) { currentTimeFunc = () => millis; - return new DisposableAction(() => - { - currentTimeFunc = InternalCurrentTimeMillis; - }); + return new DisposableAction(() => currentTimeFunc = InternalCurrentTimeMillis); } private static readonly DateTime Jan1st1970 = new DateTime diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/ConditionalModel.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/ConditionalModel.cs index b643bd823..002fc68cb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/ConditionalModel.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/ConditionalModel.cs @@ -2,7 +2,6 @@ { public interface IConditionalModel { - } public class ConditionalCollections : IConditionalModel { @@ -22,7 +21,6 @@ public string FieldValue { get; set; } public string CSharpTypeName { get; set; } - public ICustomConditionalFunc CustomConditionalFunc { get; set; } public object CustomParameterValue { get; set; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/ConnectionConfig.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/ConnectionConfig.cs index b07255205..fa344bc0b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/ConnectionConfig.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/ConnectionConfig.cs @@ -72,7 +72,6 @@ namespace ThingsGateway.SqlSugar public Func, Task> ExecuteCommandAsync { get; set; } = (s, p) => throw new Exception("SqlMiddle.ExecuteCommandAsync is null"); public Func, Task> GetDataReaderAsync { get; set; } = (s, p) => throw new Exception("SqlMiddle.GetDataReaderAsync is null"); public Func, Task> GetDataSetAllAsync { get; set; } = (s, p) => throw new Exception("SqlMiddle.GetDataSetAllAsync is null"); - } public class AopEvents { @@ -91,7 +90,6 @@ namespace ThingsGateway.SqlSugar } public class ConfigureExternalServices { - private ISerializeService _SerializeService; private ICacheService _ReflectionInoCache; private ICacheService _DataInfoCache; @@ -148,7 +146,6 @@ namespace ThingsGateway.SqlSugar public List SqlFuncServices { get; set; } public List> AppendDataReaderTypeMappings { get; set; } - public Action EntityService { get; set; } public Action EntityNameService { get; set; } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/DefaultCustom.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/DefaultCustom.cs index 45749be50..6bf3ef6e2 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/DefaultCustom.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/DefaultCustom.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar.DbConvert public T QueryConverter(IDataRecord dr, int i) { - var str = dr.GetString(i); Type undertype = UtilMethods.GetUnderType(typeof(T));//获取没有nullable的枚举类型 return (T)Enum.Parse(undertype, str); @@ -42,7 +41,6 @@ namespace ThingsGateway.SqlSugar.DbConvert public T QueryConverter(IDataRecord dr, int i) { - var value = dr.GetValue(i); return (T)UtilMethods.ChangeType2(value, typeof(T)); } @@ -58,19 +56,15 @@ namespace ThingsGateway.SqlSugar.DbConvert public T QueryConverter(IDataRecord dr, int i) { - - var value = dr.GetValue(i); if (value is byte[] && typeof(T) != UtilConstants.ByteArrayType) { value = Encoding.UTF8.GetString((byte[])value); } return (T)UtilMethods.ChangeType2(value, typeof(T)); - } } - public class Nvarchar2PropertyConvert : ISugarDataConverter { public SugarParameter ParameterConverter(object columnValue, int columnIndex) @@ -82,7 +76,6 @@ namespace ThingsGateway.SqlSugar.DbConvert public T QueryConverter(IDataRecord dr, int i) { - var value = dr.GetString(i); return (T)(object)value; } @@ -99,7 +92,6 @@ namespace ThingsGateway.SqlSugar.DbConvert public T QueryConverter(IDataRecord dr, int i) { - var value = dr.GetString(i); return (T)(object)value; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/DeleteNavOptions.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/DeleteNavOptions.cs index 86bb878d7..5913af3cd 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/DeleteNavOptions.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/DeleteNavOptions.cs @@ -35,7 +35,6 @@ namespace ThingsGateway.SqlSugar public object DiffLogBizData { get; set; } public string[] IgnoreInsertColumns { get; set; } public bool IsOptLock { get; set; } - } public class UpdateNavOptions { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/JoinQueryInfo.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/JoinQueryInfo.cs index fbe899be4..48f4ee477 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/JoinQueryInfo.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/JoinQueryInfo.cs @@ -1,6 +1,5 @@ namespace ThingsGateway.SqlSugar { - public class JoinQueryInfo { public JoinType JoinType { get; set; } @@ -15,47 +14,36 @@ private JoinQueryInfos() { } public JoinQueryInfos(JoinType joinType, bool whereExpress) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2, JoinType joinType3, bool whereExpress3) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2, JoinType joinType3, bool whereExpress3, JoinType joinType4, bool whereExpress4) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2, JoinType joinType3, bool whereExpress3, JoinType joinType4, bool whereExpress4, JoinType joinType5, bool whereExpress5) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2, JoinType joinType3, bool whereExpress3, JoinType joinType4, bool whereExpress4, JoinType joinType5, bool whereExpress5, JoinType joinType6, bool whereExpress6) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2, JoinType joinType3, bool whereExpress3, JoinType joinType4, bool whereExpress4, JoinType joinType5, bool whereExpress5, JoinType joinType6, bool whereExpress6, JoinType joinType7, bool whereExpress7) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2, JoinType joinType3, bool whereExpress3, JoinType joinType4, bool whereExpress4, JoinType joinType5, bool whereExpress5, JoinType joinType6, bool whereExpress6, JoinType joinType7, bool whereExpress7, JoinType joinType8, bool whereExpress8) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2, JoinType joinType3, bool whereExpress3, JoinType joinType4, bool whereExpress4, JoinType joinType5, bool whereExpress5, JoinType joinType6, bool whereExpress6, JoinType joinType7, bool whereExpress7, JoinType joinType8, bool whereExpress8, JoinType joinType9, bool whereExpress9) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2, JoinType joinType3, bool whereExpress3, JoinType joinType4, bool whereExpress4, JoinType joinType5, bool whereExpress5, JoinType joinType6, bool whereExpress6, JoinType joinType7, bool whereExpress7, JoinType joinType8, bool whereExpress8, JoinType joinType9, bool whereExpress9, JoinType joinType10, bool whereExpress10) { - } public JoinQueryInfos(JoinType joinType, bool whereExpress, JoinType joinType2, bool whereExpress2, JoinType joinType3, bool whereExpress3, JoinType joinType4, bool whereExpress4, JoinType joinType5, bool whereExpress5, JoinType joinType6, bool whereExpress6, JoinType joinType7, bool whereExpress7, JoinType joinType8, bool whereExpress8, JoinType joinType9, bool whereExpress9, JoinType joinType10, bool whereExpress10, JoinType joinType11, bool whereExpress11) { - } } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/Mapping/SugarMappingAttribute.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/Mapping/SugarMappingAttribute.cs index 612f17eec..deef7719e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/Mapping/SugarMappingAttribute.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/Mapping/SugarMappingAttribute.cs @@ -135,7 +135,6 @@ set { _IsOnlyIgnoreUpdate = value; } } - private bool _IsEnableUpdateVersionValidation; public bool IsEnableUpdateVersionValidation { @@ -143,8 +142,6 @@ set { _IsEnableUpdateVersionValidation = value; } } - - private bool _IsTranscoding; public bool IsTranscoding { @@ -173,7 +170,6 @@ set { _IsJson = value; } } - private string _DefaultValue; public string DefaultValue { @@ -217,7 +213,6 @@ public bool IsOwnsOne { get; set; } } - [AttributeUsage(AttributeTargets.Class, Inherited = true)] public class TenantAttribute : Attribute { @@ -319,8 +314,6 @@ } } - - [AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = true)] public class SugarIndexAttribute : Attribute { @@ -333,7 +326,6 @@ IndexFields = new Dictionary(); IndexFields.Add(fieldName, sortType); this.IsUnique = isUnique; - } public SugarIndexAttribute(string indexName, string fieldName1, OrderByType sortType1, string fieldName2, OrderByType sortType2, bool isUnique = false) { @@ -459,5 +451,4 @@ this.IsUnique = isUnique; } } - } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/SqlFilter.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/SqlFilter.cs index 37e33891f..40ba9255b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/SqlFilter.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/SqlFilter.cs @@ -20,7 +20,6 @@ namespace ThingsGateway.SqlSugar { private TableFilterItem() { - } private Expression exp { get; set; } public TableFilterItem(Expression> expression, bool isJoinOn = false) @@ -44,7 +43,6 @@ namespace ThingsGateway.SqlSugar private new bool IsJoinQuery { get; set; } } - public class SqlFilterResult { public string Sql { get; set; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/StackTraceInfo.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/StackTraceInfo.cs index a8b484c6d..c31c6aa49 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/StackTraceInfo.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/StackTraceInfo.cs @@ -2,9 +2,9 @@ { public class StackTraceInfo { - public string FirstFileName { get { return this.MyStackTraceList.First().FileName; } } - public string FirstMethodName { get { return this.MyStackTraceList.First().MethodName; } } - public int FirstLine { get { return this.MyStackTraceList.First().Line; } } + public string FirstFileName { get { return this.MyStackTraceList[0].FileName; } } + public string FirstMethodName { get { return this.MyStackTraceList[0].MethodName; } } + public int FirstLine { get { return this.MyStackTraceList[0].Line; } } public List MyStackTraceList { get; set; } public List SugarStackTraceList { get; set; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/SugarList.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/SugarList.cs index a979353cc..8a2aed7fd 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/SugarList.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Entities/SugarList.cs @@ -45,7 +45,6 @@ } } - public class QueueList : List { public void Add(string sql, IReadOnlyList parameters) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Enum/DataFilterType.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Enum/DataFilterType.cs index ca78dfce8..d33af2a38 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Enum/DataFilterType.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Enum/DataFilterType.cs @@ -16,7 +16,6 @@ namespace ThingsGateway.SqlSugar public string PropertyName { get { return EntityColumnInfo.PropertyInfo.Name; } } public string EntityName { get { return EntityColumnInfo.EntityName; } } - public void SetValue(object value) { try @@ -44,7 +43,6 @@ namespace ThingsGateway.SqlSugar } public class DataAfterModel { - public List EntityColumnInfos { get; set; } public object EntityValue { get; set; } public EntityInfo Entity { get; set; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/CaseWhen/CaseWhen.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/CaseWhen/CaseWhen.cs index 7ad950e94..8843e65a4 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/CaseWhen/CaseWhen.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/CaseWhen/CaseWhen.cs @@ -17,7 +17,6 @@ } public class CaseThen { - public CaseWhen Return(T result) { return null; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/CaseWhen/CaseWhenResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/CaseWhen/CaseWhenResolve.cs index 48a88780f..ce9f4206f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/CaseWhen/CaseWhenResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/CaseWhen/CaseWhenResolve.cs @@ -2,7 +2,6 @@ namespace ThingsGateway.SqlSugar { - public class CaseWhenResolve { List allMethods = new List(); @@ -24,7 +23,7 @@ namespace ThingsGateway.SqlSugar { if (context.Expression is LambdaExpression) { - this.context.SingleTableNameSubqueryShortName = (context.Expression as LambdaExpression).Parameters.First().Name; + this.context.SingleTableNameSubqueryShortName = (context.Expression as LambdaExpression).Parameters[0].Name; } } while (currentExpression != null) @@ -42,7 +41,7 @@ namespace ThingsGateway.SqlSugar List> sqls = new List>(); foreach (var methodExp in allMethods) { - var isFirst = allMethods.First() == methodExp; + var isFirst = allMethods[0] == methodExp; var isLast = allMethods.Last() == methodExp; var isIsNegate = false; if (methodExp.Arguments.Count == 0) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ExpressionItems.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ExpressionItems.cs index c212b61a3..e45219ec7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ExpressionItems.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ExpressionItems.cs @@ -24,6 +24,5 @@ namespace ThingsGateway.SqlSugar return null; } } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ExpressionTool.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ExpressionTool.cs index ce1c7845b..61764cd09 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ExpressionTool.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ExpressionTool.cs @@ -336,7 +336,6 @@ namespace ThingsGateway.SqlSugar string propertyName = assignment.Member.Name; dict.Add(assignment.Member.Name, assignment.Expression); } - } return dict; } @@ -412,7 +411,6 @@ namespace ThingsGateway.SqlSugar } } - public static void GetOneToOneInfo(SqlSugarProvider context, Expression> LeftObject, out MemberExpression memberExpression, out string navObjectName, out EntityColumnInfo navColumn, out EntityInfo navEntityInfo, out EntityColumnInfo navPkColumn) { memberExpression = ((LeftObject as LambdaExpression).Body as MemberExpression); @@ -438,7 +436,6 @@ namespace ThingsGateway.SqlSugar } } - public static List ExpressionParameters(Expression expression) { List parameters = null; @@ -482,7 +479,6 @@ namespace ThingsGateway.SqlSugar return newExp; } - public static string GetFirstTypeNameFromExpression(Expression expression) { if (expression is LambdaExpression lambda) @@ -590,7 +586,6 @@ namespace ThingsGateway.SqlSugar } if (memberExpr.Expression == null) { - } expression = memberExpr.Expression; } @@ -737,7 +732,6 @@ namespace ThingsGateway.SqlSugar return reval; } - public static bool IsConstExpression(MemberExpression memberExpr) { var result = false; @@ -874,7 +868,6 @@ namespace ThingsGateway.SqlSugar } else if (memberAssignment.Expression is MemberInitExpression || memberAssignment.Expression is NewExpression) { - var dic = ExpressionTool.GetNewExpressionItemList(memberAssignment.Expression); foreach (var kv in dic) { @@ -903,7 +896,6 @@ namespace ThingsGateway.SqlSugar //additem.Value = ""; result.Add(additem); } - } return result; } @@ -961,7 +953,6 @@ namespace ThingsGateway.SqlSugar } else if (binding is MemberInitExpression || binding is NewExpression) { - var dic = ExpressionTool.GetNewExpressionItemList(binding); foreach (var kv in dic) { @@ -1066,7 +1057,6 @@ namespace ThingsGateway.SqlSugar return result; } - public static bool IsNegate(Expression exp) { return exp is UnaryExpression && exp.NodeType == ExpressionType.Negate; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ParameterExpressionVisitor.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ParameterExpressionVisitor.cs index dec281363..0dadd3f57 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ParameterExpressionVisitor.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ParameterExpressionVisitor.cs @@ -69,7 +69,7 @@ namespace ThingsGateway.SqlSugar _nodes.Add(node); if (node.Arguments.Count != 0) { - Visit(node.Arguments.First()); + Visit(node.Arguments[0]); } return node; } @@ -80,5 +80,4 @@ namespace ThingsGateway.SqlSugar return _nodes; } } - } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ResolveExpressType.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ResolveExpressType.cs index f0a29a9cb..edc114452 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ResolveExpressType.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/ResolveExpressType.cs @@ -13,6 +13,5 @@ ArraySingle = 9, ArrayMultiple = 10, Update = 11 - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/SugarParameter.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/SugarParameter.cs index 06af2de5b..d1ad55ae7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/SugarParameter.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Common/SugarParameter.cs @@ -39,7 +39,6 @@ namespace ThingsGateway.SqlSugar SettingDataType(type); } - public SugarParameter(string name, object value, System.Data.DbType type) { this.Value = value; @@ -180,7 +179,6 @@ namespace ThingsGateway.SqlSugar { this.Value = this.Value == null ? default(string) : this.Value.ObjToString(); } - } public SugarParameter(string name, object value, bool isOutput) { @@ -231,7 +229,6 @@ namespace ThingsGateway.SqlSugar { var length = Value.ToString().Length; _Size = length < 4000 ? 4000 : -1; - } } if (_Size == 0) @@ -283,7 +280,6 @@ namespace ThingsGateway.SqlSugar this.DbType = System.Data.DbType.String; } - public string TypeName { get; set; } public bool IsJson { get; set; } public bool IsArray { get; set; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs index 3914e8342..a045aa04b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs @@ -105,7 +105,6 @@ namespace ThingsGateway.SqlSugar return string.Format("( {0}>0 AND {0} IS NOT NULL )", parameter.MemberName); } - public virtual string ToUpper(MethodCallExpressionModel model) { var parameter = model.Args[0]; @@ -618,7 +617,6 @@ namespace ThingsGateway.SqlSugar } public virtual string Format(MethodCallExpressionModel model) { - var str = "'" + model.Args[0].MemberValue.ObjToString() + "'"; if (model.Args[0].MemberValue.ObjToString().StartsWith('\'') && model.Args[0].MemberValue.ObjToString().EndsWith('\'')) { @@ -649,7 +647,6 @@ namespace ThingsGateway.SqlSugar } private string FormatConcat(MethodCallExpressionModel model) { - var str = "concat('" + model.Args[0].MemberValue.ObjToString() + "')"; if (model.Args.Count == 2 && model.Args[1].MemberValue is string[]) { @@ -775,7 +772,6 @@ namespace ThingsGateway.SqlSugar return $"({parameter.MemberName}::json ->> {parameter1.MemberValue})"; } - public virtual string JsonField(MethodCallExpressionModel model) { throw new NotImplementedException("Current database no support"); @@ -955,7 +951,6 @@ namespace ThingsGateway.SqlSugar { if (columnInfo.SqlParameterDbType is System.Data.DbType type && type == System.Data.DbType.AnsiString) { - } else { @@ -1134,7 +1129,6 @@ namespace ThingsGateway.SqlSugar { if (model.DataObject is EntityColumnInfo dc && dc.SqlParameterDbType is System.Data.DbType type && type == System.Data.DbType.AnsiString) { - } else { @@ -1156,12 +1150,8 @@ namespace ThingsGateway.SqlSugar else { Regex reg = new Regex(ParameterKeyWord + @"MethodConst\d+"); - sql = reg.Replace(sql, it => - { - return " " + newValue + " "; - }); + sql = reg.Replace(sql, it => " " + newValue + " "); } - } sb.Append(sql); } @@ -1246,12 +1236,8 @@ namespace ThingsGateway.SqlSugar else { Regex reg = new Regex(ParameterKeyWord + @"MethodConst\d+"); - sql = reg.Replace(sql, it => - { - return " " + newValue + " "; - }); + sql = reg.Replace(sql, it => " " + newValue + " "); } - } sb.Append(sql); } @@ -1269,7 +1255,6 @@ namespace ThingsGateway.SqlSugar } } - private static List GetStringFormatArgs(string str, object array) { var args = new List() @@ -1304,7 +1289,6 @@ namespace ThingsGateway.SqlSugar } public virtual string TrimStart(MethodCallExpressionModel mode) { - var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; return $" CASE WHEN LEFT({parameterNameA}, 1) = {parameterNameB} THEN RIGHT({parameterNameA}, LEN({parameterNameA}) - 1) ELSE {parameterNameA} END "; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/DbMethods/SqlFunc.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/DbMethods/SqlFunc.cs index f4b09af7d..52020b929 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/DbMethods/SqlFunc.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/DbMethods/SqlFunc.cs @@ -386,7 +386,6 @@ namespace ThingsGateway.SqlSugar public static DateTime GetDate() { throw new NotSupportedException("Can only be used in expressions"); } public static string GetRandom() { throw new NotSupportedException("Can only be used in expressions"); } - public static T Abs(T value) { throw new NotSupportedException("Can only be used in expressions"); } public static T Round(T value, int precision) { throw new NotSupportedException("Can only be used in expressions"); } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve.cs index 4921219e8..934fb1447 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve.cs @@ -6,10 +6,8 @@ namespace ThingsGateway.SqlSugar /// public partial class BaseResolve { - private BaseResolve() { - } public BaseResolve(ExpressionParameter parameter) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Append.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Append.cs index 0626de2c2..4b2900f6a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Append.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Append.cs @@ -9,7 +9,6 @@ namespace ThingsGateway.SqlSugar { protected void AppendMember(ExpressionParameter parameter, bool? isLeft, object appendValue) { - Context.ParameterIndex++; if (isLeft == true) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Item.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Item.cs index 9a4e051b0..88f56268e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Item.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Item.cs @@ -466,6 +466,5 @@ namespace ThingsGateway.SqlSugar parameter.Context.Result.Append(this.Context.GetAsString(asName, parameterName)); this.Context.Parameters.Add(new SugarParameter(parameterName, parameter.CommonTempData)); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_NewExp.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_NewExp.cs index 6fd8799ff..00d2625cc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_NewExp.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_NewExp.cs @@ -134,6 +134,5 @@ namespace ThingsGateway.SqlSugar Check.ThrowNotSupportedException(item.GetType().Name); } } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Property.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Property.cs index 85440416c..4fd08f50f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Property.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Property.cs @@ -55,7 +55,7 @@ namespace ThingsGateway.SqlSugar { var itemArray = item.Split('='); var last = itemArray.Last().Trim().Split('.').First().TrimEnd(')').TrimEnd('}'); - var first = itemArray.First().Trim(); + var first = itemArray[0].Trim(); if (first.Contains('{')) { first = first.Split('{').Last().Trim(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Validate.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Validate.cs index 6d7073cd9..b8b342bad 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Validate.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BaseResolve_Validate.cs @@ -6,7 +6,6 @@ namespace ThingsGateway.SqlSugar /// public partial class BaseResolve { - private static bool IsSubToList(Expression item) { return ExpressionTool.GetMethodName(item).IsIn("ToList", "First") && IsSubquery(item); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs index 26f3c87a4..f2177c34e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs @@ -76,7 +76,6 @@ namespace ThingsGateway.SqlSugar var right = ExpressionTool.RemoveConvert(expression.Right); if (operatorValue?.IsIn("AND", "OR") == true && left is BinaryExpression && right is BinaryExpression) { - var leftChild = ExpressionTool.RemoveConvert((left as BinaryExpression).Right); var rightChild = ExpressionTool.RemoveConvert((right as BinaryExpression).Right); var isLeftSelect = ExpressionTool.GetMethodName(leftChild) == "Select" || leftChild is BinaryExpression; @@ -157,8 +156,6 @@ namespace ThingsGateway.SqlSugar } } - - private void DefaultBinary(ExpressionParameter parameter, BinaryExpression expression, string operatorValue) { var isEqual = expression.NodeType == ExpressionType.Equal; @@ -402,6 +399,5 @@ namespace ThingsGateway.SqlSugar rightExpression is MethodCallExpression && (rightExpression as MethodCallExpression).Method.Name == "HasValue"; } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BlockExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BlockExpressionResolve.cs index 8581797d2..9fbc363ad 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BlockExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/BlockExpressionResolve.cs @@ -4,7 +4,6 @@ { public BlockExpressionResolve(ExpressionParameter parameter) : base(parameter) { - } } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/ConditionalExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/ConditionalExpressionResolve.cs index d317a3cbe..1519133cd 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/ConditionalExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/ConditionalExpressionResolve.cs @@ -5,7 +5,6 @@ namespace ThingsGateway.SqlSugar { public ConditionalExpressionResolve(ExpressionParameter parameter) : base(parameter) { - string name = "IIF"; var express = base.Expression as ConditionalExpression; var args = new List() { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/ConstantExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/ConstantExpressionResolve.cs index da31e7d8b..91f0e03d0 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/ConstantExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/ConstantExpressionResolve.cs @@ -52,7 +52,6 @@ namespace ThingsGateway.SqlSugar var obj = Activator.CreateInstance(type); var p = ParameterConverter.Invoke(obj, new object[] { expression.Value, 100 }) as SugarParameter; customParameter = base.AppendParameter(p); - } } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MapperExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MapperExpressionResolve.cs index ef26ea569..d77cdc4de 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MapperExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MapperExpressionResolve.cs @@ -67,7 +67,6 @@ namespace ThingsGateway.SqlSugar } else if (isSameProperty) { - } else if (isFillFild1SameType) { @@ -79,13 +78,12 @@ namespace ThingsGateway.SqlSugar } } - private void oneToOne(MapperExpressionInfo fillInfo, MapperExpressionInfo mappingFild1Info, MapperExpressionInfo mappingFild1Info2, MapperExpressionInfo selectInfo) { var pkColumn = selectInfo.EntityInfo.Columns.Where(it => it.IsPrimarykey == true).FirstOrDefault(); if (pkColumn == null) { - pkColumn = selectInfo.EntityInfo.Columns.First(); + pkColumn = selectInfo.EntityInfo.Columns[0]; } var tableName = sqlBuilder.GetTranslationTableName(fillInfo.EntityInfo.DbTableName); var whereLeft = sqlBuilder.GetTranslationColumnName(pkColumn.DbColumnName); @@ -152,7 +150,6 @@ namespace ThingsGateway.SqlSugar private MapperExpressionInfo GetSelectInfo(Expression expression) { - var field = expression; if (field is UnaryExpression) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberExpressionResolve.cs index 4aa2d6e60..309292f6f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberExpressionResolve.cs @@ -93,8 +93,6 @@ namespace ThingsGateway.SqlSugar } } - - #region Navigate private static bool IsNavValue(MemberExpression expression) { @@ -347,7 +345,6 @@ namespace ThingsGateway.SqlSugar var result = this.Context.DbMehtods.DateValue(new MethodCallExpressionModel() { Args = new List() { - new MethodCallExpressionArgs(){ MemberName=value, MemberValue=value @@ -361,7 +358,6 @@ namespace ThingsGateway.SqlSugar base.AppendMember(parameter, isLeft, result); } - private void ResolveDateDiff(ExpressionParameter parameter, bool? isLeft, MemberExpression expression) { var binaryExp = expression.Expression as BinaryExpression; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs index 5a35ece7c..6d96a6f94 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs @@ -294,7 +294,6 @@ namespace ThingsGateway.SqlSugar string name = this.Context.GetTranslationTableName(parameter.CurrentExpression.Type.Name, true); if (name.Contains('.')) { - } else if (isSubJoin) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberNoExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberNoExpressionResolve.cs index 10ff6cbde..786df6a50 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberNoExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MemberNoExpressionResolve.cs @@ -57,5 +57,4 @@ namespace ThingsGateway.SqlSugar return value; } } - } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 0ee0669d7..c2fec05b1 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -202,7 +202,6 @@ namespace ThingsGateway.SqlSugar } } - protected void Field(ExpressionParameter parameter, bool? isLeft, string name, IEnumerable args, MethodCallExpressionModel model, List appendArgs = null) { if (this.Context.ResolveType == ResolveExpressType.FieldSingle) @@ -302,7 +301,6 @@ namespace ThingsGateway.SqlSugar if (isRoot && parameter.BaseExpression == null && this.Context.ResolveType.IsIn(ResolveExpressType.WhereMultiple, ResolveExpressType.WhereSingle) && (parameter.CurrentExpression is MethodCallExpression) && ((parameter.CurrentExpression as MethodCallExpression).Method.Name.IsIn("ToBool", "ToBoolean"))) { methodValue = methodValue + "=1 "; - } if (isRoot && parameter.BaseExpression == null && this.Context.ResolveType.IsIn(ResolveExpressType.WhereMultiple, ResolveExpressType.WhereSingle) && (parameter.CurrentExpression is ConditionalExpression) && ((parameter.CurrentExpression as ConditionalExpression).Type == UtilConstants.BoolType)) { @@ -334,6 +332,5 @@ namespace ThingsGateway.SqlSugar } base.AppendValue(parameter, isLeft, methodValue); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_BaseDateFomat.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_BaseDateFomat.cs index bba0cf469..dd57c337e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_BaseDateFomat.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_BaseDateFomat.cs @@ -246,7 +246,6 @@ namespace ThingsGateway.SqlSugar } else { - var name = base.AppendParameter(r); joinStringParameter.Args.Add(new MethodCallExpressionArgs() { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs index 81cd4ab73..fc0ee856e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs @@ -85,12 +85,11 @@ namespace ThingsGateway.SqlSugar { if (this.Context.SingleTableNameSubqueryShortName == null) { - this.Context.SingleTableNameSubqueryShortName = lamExp.Parameters.First().Name; + this.Context.SingleTableNameSubqueryShortName = lamExp.Parameters[0].Name; } } } - private void AppendItem(ExpressionParameter parameter, string name, IEnumerable args, MethodCallExpressionModel model, Expression item) { if (ExpressionTool.IsUnConvertExpress(item)) @@ -193,7 +192,6 @@ namespace ThingsGateway.SqlSugar else if (isIFFBoolMember && !isFirst) { AppendModelByIIFMember(parameter, model, item); - } else if (isIFFBoolBinary && !isFirst) { @@ -232,7 +230,6 @@ namespace ThingsGateway.SqlSugar { AppendModelByIIFBinary(parameter, model, item); } - } else if (isIFFBoolMethod && !isFirst) { @@ -336,7 +333,6 @@ namespace ThingsGateway.SqlSugar } } - private void AppendModelByIIFMember(ExpressionParameter parameter, MethodCallExpressionModel model, Expression item) { parameter.CommonTempData = CommonTempDataType.Result; @@ -543,7 +539,6 @@ namespace ThingsGateway.SqlSugar parameter.ChildExpression = null; } - private void GetConfigValue(MethodCallExpression express, ExpressionParameter parameter) { var exp = express.Arguments[0]; @@ -586,7 +581,6 @@ namespace ThingsGateway.SqlSugar TypeName = item.TypeName, Value = item.Value, _Size = item._Size - }); } } @@ -796,13 +790,13 @@ namespace ThingsGateway.SqlSugar case "ToString": if (model.Args.Count > 1) { - var dateString2 = this.Context.DbMehtods.GetDateString(model.Args.First().MemberName.ObjToString(), model.Args.Last().MemberValue.ObjToString()); + var dateString2 = this.Context.DbMehtods.GetDateString(model.Args[0].MemberName.ObjToString(), model.Args.Last().MemberValue.ObjToString()); if (IsSqlServerModel()) { - return string.Format("FORMAT({0},'{1}','en-US')", model.Args.First().MemberName.ObjToString(), model.Args.Last().MemberValue.ObjToString()); + return string.Format("FORMAT({0},'{1}','en-US')", model.Args[0].MemberName.ObjToString(), model.Args.Last().MemberValue.ObjToString()); } if (dateString2 != null) return dateString2; - return GeDateFormat(model.Args.Last().MemberValue.ObjToString(), model.Args.First().MemberName.ObjToString()); + return GeDateFormat(model.Args.Last().MemberValue.ObjToString(), model.Args[0].MemberName.ObjToString()); } //Check.Exception(model.Args.Count > 1, "ToString (Format) is not supported, Use ToString().If time formatting can be used it.Date.Year+\"-\"+it.Data.Month+\"-\"+it.Date.Day "); return this.Context.DbMehtods.ToString(model); @@ -909,7 +903,8 @@ namespace ThingsGateway.SqlSugar { result = this.Context.DbMehtods.FormatRowNumber(model); } - this.Context.Parameters.RemoveAll(it => model.Args.Select(x => x.MemberName.ObjToString()).Contains(it.ParameterName)); + var ids = model.Args.Select(x => x.MemberName.ObjToString()).ToHashSet(); + this.Context.Parameters.RemoveAll(it => ids.Contains(it.ParameterName)); return result; case "Abs": return this.Context.DbMehtods.Abs(model); @@ -1061,7 +1056,7 @@ namespace ThingsGateway.SqlSugar { if (express.Arguments.Count == 2) { - if (express.Arguments.First() is MethodCallExpression callExpression) + if (express.Arguments[0] is MethodCallExpression callExpression) { if (callExpression.Method.Name == "op_Implicit") { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/NewExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/NewExpressionResolve.cs index 746beea96..892e30611 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/NewExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/NewExpressionResolve.cs @@ -139,7 +139,6 @@ namespace ThingsGateway.SqlSugar int i = 0; foreach (var item in expression.Arguments) { - string memberName = expression.Members?[i]?.Name; if (memberName == null && expression.Members == null && item is MemberExpression member) { @@ -158,4 +157,3 @@ namespace ThingsGateway.SqlSugar } } } - diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs index af4ac4e74..61029f8dc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs @@ -140,7 +140,6 @@ namespace ThingsGateway.SqlSugar { return GetManyToManySql(); } - } private MapperSql GetDynamicSql() @@ -203,7 +202,6 @@ namespace ThingsGateway.SqlSugar private MapperSql GetManyToManySql() { - var bPk = this.ProPertyEntity.Columns.FirstOrDefault(it => it.IsPrimarykey == true)?.DbColumnName; var aPk = this.EntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey == true)?.DbColumnName; if (Navigat.BClassId.HasValue()) @@ -332,6 +330,5 @@ namespace ThingsGateway.SqlSugar } return sql; } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpressionN.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpressionN.cs index 13f474d35..1b3f94cd6 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpressionN.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpressionN.cs @@ -70,7 +70,6 @@ namespace ThingsGateway.SqlSugar { items.Add(new ExpressionItems() { Type = 2, Expression = child2Expression, ThisEntityInfo = this.context.EntityMaintenance.GetEntityInfo(child2Expression.Type), ParentEntityInfo = this.context.EntityMaintenance.GetEntityInfo(GetMemberExpression(child2Expression).Type) }); child2Expression = GetMemberExpression(child2Expression); - } else if (IsParameter(child2Expression)) { @@ -95,7 +94,7 @@ namespace ThingsGateway.SqlSugar MapperSql MapperSql = new MapperSql(); var memberInfo = this.items.Where(it => it.Type == 3).First(); var subInfos = this.items.Where(it => it.Type == 2).Reverse().ToList(); - var formInfo = subInfos.First(); + var formInfo = subInfos[0]; var joinInfos = subInfos.Skip(1).ToList(); var i = 0; var masterShortName = formInfo.ThisEntityInfo.DbTableName + i; @@ -120,7 +119,7 @@ namespace ThingsGateway.SqlSugar } var isAny = (memberInfo.Expression as MethodCallExpression).Method.Name == "Any"; queryable.Select(isAny ? "1" : " COUNT(1) "); - var last = subInfos.First(); + var last = subInfos[0]; var FirstPkColumn = last.ThisEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey); FirstPkColumn = GetFirstPkColumn(last, FirstPkColumn); Check.ExceptionEasy(FirstPkColumn == null, $"{last.ThisEntityInfo.EntityName} need PrimayKey", $"使用导航属性{last.ThisEntityInfo.EntityName} 缺少主键"); @@ -132,7 +131,6 @@ namespace ThingsGateway.SqlSugar if (isAny) { MapperSql.Sql = $" EXISTS( {MapperSql.Sql}) "; - } return MapperSql; } @@ -210,7 +208,6 @@ namespace ThingsGateway.SqlSugar return lastShortName; } - private string ManyToMany(ref ExpressionItems formInfo, ref int i, ISugarQueryable queryable, ref int index, ExpressionItems item) { string lastShortName; @@ -274,7 +271,6 @@ namespace ThingsGateway.SqlSugar sqlBuilder.GetTranslationColumnName(lastShortName) + "." + sqlBuilder.GetTranslationColumnName(it.DbColumnName)); if (oldWhere != newWhere && !oldWhere.Contains($" {sqlBuilder.GetTranslationColumnName(it.DbColumnName)}")) { - } else { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToOneNavgateExpressionN.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToOneNavgateExpressionN.cs index 0546d817d..b189f4416 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToOneNavgateExpressionN.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/OneToOneNavgateExpressionN.cs @@ -40,7 +40,7 @@ namespace ThingsGateway.SqlSugar MapperSql MapperSql = new MapperSql(); var memberInfo = this.items.Where(it => it.Type == 1).First(); var subInfos = this.items.Where(it => it.Type == 2).Reverse().ToList(); - var formInfo = subInfos.First(); + var formInfo = subInfos[0]; var rootWhereSql = formInfo?.Nav?.WhereSql; var joinInfos = subInfos.Skip(1).ToList(); var i = 0; @@ -80,7 +80,7 @@ namespace ThingsGateway.SqlSugar queryable.Where(rootWhereSql); } queryable.Select($" {ToShortName(lastShortName)}.{queryable.SqlBuilder.GetTranslationColumnName(selectColumnInfo.DbColumnName)}"); - var last = subInfos.First(); + var last = subInfos[0]; var FirstPkColumn = last.ThisEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey); if (last.Nav.Name2.HasValue()) { @@ -120,7 +120,6 @@ namespace ThingsGateway.SqlSugar { items.Add(new ExpressionItems() { Type = 2, Expression = child2Expression, ThisEntityInfo = this.context.EntityMaintenance.GetEntityInfo(child2Expression.Type), ParentEntityInfo = this.context.EntityMaintenance.GetEntityInfo(GetMemberExpression(child2Expression).Type) }); child2Expression = GetMemberExpression(child2Expression); - } else if (IsParameter(child2Expression)) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs index 240429808..87679422f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs @@ -146,7 +146,6 @@ namespace ThingsGateway.SqlSugar parameter.CommonTempData = null; } - private void AppendNotMember(ExpressionParameter parameter, ExpressionType nodeType) { BaseParameter.ChildExpression = base.Expression; @@ -166,7 +165,6 @@ namespace ThingsGateway.SqlSugar parameter.CommonTempData = null; } - private void AppendNotParameter(ExpressionParameter parameter, ExpressionType nodeType) { BaseParameter.ChildExpression = base.Expression; @@ -185,6 +183,5 @@ namespace ThingsGateway.SqlSugar parameter.BaseParameter.ChildExpression = base.Expression; parameter.CommonTempData = null; } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAnd.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAnd.cs index c3dbbebd0..ed62ab596 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAnd.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAnd.cs @@ -94,7 +94,7 @@ namespace ThingsGateway.SqlSugar } } - var selfParameterName = this.Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = this.Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0 && result.Contains(" FROM ")) { this.Context.CurrentShortName = selfParameterName.TrimEnd('.'); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAndIF.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAndIF.cs index b16177d8f..aa7d50b5a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAndIF.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAndIF.cs @@ -63,7 +63,7 @@ namespace ThingsGateway.SqlSugar this.Context.Index = copyContext.Index; this.Context.ParameterIndex = copyContext.ParameterIndex; } - var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) { result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAs.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAs.cs index bacfd92c6..efb29f785 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAs.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAs.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAsWithAttr.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAsWithAttr.cs index 2259f8e19..77b211a7a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAsWithAttr.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAsWithAttr.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAvg.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAvg.cs index b0c717a0e..7daafcba2 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAvg.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubAvg.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get @@ -55,7 +54,7 @@ namespace ThingsGateway.SqlSugar this.Context.RefreshMapping(); } var result = "AVG(" + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple) + ")"; - var selfParameterName = Context.GetTranslationColumnName(parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = Context.GetTranslationColumnName(parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); return result; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubCount.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubCount.cs index ed6aa4257..f8699c32c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubCount.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubCount.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubDistinctCount.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubDistinctCount.cs index 4736a2948..31596d263 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubDistinctCount.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubDistinctCount.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get @@ -56,7 +55,7 @@ namespace ThingsGateway.SqlSugar this.Context.RefreshMapping(); } var result = "COUNT(DISTINCT " + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple) + ")"; - var selfParameterName = Context.GetTranslationColumnName(parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = Context.GetTranslationColumnName(parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); return result; @@ -72,6 +71,5 @@ namespace ThingsGateway.SqlSugar } } } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubEnableTableFilter.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubEnableTableFilter.cs index d58e59bcb..a09148be6 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubEnableTableFilter.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubEnableTableFilter.cs @@ -45,6 +45,7 @@ namespace ThingsGateway.SqlSugar BindingFlags flag = BindingFlags.Instance | BindingFlags.NonPublic; Type type = this.Context.SubTableType; var isWhere = HasWhere; + var ids = type.GetInterfaces().ToHashSet(); if (db.QueryFilter.GetFilterList != null) { foreach (var item in db.QueryFilter.GetFilterList) @@ -53,7 +54,7 @@ namespace ThingsGateway.SqlSugar if (field != null) { Type ChildType = item.GetType().GetProperty("type", flag).GetValue(item, null) as Type; - if (ChildType == type || (ChildType.IsInterface && type.GetInterfaces().Contains(ChildType))) + if (ChildType == type || (ChildType.IsInterface && ids.Contains(ChildType))) { var entityInfo = db.EntityMaintenance.GetEntityInfo(ChildType); this.Context.InitMappingInfo(ChildType); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubFirst.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubFirst.cs index c4adedd76..781a36491 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubFirst.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get @@ -100,7 +99,6 @@ namespace ThingsGateway.SqlSugar { this.Context.CurrentShortName = this.Context.GetTranslationColumnName(parameters[0].ObjToString()); } - } } public void SetShortNameNext(MethodCallExpression exp, string result) @@ -112,7 +110,6 @@ namespace ThingsGateway.SqlSugar { this.Context.CurrentShortName = this.Context.GetTranslationColumnName(parameters[0].ObjToString()); } - } } @@ -129,7 +126,6 @@ namespace ThingsGateway.SqlSugar // 将返回值表达式作为lambda表达式的主体 selectExp = Expression.Lambda(body, parameter); - } var bodyExp = ExpressionTool.GetLambdaExpressionBody(selectExp); var newMemExp = (bodyExp as MemberInitExpression); @@ -152,7 +148,6 @@ namespace ThingsGateway.SqlSugar List completeColumnColumns = new List(); foreach (var item in autoColumns) { - foreach (var parameter in parameters) { var parameterColumns = db.EntityMaintenance.GetEntityInfo(parameter.Type).Columns; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubGroupBy.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubGroupBy.cs index b92190c4a..9abca50c9 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubGroupBy.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubGroupBy.cs @@ -63,7 +63,7 @@ namespace ThingsGateway.SqlSugar result = result + SubTools.GetMethodValueSubJoin(this.Context, argExp, type); } result = result.TrimEnd(','); - var selfParameterName = this.Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = this.Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); if (this.Context.CurrentShortName == null) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubHaving.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubHaving.cs index 2eb65f2e1..6e4414a97 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubHaving.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubHaving.cs @@ -37,7 +37,7 @@ namespace ThingsGateway.SqlSugar var exp = expression as MethodCallExpression; var argExp = exp.Arguments[0]; var result = "Having " + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple); - var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); return result; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubInnerJoin.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubInnerJoin.cs index 68eaa21da..fbf710a08 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubInnerJoin.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubInnerJoin.cs @@ -4,7 +4,6 @@ namespace ThingsGateway.SqlSugar { public class SubInnerJoin : ISubOperation { - public bool HasWhere { get; set; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubLeftJoin.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubLeftJoin.cs index 7c0af73cd..b578d1c4c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubLeftJoin.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubLeftJoin.cs @@ -4,7 +4,6 @@ namespace ThingsGateway.SqlSugar { public class SubLeftJoin : ISubOperation { - public bool HasWhere { get; set; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubMax.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubMax.cs index 2da5043eb..c862b9a47 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubMax.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubMax.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get @@ -55,7 +54,7 @@ namespace ThingsGateway.SqlSugar this.Context.RefreshMapping(); } var result = "MAX(" + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple) + ")"; - var selfParameterName = Context.GetTranslationColumnName(parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = Context.GetTranslationColumnName(parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); return result; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubMin.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubMin.cs index cd77e7dd5..b475248e7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubMin.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubMin.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get @@ -55,7 +54,7 @@ namespace ThingsGateway.SqlSugar this.Context.RefreshMapping(); } var result = "MIN(" + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple) + ")"; - var selfParameterName = Context.GetTranslationColumnName(parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = Context.GetTranslationColumnName(parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); return result; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubOrderBy.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubOrderBy.cs index 423332f55..deb250273 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubOrderBy.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubOrderBy.cs @@ -50,7 +50,7 @@ namespace ThingsGateway.SqlSugar { result = (OrderIndex == 0 ? "ORDER BY " : ",") + SubTools.GetMethodValueSubJoin(this.Context, argExp, ResolveExpressType.FieldMultiple); } - var selfParameterName = this.Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = this.Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) { result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); @@ -102,7 +102,7 @@ namespace ThingsGateway.SqlSugar { result = (OrderIndex == 0 ? "ORDER BY " : ",") + SubTools.GetMethodValueSubJoin(this.Context, argExp, ResolveExpressType.FieldMultiple) + " DESC"; } - var selfParameterName = this.Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = this.Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) { result = result.Replace(selfParameterName, string.Empty); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSelect.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSelect.cs index 7de0a5e12..e0ee2fd90 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSelect.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSelect.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get @@ -73,7 +72,6 @@ namespace ThingsGateway.SqlSugar { this.Context.CurrentShortName = this.Context.GetTranslationColumnName(parameters[0].ObjToString()); } - } } public void SetShortNameNext(MethodCallExpression exp, string result) @@ -85,7 +83,6 @@ namespace ThingsGateway.SqlSugar { this.Context.CurrentShortName = this.Context.GetTranslationColumnName(parameters[0].ObjToString()); } - } } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSelectStringJoin.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSelectStringJoin.cs index f3efc7486..b9fd86629 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSelectStringJoin.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSelectStringJoin.cs @@ -21,7 +21,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get @@ -85,7 +84,6 @@ namespace ThingsGateway.SqlSugar { this.Context.CurrentShortName = this.Context.GetTranslationColumnName(parameters[0].ObjToString()); } - } } public void SetShortNameNext(MethodCallExpression exp, string result) @@ -97,7 +95,6 @@ namespace ThingsGateway.SqlSugar { this.Context.CurrentShortName = this.Context.GetTranslationColumnName(parameters[0].ObjToString()); } - } } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSum.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSum.cs index cf5e559b7..3cabf2ca1 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSum.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubSum.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get @@ -55,7 +54,7 @@ namespace ThingsGateway.SqlSugar this.Context.RefreshMapping(); } var result = "SUM(" + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple) + ")"; - var selfParameterName = Context.GetTranslationColumnName(parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = Context.GetTranslationColumnName(parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); return result; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubTake.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubTake.cs index d5de78eae..cedc5256d 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubTake.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubTake.cs @@ -37,7 +37,6 @@ namespace ThingsGateway.SqlSugar } else if (this.Context is OracleExpressionContext) { - return 401; } else @@ -47,7 +46,6 @@ namespace ThingsGateway.SqlSugar } } - public string GetValue(Expression expression) { var numExp = (expression as MethodCallExpression).Arguments[0]; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubToList.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubToList.cs index 370a289ce..e8bcc8021 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubToList.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubToList.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar get; set; } - public int Sort { get @@ -101,7 +100,6 @@ namespace ThingsGateway.SqlSugar { this.Context.CurrentShortName = this.Context.GetTranslationColumnName(parameters[0].ObjToString()); } - } } public void SetShortNameNext(MethodCallExpression exp, string result) @@ -113,7 +111,6 @@ namespace ThingsGateway.SqlSugar { this.Context.CurrentShortName = this.Context.GetTranslationColumnName(parameters[0].ObjToString()); } - } } @@ -130,7 +127,6 @@ namespace ThingsGateway.SqlSugar // 将返回值表达式作为lambda表达式的主体 selectExp = Expression.Lambda(body, parameter); - } var bodyExp = ExpressionTool.GetLambdaExpressionBody(selectExp); var newMemExp = (bodyExp as MemberInitExpression); @@ -153,7 +149,6 @@ namespace ThingsGateway.SqlSugar List completeColumnColumns = new List(); foreach (var item in autoColumns) { - foreach (var parameter in parameters) { var parameterColumns = db.EntityMaintenance.GetEntityInfo(parameter.Type).Columns.Where(it => it.IsIgnore == false); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubTop.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubTop.cs index 9e47c421d..a5b2b58dc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubTop.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubTop.cs @@ -37,7 +37,6 @@ namespace ThingsGateway.SqlSugar } else if (this.Context is OracleExpressionContext) { - return 401; } else @@ -47,7 +46,6 @@ namespace ThingsGateway.SqlSugar } } - public string GetValue(Expression expression) { if (this.Context is SqlServerExpressionContext || this.Context.GetType().Name.Contains("Access")) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubWhere.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubWhere.cs index 10a8211ee..bffd19ce5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubWhere.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubWhere.cs @@ -106,7 +106,7 @@ namespace ThingsGateway.SqlSugar } } - var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0 && result.Contains(" FROM ")) { this.Context.CurrentShortName = selfParameterName.ObjToString().TrimEnd('.'); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubWhereIF.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubWhereIF.cs index 1f899caa0..829cfccf7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubWhereIF.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Items/SubWhereIF.cs @@ -68,7 +68,7 @@ namespace ThingsGateway.SqlSugar this.Context.Index = copyContext.Index; this.Context.ParameterIndex = copyContext.ParameterIndex; } - var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; + var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters[0].Name) + UtilConstants.Dot; if (this.Context.JoinIndex == 0) result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); if (!string.IsNullOrEmpty(selfParameterName) && this.Context.IsSingle && this.Context.JoinIndex == 0) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubResolve.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubResolve.cs index 0c4bb0636..36d4747fe 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubResolve.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubResolve.cs @@ -29,14 +29,14 @@ namespace ThingsGateway.SqlSugar this.context.SingleTableNameSubqueryShortName = (childExpression as ParameterExpression).Name; else { - this.context.SingleTableNameSubqueryShortName = (context.Expression as LambdaExpression).Parameters.First().Name; + this.context.SingleTableNameSubqueryShortName = (context.Expression as LambdaExpression).Parameters[0].Name; } } else if (context.IsSingle && ExpressionTool.GetMethodName(currentExpression) != "ToList") { if (context.Expression is LambdaExpression) { - this.context.SingleTableNameSubqueryShortName = (context.Expression as LambdaExpression).Parameters.First().Name; + this.context.SingleTableNameSubqueryShortName = (context.Expression as LambdaExpression).Parameters[0].Name; } else if (context.Expression is MethodCallExpression) { @@ -46,7 +46,7 @@ namespace ThingsGateway.SqlSugar var meExp = expArgs[0] as LambdaExpression; if (meExp != null) { - var selfParameterName = meExp.Parameters.First().Name; + var selfParameterName = meExp.Parameters[0].Name; if ((meExp.Body is BinaryExpression)) { context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Left as MemberExpression)?.Expression as ParameterExpression)?.Name; @@ -70,12 +70,11 @@ namespace ThingsGateway.SqlSugar } else if (context.Expression.GetType().Name == "MethodBinaryExpression") { - var subExp = (context.Expression as BinaryExpression).Left is MethodCallExpression ? (context.Expression as BinaryExpression).Left : (context.Expression as BinaryExpression).Right; if (subExp is MethodCallExpression) { var meExp = ((subExp as MethodCallExpression).Object as MethodCallExpression).Arguments[0] as LambdaExpression; - var selfParameterName = meExp.Parameters.First().Name; + var selfParameterName = meExp.Parameters[0].Name; context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Left as MemberExpression).Expression as ParameterExpression).Name; if (context.SingleTableNameSubqueryShortName == selfParameterName) { @@ -97,7 +96,7 @@ namespace ThingsGateway.SqlSugar if (argus.Count > 0) { var meExp = argus[0] as LambdaExpression; - var selfParameterName = meExp.Parameters.First().Name; + var selfParameterName = meExp.Parameters[0].Name; context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Left as MemberExpression)?.Expression as ParameterExpression)?.Name; if (context.SingleTableNameSubqueryShortName == selfParameterName) { @@ -111,7 +110,7 @@ namespace ThingsGateway.SqlSugar var getParameters = ExpressionTool.GetParameters(context.Expression).Select(it => it.Name).Distinct().ToList(); if (getParameters?.Count > 1) { - context.SingleTableNameSubqueryShortName = getParameters.First(); + context.SingleTableNameSubqueryShortName = getParameters[0]; } } else @@ -182,7 +181,7 @@ namespace ThingsGateway.SqlSugar { if (sqlItems[i].StartsWith("FROM " + this.context.SqlTranslationLeft)) { - var asName = this.context.GetTranslationTableName(asItems.First().Replace(subKey, ""), false); + var asName = this.context.GetTranslationTableName(asItems[0].Replace(subKey, ""), false); var repKey = $"\\{this.context.SqlTranslationLeft}.+\\{this.context.SqlTranslationRight}"; if (this.context.IsSingle && this.context.JoinIndex == 0 && this.context.CurrentShortName.HasValue() && isAsAttr && !asName.Contains(this.context.CurrentShortName)) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubTemplate.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubTemplate.cs index 9f59b55cb..0125ef8f7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubTemplate.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubTemplate.cs @@ -36,5 +36,4 @@ // @:} //} -//} - +//} \ No newline at end of file diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubTools.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubTools.cs index be1aad561..243477413 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubTools.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/SubTools.cs @@ -6,7 +6,6 @@ namespace ThingsGateway.SqlSugar { public static List SubItems(ExpressionContext Context) { - return new List() { new SubSelect() { Context=Context }, diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Subquerable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Subquerable.cs index cfc9990b3..22d8ae4bb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Subquerable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/ExpressionsToSql/Subquery/Subquerable.cs @@ -4,7 +4,6 @@ namespace ThingsGateway.SqlSugar { public partial class Subqueryable where T : class, new() { - public Subqueryable AS(string tableName) { return this; @@ -29,7 +28,6 @@ namespace ThingsGateway.SqlSugar return new Subqueryable(); } - public Subqueryable Where(string where) { return this; @@ -127,7 +125,6 @@ namespace ThingsGateway.SqlSugar return null; } - public string Sum(Func expression) { return default(string); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/ContextMethods.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/ContextMethods.cs index 12835f4ee..f984c92da 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/ContextMethods.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/ContextMethods.cs @@ -86,7 +86,6 @@ namespace ThingsGateway.SqlSugar return result; } - /// ///DataReader to Dynamic /// @@ -154,7 +153,6 @@ namespace ThingsGateway.SqlSugar } } - /// ///DataReader to Dynamic List /// @@ -191,7 +189,6 @@ namespace ThingsGateway.SqlSugar return result; } - /// ///DataReader to DataReaderToDictionary /// @@ -299,7 +296,6 @@ namespace ThingsGateway.SqlSugar } } - public List DataReaderToSelectJsonList(IDataReader dataReader) { List result = new List(); @@ -394,7 +390,6 @@ namespace ThingsGateway.SqlSugar } } - public async Task> DataReaderToSelectJsonListAsync(IDataReader dataReader) { List result = new List(); @@ -548,7 +543,6 @@ namespace ThingsGateway.SqlSugar { var valueFomatInfo = this.QueryBuilder?.QueryableFormats?.First(it => it.PropertyName == name); addValue = UtilMethods.GetFormatValue(addValue, valueFomatInfo); - } var type = UtilMethods.GetUnderType(item.PropertyType); if (addValue == DBNull.Value || addValue == null) @@ -598,7 +592,6 @@ namespace ThingsGateway.SqlSugar return result; } - private void SetAppendColumns(IDataReader dataReader) { if (QueryBuilder?.AppendColumns != null && QueryBuilder.AppendColumns.Count != 0) @@ -654,13 +647,12 @@ namespace ThingsGateway.SqlSugar Regex.IsMatch(readerValues.First().Value.ObjToString(), @"^\{.+\}$"); } - private static bool IsArrayItem(Dictionary readerValues, PropertyInfo item) { var isArray = item.PropertyType.IsArray && readerValues.Any(y => y.Key.EqualCase(item.Name)) && readerValues.FirstOrDefault(y => y.Key.EqualCase(item.Name)).Value is string; var isListItem = item.PropertyType.FullName.IsCollectionsList() && item.PropertyType.GenericTypeArguments.Length == 1 && - item.PropertyType.GenericTypeArguments.First().IsClass() == false && readerValues.FirstOrDefault(y => y.Key.EqualCase(item.Name)).Value is string; + item.PropertyType.GenericTypeArguments[0].IsClass() == false && readerValues.FirstOrDefault(y => y.Key.EqualCase(item.Name)).Value is string; return isArray || isListItem; } @@ -708,7 +700,6 @@ namespace ThingsGateway.SqlSugar var suagrColumn = prop.GetCustomAttribute(); if (suagrColumn?.IsJson == true) { - if (mappingKeys != null && mappingKeys.TryGetValue(item.Name, out string? key)) { Json(readerValues, result, name, typeName, key, item); @@ -830,7 +821,6 @@ namespace ThingsGateway.SqlSugar { var jsonString = readerValues.First(it => it.Key.EqualCase(item.Name + "." + name)).Value; AddJson(result, name, jsonString); - } } } @@ -869,7 +859,6 @@ namespace ThingsGateway.SqlSugar else { result.Add(name, this.DeserializeObject>>(jsonString + "")); - } } } @@ -907,7 +896,6 @@ namespace ThingsGateway.SqlSugar } } - /// /// Serialize Object /// @@ -954,10 +942,10 @@ namespace ThingsGateway.SqlSugar #endregion #region DataTable - public DataTable DictionaryListToDataTable(List> list) + public DataTable DictionaryListToDataTable(IEnumerable> list) { DataTable result = new DataTable(); - if (list.Count == 0) + if (!list.Any()) return result; var columnNames = list.First(); @@ -1002,7 +990,6 @@ namespace ThingsGateway.SqlSugar deserializeObject.Add(childRow); } return this.DeserializeObject(this.SerializeObject(deserializeObject)); - } public List DataTableToList(DataTable table) { @@ -1207,7 +1194,6 @@ namespace ThingsGateway.SqlSugar var jarray = this.Context.Utilities.DeserializeObject(json); foreach (var item in jarray) { - if (item.Any()) { if (item.ToString().Contains("ConditionalList")) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/InstanceFactory.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/InstanceFactory.cs index c6859bc8c..baa57920a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/InstanceFactory.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/InstanceFactory.cs @@ -3,7 +3,6 @@ using ThingsGateway.NewLife.Collections; namespace ThingsGateway.SqlSugar { - public static class InstanceFactory { static Assembly assembly = Assembly.GetExecutingAssembly(); @@ -375,7 +374,6 @@ namespace ThingsGateway.SqlSugar //currentConnectionConfig.DbType != DbType.GBase && currentConnectionConfig.DbType != DbType.Sqlite && GetCustomTypeByClass($"{SugarConst.StartName}SqlSugar.{currentConnectionConfig.DbType}.{currentConnectionConfig.DbType}Provider") != null; - } public static IDbBind GetDbBind(ConnectionConfig currentConnectionConfig) @@ -584,7 +582,6 @@ namespace ThingsGateway.SqlSugar } private static Restult NoCacheGetCacheInstance(string className, Type[] types) { - Type type = null; if (string.IsNullOrEmpty(CustomDllName)) { @@ -700,7 +697,6 @@ namespace ThingsGateway.SqlSugar } } } - } return type; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/StaticConfig.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/StaticConfig.cs index 6a591418e..f073a071d 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/StaticConfig.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Infrastructure/StaticConfig.cs @@ -24,7 +24,6 @@ public static Action CompleteDbFunc; public static Func> SplitTableGetTablesFunc; - public static Action> SplitTableCreateTableFunc; public static bool Check_StringIdentity = true; public static bool EnableAllWhereIF = false; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/CacheService.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/CacheService.cs index 8da77cbc4..3793733e2 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/CacheService.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/CacheService.cs @@ -73,7 +73,7 @@ namespace ThingsGateway.SqlSugar if (_instance == null) { _instance = new ReflectionInoCore(); - Action addItem = () => { ReflectionInoCore.GetInstance().RemoveAllCache(); }; + Action addItem = () => ReflectionInoCore.GetInstance().RemoveAllCache(); ReflectionInoHelper.AddRemoveFunc(addItem); } return _instance; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/SerializeService.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/SerializeService.cs index bfdb5a7be..165e439f9 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/SerializeService.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/SerializeService.cs @@ -54,11 +54,8 @@ namespace ThingsGateway.SqlSugar } public class MyContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver { - - public MyContractResolver() { - } protected override IList CreateProperties(Type type, MemberSerialization memberSerialization) @@ -101,5 +98,4 @@ namespace ThingsGateway.SqlSugar } } } - } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IAdo.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IAdo.cs index e866ff60e..84f3e7d17 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IAdo.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IAdo.cs @@ -37,7 +37,6 @@ namespace ThingsGateway.SqlSugar IDataAdapter GetAdapter(); DbCommand GetCommand(string sql, IReadOnlyList parameters); - DataTable GetDataTable(string sql, object parameters); DataTable GetDataTable(string sql, params IReadOnlyList parameters); @@ -53,11 +52,9 @@ namespace ThingsGateway.SqlSugar IDataReader GetDataReader(string sql, object parameters); IDataReader GetDataReader(string sql, params IReadOnlyList parameters); - Task GetDataReaderAsync(string sql, object parameters); Task GetDataReaderAsync(string sql, params IReadOnlyList parameters); - object GetScalar(string sql, object parameters); object GetScalar(string sql, params IReadOnlyList parameters); @@ -77,41 +74,34 @@ namespace ThingsGateway.SqlSugar Task GetStringAsync(string sql, object parameters); Task GetStringAsync(string sql, params IReadOnlyList parameters); - int GetInt(string sql, object pars); int GetInt(string sql, params IReadOnlyList parameters); Task GetIntAsync(string sql, object pars); Task GetIntAsync(string sql, params IReadOnlyList parameters); - long GetLong(string sql, object pars = null); Task GetLongAsync(string sql, object pars = null); - Double GetDouble(string sql, object parameters); Double GetDouble(string sql, params IReadOnlyList parameters); - Task GetDoubleAsync(string sql, object parameters); Task GetDoubleAsync(string sql, params IReadOnlyList parameters); - decimal GetDecimal(string sql, object parameters); decimal GetDecimal(string sql, params IReadOnlyList parameters); Task GetDecimalAsync(string sql, object parameters); Task GetDecimalAsync(string sql, params IReadOnlyList parameters); - DateTime GetDateTime(string sql, object parameters); DateTime GetDateTime(string sql, params IReadOnlyList parameters); Task GetDateTimeAsync(string sql, object parameters); Task GetDateTimeAsync(string sql, params IReadOnlyList parameters); - Tuple, List> SqlQuery(string sql, object parameters = null); Tuple, List, List> SqlQuery(string sql, object parameters = null); Tuple, List, List, List> SqlQuery(string sql, object parameters = null); @@ -169,6 +159,5 @@ namespace ThingsGateway.SqlSugar Task> UseTranAsync(Func action, Action errorCallBack = null); Task> UseTranAsync(Func> action, Action errorCallBack = null); IAdo UseStoredProcedure(); - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IContextMethods.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IContextMethods.cs index ab721808d..b94837df4 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IContextMethods.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IContextMethods.cs @@ -43,7 +43,7 @@ namespace ThingsGateway.SqlSugar Task PageEachAsync(IEnumerable pageItems, int pageSize, Func, Task> action); Task PageEachAsync(IEnumerable pageItems, int pageSize, Func, Task> action); List JsonToConditionalModels(string json); - DataTable DictionaryListToDataTable(List> dictionaryList); + DataTable DictionaryListToDataTable(IEnumerable> dictionaryList); List ToTree(List list, Expression>> childListExpression, Expression> parentIdExpression, Expression> pkExpression, object rootValue); KeyValuePair> ConditionalModelsToSql(List conditionalModels, int beginIndex = 0); string EscapeLikeValue(string value, char wildcard = '%'); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IDbBind.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IDbBind.cs index 90cdc1349..a47684293 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IDbBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IDbBind.cs @@ -23,6 +23,5 @@ namespace ThingsGateway.SqlSugar Task> DataReaderToListAsync(Type entityType, IDataReader dataReader); List DataReaderToListNoUsing(Type type, IDataReader reader); Task> DataReaderToListNoUsingAsync(Type type, IDataReader reader); - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IFastBuilder.cs index 28bbc89e9..9d81c41b9 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IFastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IFastBuilder.cs @@ -13,6 +13,6 @@ namespace ThingsGateway.SqlSugar Task ExecuteBulkCopyAsync(DataTable dt); Task CreateTempAsync(DataTable dt) where T : class, new(); void CloseDb(); - Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, List datas) where T : class, new(); + Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, IEnumerable datas) where T : class, new(); } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IFastest.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IFastest.cs index a166d5498..2979e0b5a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IFastest.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IFastest.cs @@ -12,35 +12,34 @@ namespace ThingsGateway.SqlSugar IFastest OffIdentity(); IFastest SetCharacterSet(string CharacterSet); IFastest EnableDataAop(); - int BulkCopy(List datas); - Task BulkCopyAsync(List datas); + int BulkCopy(IEnumerable datas); + Task BulkCopyAsync(IEnumerable datas); int BulkCopy(string tableName, DataTable dataTable); int BulkCopy(DataTable dataTable); Task BulkCopyAsync(string tableName, DataTable dataTable); Task BulkCopyAsync(DataTable dataTable); - int BulkUpdate(List datas); - Task BulkUpdateAsync(List datas); - int BulkUpdate(List datas, string[] whereColumns, string[] updateColumns); - int BulkUpdate(List datas, string[] whereColumns); - Task BulkUpdateAsync(List datas, string[] whereColumns); - Task BulkUpdateAsync(List datas, string[] whereColumns, string[] updateColumns); + int BulkUpdate(IEnumerable datas); + Task BulkUpdateAsync(IEnumerable datas); + int BulkUpdate(IEnumerable datas, string[] whereColumns, string[] updateColumns); + int BulkUpdate(IEnumerable datas, string[] whereColumns); + Task BulkUpdateAsync(IEnumerable datas, string[] whereColumns); + Task BulkUpdateAsync(IEnumerable datas, string[] whereColumns, string[] updateColumns); int BulkUpdate(string tableName, DataTable dataTable, string[] whereColumns, string[] updateColumns); int BulkUpdate(DataTable dataTable, string[] whereColumns, string[] updateColumns); int BulkUpdate(DataTable dataTable, string[] whereColumns); Task BulkUpdateAsync(string tableName, DataTable dataTable, string[] whereColumns, string[] updateColumns); Task BulkUpdateAsync(DataTable dataTable, string[] whereColumns); SplitFastest SplitTable(); - Task BulkMergeAsync(List datas); - int BulkMerge(List datas); + Task BulkMergeAsync(IEnumerable datas); + int BulkMerge(IEnumerable datas); int BulkMerge(DataTable dataTable, string[] whereColumns, bool isIdentity); Task BulkMergeAsync(DataTable dataTable, string[] whereColumns, bool isIdentity); int BulkMerge(DataTable dataTable, string[] whereColumns, string[] updateColumns, bool isIdentity); Task BulkMergeAsync(DataTable dataTable, string[] whereColumns, string[] updateColumns, bool isIdentity); - Task BulkMergeAsync(List datas, string[] whereColumns); - int BulkMerge(List datas, string[] whereColumns); - Task BulkMergeAsync(List datas, string[] whereColumns, string[] updateColumns); - int BulkMerge(List datas, string[] whereColumns, string[] updateColumns); - + Task BulkMergeAsync(IEnumerable datas, string[] whereColumns); + int BulkMerge(IEnumerable datas, string[] whereColumns); + Task BulkMergeAsync(IEnumerable datas, string[] whereColumns, string[] updateColumns); + int BulkMerge(IEnumerable datas, string[] whereColumns, string[] updateColumns); } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IIncludes.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IIncludes.cs index 4af7aa714..388a1751c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IIncludes.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IIncludes.cs @@ -32,8 +32,8 @@ namespace ThingsGateway.SqlSugar NavISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3); NavISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3); NavISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3); - IAsyncEnumerable GetAsyncEnumerable(); - IEnumerable GetEnumerable(); + IAsyncEnumerable ToAsyncEnumerable(CancellationToken cancellationToken = default); + IEnumerable ToEnumerable(CancellationToken cancellationToken = default); } /// @@ -282,6 +282,5 @@ namespace ThingsGateway.SqlSugar NavQueryableProvider Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7); NavQueryableProvider Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7); NavQueryableProvider Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7); - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IQueryable.cs index 4a73c07a6..146345121 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IQueryable.cs @@ -118,7 +118,6 @@ namespace ThingsGateway.SqlSugar ISugarQueryable SampleBy(int timeNumber, SampleByUnit timeType); ISugarQueryable SampleBy(int timeNumber, string timeType); - ISugarQueryable GroupBy(Expression> expression); ISugarQueryable GroupBy(string groupFields); ISugarQueryable GroupByIF(bool isGroupBy, Expression> expression); @@ -265,7 +264,6 @@ namespace ThingsGateway.SqlSugar Task ToDataTablePageAsync(int pageNumber, int pageSize, RefAsync totalNumber); Task ToDataTableByEntityPageAsync(int pageNumber, int pageSize, RefAsync totalNumber); - DataTable ToOffsetDataTablePage(int pageNumber, int pageSize); Task ToOffsetDataTablePageAsync(int pageNumber, int pageSize); DataTable ToOffsetDataTablePage(int pageNumber, int pageSize, ref int totalNumber); @@ -274,7 +272,6 @@ namespace ThingsGateway.SqlSugar Task ToOffsetDataTablePageAsync(int pageNumber, int pageSize, RefAsync totalNumber); Task ToOffsetDataTableByEntityPageAsync(int pageNumber, int pageSize, RefAsync totalNumber); - List ToOffsetPage(int pageNumber, int pageSize); List ToOffsetPage(int pageNumber, int pageSize, ref int totalNumber); List ToOffsetPage(int pageNumber, int pageSize, ref int totalNumber, ref int totalPage); @@ -1603,8 +1600,6 @@ namespace ThingsGateway.SqlSugar ISugarQueryable OrderBy(Expression> expression, OrderByType type = OrderByType.Asc); ISugarQueryable OrderBy(Expression> expression, OrderByType type = OrderByType.Asc); - - new ISugarQueryable OrderByIF(bool isOrderBy, Expression> expression, OrderByType type = OrderByType.Asc); ISugarQueryable OrderByIF(bool isOrderBy, Expression> expression, OrderByType type = OrderByType.Asc); ISugarQueryable OrderByIF(bool isOrderBy, Expression> expression, OrderByType type = OrderByType.Asc); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISimpleClient.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISimpleClient.cs index c948209e6..07972847c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISimpleClient.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISimpleClient.cs @@ -57,7 +57,6 @@ namespace ThingsGateway.SqlSugar List InsertReturnSnowflakeId(IReadOnlyList insertObjs); T InsertReturnEntity(T insertObj); - bool IsAny(Expression> whereExpression); bool IsAny(List conditionalModels); bool Update(Expression> columns, Expression> whereExpression); @@ -65,9 +64,6 @@ namespace ThingsGateway.SqlSugar bool Update(T updateObj); bool UpdateRange(IReadOnlyList updateObjs); - - - Task CountAsync(Expression> whereExpression); Task DeleteAsync(Expression> whereExpression); Task DeleteAsync(T deleteObj); @@ -98,9 +94,6 @@ namespace ThingsGateway.SqlSugar Task UpdateAsync(T updateObj); Task UpdateRangeAsync(IReadOnlyList updateObjs); - - - Task CountAsync(Expression> whereExpression, CancellationToken cancellationToken); Task DeleteAsync(Expression> whereExpression, CancellationToken cancellationToken); Task DeleteAsync(T deleteObj, CancellationToken cancellationToken); @@ -131,6 +124,5 @@ namespace ThingsGateway.SqlSugar Task UpdateAsync(Expression> columns, Expression> whereExpression, CancellationToken cancellationToken); Task UpdateAsync(T updateObj, CancellationToken cancellationToken); Task UpdateRangeAsync(IReadOnlyList updateObjs, CancellationToken cancellationToken); - } } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISqlBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISqlBuilder.cs index eca932237..9b0a6501b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISqlBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISqlBuilder.cs @@ -44,6 +44,5 @@ namespace ThingsGateway.SqlSugar bool SupportReadToken { get; set; } Task GetReaderByToken(IDataReader dataReader, CancellationToken cancellationToken); - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISqlSugarClient.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISqlSugarClient.cs index 41bd0e79a..dc2ab1578 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISqlSugarClient.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/ISqlSugarClient.cs @@ -16,12 +16,10 @@ namespace ThingsGateway.SqlSugar Guid ContextID { get; set; } ConnectionConfig CurrentConnectionConfig { get; set; } - IAdo Ado { get; } AopProvider Aop { get; } ICodeFirst CodeFirst { get; } - IDbFirst DbFirst { get; } IDbMaintenance DbMaintenance { get; } EntityMaintenance EntityMaintenance { get; set; } @@ -144,8 +142,8 @@ namespace ThingsGateway.SqlSugar #region Saveable GridSaveProvider GridSave(List saveList) where T : class, new(); GridSaveProvider GridSave(List oldList, List saveList) where T : class, new(); - IStorageable Storageable(IReadOnlyList dataList) where T : class, new(); - StorageableDataTable Storageable(List> dictionaryList, string tableName); + IStorageable Storageable(IEnumerable dataList) where T : class, new(); + StorageableDataTable Storageable(IEnumerable> dictionaryList, string tableName); StorageableDataTable Storageable(Dictionary dictionary, string tableName); IStorageable StorageableT(T data) where T : class, new(); StorageableDataTable Storageable(DataTable data); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IStorageable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IStorageable.cs index 52e2e0f9d..987d2ac0f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IStorageable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IStorageable.cs @@ -160,7 +160,6 @@ namespace ThingsGateway.SqlSugar } public int BulkUpdate(params string[] UpdateColumns) { - Check.Exception(UpdateColumns == null, "UpdateColumns is null"); if (_WhereColumnList != null && _WhereColumnList.Count != 0) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IUpdateable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IUpdateable.cs index 69bd91d41..8b6d85672 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IUpdateable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Interface/IUpdateable.cs @@ -19,7 +19,6 @@ namespace ThingsGateway.SqlSugar Task ExecuteCommandHasChangeAsync(); Task ExecuteCommandHasChangeAsync(CancellationToken token); - IUpdateable AS(string tableName); IUpdateable AsType(Type tableNameType); IUpdateable With(string lockString); @@ -31,8 +30,6 @@ namespace ThingsGateway.SqlSugar IUpdateable Where(string fieldName, string conditionalType, object fieldValue); - - /// /// Non primary key entity update function,.WhereColumns(it=>new{ it.Id }) /// @@ -53,7 +50,6 @@ namespace ThingsGateway.SqlSugar IUpdateable UpdateColumns(IReadOnlyList columns); IUpdateable UpdateColumns(IReadOnlyList columns, bool appendColumnsByDataFilter); - /// ///.SetColumns(it=>it.Name=="a") /// @@ -75,12 +71,9 @@ namespace ThingsGateway.SqlSugar IUpdateable UpdateColumnsIF(bool isUpdateColumns, Expression> columns); IUpdateable UpdateColumnsIF(bool isUpdateColumns, params string[] columns); - IUpdateable SetColumnsIF(bool isUpdateColumns, Expression> columns); IUpdateable SetColumnsIF(bool isUpdateColumns, Expression> columns); - - IUpdateable IgnoreColumns(bool ignoreAllNullColumns, bool isOffIdentity = false, bool ignoreAllDefaultValue = false); IUpdateable IgnoreColumns(Expression> columns); IUpdateable IgnoreColumnsIF(bool isIgnore, Expression> columns); @@ -88,7 +81,6 @@ namespace ThingsGateway.SqlSugar IUpdateable IgnoreColumns(IReadOnlyList columns); IUpdateable IgnoreNullColumns(bool isIgnoreNull = true); - IUpdateable IsEnableUpdateVersionValidation(); IUpdateable EnableDiffLogEvent(object businessData = null); IUpdateable EnableDiffLogEventIF(bool isEnableDiffLog, object businessData = null); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/DynamicLinq/DynamicCoreHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/DynamicLinq/DynamicCoreHelper.cs index f572cc3bb..32220ff9c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/DynamicLinq/DynamicCoreHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/DynamicLinq/DynamicCoreHelper.cs @@ -46,7 +46,6 @@ namespace ThingsGateway.SqlSugar // 提取 FormattableString 中的参数值 var arguments = whereSql.GetArguments(); - var sql = ReplaceFormatParameters(whereSql.Format); sql = CompatibleDynamicLinqCoreBug(sql); @@ -82,7 +81,6 @@ namespace ThingsGateway.SqlSugar // 提取 FormattableString 中的参数值 var arguments = whereSql.GetArguments(); - var sql = ReplaceFormatParameters(whereSql.Format); // 构建动态表达式,使用常量表达式和 whereSql 中的参数值 @@ -102,7 +100,6 @@ namespace ThingsGateway.SqlSugar // 提取 FormattableString 中的参数值 var arguments = whereSql.GetArguments(); - var sql = ReplaceFormatParameters(whereSql.Format); sql = CompatibleDynamicLinqCoreBug(sql); @@ -124,7 +121,6 @@ namespace ThingsGateway.SqlSugar // 提取 FormattableString 中的参数值 var arguments = memberSql.GetArguments(); - var sql = ReplaceFormatParameters(memberSql.Format); // 构建动态表达式,使用常量表达式和 whereSql 中的参数值 @@ -144,7 +140,6 @@ namespace ThingsGateway.SqlSugar // 提取 FormattableString 中的参数值 var arguments = memberSql.GetArguments(); - var sql = ReplaceFormatParameters(memberSql.Format); // 构建动态表达式,使用常量表达式和 whereSql 中的参数值 diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/DynamicLinq/SqlSugarDynamicExpressionParser.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/DynamicLinq/SqlSugarDynamicExpressionParser.cs index 11e21e6f9..54d30acf6 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/DynamicLinq/SqlSugarDynamicExpressionParser.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/DynamicLinq/SqlSugarDynamicExpressionParser.cs @@ -5,7 +5,6 @@ namespace ThingsGateway.SqlSugar { public static class SqlSugarDynamicExpressionParser { - public static LambdaExpression ParseLambda(ParameterExpression[] parameterExpressions, Type type, string sql, object[] objects) { if (StaticConfig.DynamicExpressionParserType == null) @@ -31,7 +30,6 @@ namespace ThingsGateway.SqlSugar } else { - // 查找 ParseLambda 方法 MethodInfo parseLambdaMethod = StaticConfig.DynamicExpressionParserType .GetMyMethod("ParseLambda", 4, typeof(ParameterExpression[]), typeof(Type), typeof(string), typeof(object[])); @@ -47,7 +45,5 @@ namespace ThingsGateway.SqlSugar return lambda; } } - } } - diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Entities/JsonTableConfig.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Entities/JsonTableConfig.cs index 9dec59d09..f4dc2b50a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Entities/JsonTableConfig.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Entities/JsonTableConfig.cs @@ -1,6 +1,5 @@ namespace ThingsGateway.SqlSugar { - public class JsonTableConfig { public string TableName { get; set; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Interface/IJsonProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Interface/IJsonProvider.cs index 6bbfa7930..5b7f470ae 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Interface/IJsonProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Interface/IJsonProvider.cs @@ -1,6 +1,5 @@ namespace ThingsGateway.SqlSugar { - public interface IJsonProvider { List ToSqlList(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Interface/IModelToSql.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Interface/IModelToSql.cs index 83544580b..ffa4954e5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Interface/IModelToSql.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Interface/IModelToSql.cs @@ -10,5 +10,4 @@ KeyValuePair> SelectModelToSql(List models); KeyValuePair> FuncModelToSql(IFuncModel model); } - } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/FuncModel.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/FuncModel.cs index 092f0c543..a59518ee7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/FuncModel.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/FuncModel.cs @@ -14,5 +14,4 @@ { public List Objects { get; set; } } - } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/JoinModel.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/JoinModel.cs index bbdcd8916..1e7014cc9 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/JoinModel.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/JoinModel.cs @@ -1,6 +1,5 @@ namespace ThingsGateway.SqlSugar { - public class JoinModel { public string TableName { get; set; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/JsonSqlModels.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/JsonSqlModels.cs index 2d0751e80..dfeb0749e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/JsonSqlModels.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonModels/JsonSqlModels.cs @@ -2,8 +2,6 @@ { public class SqlObjectResult { - - public SqlObjectResult(KeyValuePair> keyValuePair, JsonProviderType jsonSqlType) { this.Sql = keyValuePair.Key; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonSqlFuncToModel.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonSqlFuncToModel.cs index dd68fbf66..087ba634d 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonSqlFuncToModel.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonSqlFuncToModel.cs @@ -78,7 +78,5 @@ namespace ThingsGateway.SqlSugar #endregion - - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonSqlFuncToParameters.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonSqlFuncToParameters.cs index ac7dde5f2..6fbbefa15 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonSqlFuncToParameters.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonSqlFuncToParameters.cs @@ -56,7 +56,5 @@ namespace ThingsGateway.SqlSugar } #endregion - - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToGroupByModels.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToGroupByModels.cs index 9fd703777..66d5f0011 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToGroupByModels.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToGroupByModels.cs @@ -22,6 +22,5 @@ namespace ThingsGateway.SqlSugar } return conditionalModels; } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToJoinModels.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToJoinModels.cs index 807838cc4..e21f56078 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToJoinModels.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToJoinModels.cs @@ -7,7 +7,6 @@ namespace ThingsGateway.SqlSugar /// public partial class ContextMethods : IContextMethods { - public JoinModel JsonToJoinModels(string json) { JoinModel conditionalModels = new JoinModel(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToSelectModels.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToSelectModels.cs index 59ef9faf0..9d5ac164f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToSelectModels.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/JsonToModel/JsonToSelectModels.cs @@ -32,7 +32,6 @@ namespace ThingsGateway.SqlSugar FieldName = fileName, AsName = asName }); - } else if (IsArray(item)) { @@ -47,7 +46,6 @@ namespace ThingsGateway.SqlSugar FieldName = fileName, AsName = asName }); - } else { @@ -57,7 +55,6 @@ namespace ThingsGateway.SqlSugar AsName = item.ObjToString().Trim() }); } - } return conditionalModels; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/FuncModelToSql.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/FuncModelToSql.cs index af53f87dc..fa8106964 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/FuncModelToSql.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/FuncModelToSql.cs @@ -28,7 +28,7 @@ namespace ThingsGateway.SqlSugar { Check.ExceptionEasy("Enable MappingColumn need in ConnectionConfig - > MoreSettings - > EnableModelFuncMappingColumn set to true", "MappingColumn考虑到风险情况需要开启才能使用,请在 ConnectionConfig->MoreSettings->EnableModelFuncMappingColumn设置为true"); } - resSql = parameters.First() + ""; + resSql = parameters[0] + ""; } return new KeyValuePair>(resSql, resPars); } @@ -62,7 +62,6 @@ namespace ThingsGateway.SqlSugar return resSql; } - private static System.Reflection.MethodInfo GetMethod(IDbMethods dbMethods, string methodName) { return dbMethods.GetType().GetMethods() @@ -122,7 +121,7 @@ namespace ThingsGateway.SqlSugar } if (IsToStringFormat(methodName, args)) { - var fieldName = args.First().MemberName.ObjToString(); + var fieldName = args[0].MemberName.ObjToString(); var format = args.Last().MemberValue.ObjToString(); var queryable = this.Context.Queryable() .Select(it => SqlFunc.MappingColumn(fieldName).ToString(format)); @@ -167,7 +166,7 @@ namespace ThingsGateway.SqlSugar private static bool IsSqlFuncMethod(System.Reflection.ParameterInfo[] pars) { - return pars.First().ParameterType == typeof(MethodCallExpressionModel); + return pars[0].ParameterType == typeof(MethodCallExpressionModel); } private static bool IsFormatMethod(string methodName) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/GroupByModelToSql.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/GroupByModelToSql.cs index 64f60a6df..e75eb38f0 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/GroupByModelToSql.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/GroupByModelToSql.cs @@ -19,7 +19,6 @@ namespace ThingsGateway.SqlSugar var orderByModel = item as GroupByModel; sql.Append($" {this.GetTranslationColumnName(orderByModel.FieldName.ObjToString().ToSqlFilter())} ,"); } - } return new KeyValuePair>(sql.ToString().TrimEnd(','), pars); } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/OrderByModelToSql.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/OrderByModelToSql.cs index 1ba3e48b6..cda18b2d5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/OrderByModelToSql.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/OrderByModelToSql.cs @@ -19,7 +19,6 @@ namespace ThingsGateway.SqlSugar var orderByModel = item as OrderByModel; sql.Append($" {this.GetTranslationColumnName(orderByModel.FieldName.ObjToString().ToSqlFilter())} {orderByModel.OrderByType.ToString().ToUpper()} ,"); } - } return new KeyValuePair>(sql.ToString().TrimEnd(','), pars); } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/SqlPart.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/SqlPart.cs index bb1d50237..0678ffdbc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/SqlPart.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/ModelToSql/SqlPart.cs @@ -67,7 +67,7 @@ namespace ThingsGateway.SqlSugar var list = (value as List); if (list.Count == 1) { - return GetSqlPart(list.First(), pars).ObjToString(); + return GetSqlPart(list[0], pars).ObjToString(); } else { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Common/JsonCommonProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Common/JsonCommonProvider.cs index e8f60497d..81717e57c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Common/JsonCommonProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Common/JsonCommonProvider.cs @@ -36,7 +36,6 @@ namespace ThingsGateway.SqlSugar var shortName = item.First()[1].ObjToString(); jsonTableNameInfo.ShortName = shortName; jsonTableNameInfo.TableName = tableName; - } else { @@ -47,7 +46,6 @@ namespace ThingsGateway.SqlSugar } public KeyValuePair> GetWhere(string item, SqlSugarProvider context) { - if (!IsConditionalModel(item)) { var obj = context.Utilities.JsonToSqlFuncModels(item); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Deleteable/JsonDeleteableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Deleteable/JsonDeleteableProvider.cs index 6f2b311d2..ff3c21d93 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Deleteable/JsonDeleteableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Deleteable/JsonDeleteableProvider.cs @@ -75,7 +75,7 @@ namespace ThingsGateway.SqlSugar { var result = new JsonDeleteResult(); var sqlInfo = this.ToSqlList(); - var sqlInfoResult = sqlInfo.First(); + var sqlInfoResult = sqlInfo[0]; result.UpdateRows = this.context.Ado.ExecuteCommand(sqlInfoResult.Sql, sqlInfoResult.Parameters); return result; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Insertable/JsonInsertableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Insertable/JsonInsertableProvider.cs index 85cdfaacb..4dd4e48b7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Insertable/JsonInsertableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Insertable/JsonInsertableProvider.cs @@ -18,7 +18,7 @@ namespace ThingsGateway.SqlSugar { var result = new JsonInsertResult(); var sqlInfo = this.ToSqlList(); - var sqlInfoResult = sqlInfo.First(); + var sqlInfoResult = sqlInfo[0]; if (sqlInfoResult.JsonSqlType != JsonProviderType.InsertableIdentity) { result.InsertCount = this.context.Ado.ExecuteCommand(sqlInfoResult.Sql, sqlInfoResult.Parameters); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Insertable/PrivateProperty.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Insertable/PrivateProperty.cs index ac6c8ee5e..f08b3dcab 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Insertable/PrivateProperty.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Insertable/PrivateProperty.cs @@ -11,6 +11,5 @@ namespace ThingsGateway.SqlSugar private string IdentityId { get; set; } private int Count { get; set; } private IInsertable> sugarInsertable; - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/ApendJoinLastAfter.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/ApendJoinLastAfter.cs index 4661b2a8a..906c2206b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/ApendJoinLastAfter.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/ApendJoinLastAfter.cs @@ -15,10 +15,8 @@ namespace ThingsGateway.SqlSugar var isJoinTable = IsAnyJoin(appendTypeNames); foreach (var config in tableConfigs) { - if (isJoinTable) { - } else { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendFrom.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendFrom.cs index 8cc648349..206c4bd56 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendFrom.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendFrom.cs @@ -7,7 +7,6 @@ namespace ThingsGateway.SqlSugar /// public partial class JsonQueryableProvider : IJsonQueryableProvider { - private void AppendFrom(JToken item) { var tableNameInfo = jsonCommonProvider.GetTableName(item); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendGroupBy.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendGroupBy.cs index c3a58f5a4..30f82cab5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendGroupBy.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendGroupBy.cs @@ -6,7 +6,6 @@ namespace ThingsGateway.SqlSugar /// public partial class JsonQueryableProvider : IJsonQueryableProvider { - private void AppendGroupBy(JToken item) { var value = item.First().ToString(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendHaving.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendHaving.cs index a1958b119..3d6798b86 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendHaving.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendHaving.cs @@ -12,6 +12,5 @@ namespace ThingsGateway.SqlSugar var obj = context.Utilities.JsonToSqlFuncModels(value); sugarQueryable.Having(obj); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendJoin.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendJoin.cs index 3a756652c..2a38796e9 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendJoin.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendJoin.cs @@ -41,12 +41,10 @@ namespace ThingsGateway.SqlSugar private void AfterJoin() { - } private void BeforeJoin() { - } } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendOrderBy.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendOrderBy.cs index 02324c023..67b803b20 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendOrderBy.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendOrderBy.cs @@ -13,6 +13,5 @@ namespace ThingsGateway.SqlSugar var obj = context.Utilities.JsonToOrderByModels(value); sugarQueryable.OrderBy(obj); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendSelect.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendSelect.cs index f90ca034f..aa2ed1da3 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendSelect.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendSelect.cs @@ -1,7 +1,6 @@ using Newtonsoft.Json.Linq; namespace ThingsGateway.SqlSugar { - /// /// AppendSelect /// diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendWhere.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendWhere.cs index fd2e19e58..fce63acf3 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendWhere.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/AppendWhere.cs @@ -2,7 +2,6 @@ namespace ThingsGateway.SqlSugar { - /// /// AppendWhere /// @@ -18,7 +17,6 @@ namespace ThingsGateway.SqlSugar private void AfterWhere() { - } private void BeforeWhere() diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/JsonQueryableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/JsonQueryableProvider.cs index c47b8d757..160d092b7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/JsonQueryableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/JsonQueryableProvider.cs @@ -7,7 +7,6 @@ namespace ThingsGateway.SqlSugar /// public partial class JsonQueryableProvider : IJsonQueryableProvider { - public JsonQueryableProvider(ISqlSugarClient context, JObject jobject) { this.jobject = jobject; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/RegisterAop.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/RegisterAop.cs index 66a465b7d..c648bd461 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/RegisterAop.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/RegisterAop.cs @@ -23,8 +23,6 @@ appendIndex++; sugarQueryable.Where(sql, p.Value); } - - } }; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/ResultDefault.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/ResultDefault.cs index b048fbbac..b5e7ae2ff 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/ResultDefault.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Queryable/ResultDefault.cs @@ -2,7 +2,6 @@ namespace ThingsGateway.SqlSugar { - /// /// ResultDefault /// diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendRow.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendRow.cs index 3cddef697..025318abd 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendRow.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendRow.cs @@ -10,11 +10,11 @@ namespace ThingsGateway.SqlSugar var value = itemFirst.ToString(); var dics = context.Utilities.JsonToColumnsModels(value); if (isObject) - sugarUpdateable = this.context.UpdateableT(dics.First()).AS(this.TableName); + sugarUpdateable = this.context.UpdateableT(dics[0]).AS(this.TableName); else { sugarUpdateable = this.context.Updateable>(dics).AS(this.TableName); - isList = dics.Take(2).Any(); + isList = dics.Count > 1; } } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendWhere.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendWhere.cs index 0453c59c5..7fc32e4f0 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendWhere.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendWhere.cs @@ -10,6 +10,5 @@ namespace ThingsGateway.SqlSugar var sqlObj = jsonCommonProvider.GetWhere(item, sugarUpdateable.UpdateBuilder.Context); sugarUpdateable.Where(sqlObj.Key, sqlObj.Value); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendWhereColumns.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendWhereColumns.cs index da704a7e7..dcc5394c8 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendWhereColumns.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/AppendWhereColumns.cs @@ -10,6 +10,5 @@ namespace ThingsGateway.SqlSugar Check.ExceptionEasy(columns.IsNullOrEmpty(), "need WhereColumns", "WhereColumns 需要设置列名"); this.sugarUpdateable.WhereColumns(columns); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/Helpercs.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/Helpercs.cs index 83e59cb07..09d57c6ae 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/Helpercs.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/Helpercs.cs @@ -2,7 +2,6 @@ { public partial class JsonUpdateableProvider : IJsonUpdateableProvider { - private static bool IsColumns(string name) { return name.Equals("Columns", StringComparison.CurrentCultureIgnoreCase); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/JsonUpdateableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/JsonUpdateableProvider.cs index cef8550a5..e618e9288 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/JsonUpdateableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Provider/Updateable/JsonUpdateableProvider.cs @@ -19,7 +19,7 @@ namespace ThingsGateway.SqlSugar { var result = new JsonUpdateResult(); var sqlInfo = this.ToSqlList(); - var sqlInfoResult = sqlInfo.First(); + var sqlInfoResult = sqlInfo[0]; result.UpdateRows = this.context.Ado.ExecuteCommand(sqlInfoResult.Sql, sqlInfoResult.Parameters); return result; } @@ -48,7 +48,6 @@ namespace ThingsGateway.SqlSugar if (it.Path.EqualCase(JsonProviderConfig.KeyUpdateable.Get())) return 0; if (it.Path.EqualCase("Columns")) return 1; else return 3; - }).ToList(); return appendTypeNames; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Queryable/QueryableProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Queryable/QueryableProvider.cs index 490ee4c2d..77ed191a9 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Queryable/QueryableProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Json2Sql/Queryable/QueryableProvider.cs @@ -1,6 +1,5 @@ namespace ThingsGateway.SqlSugar { - public partial class QueryableProvider : QueryableAccessory, ISugarQueryable { public ISugarQueryable AddJoinInfo(string tableName, string shortName, IFuncModel models, JoinType type = JoinType.Left) @@ -83,8 +82,6 @@ return result; } - - public ISugarQueryable Select(List models, AsNameFormatType type) { if (type == AsNameFormatType.NoConvert) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/OnlyCore/DataExtensions.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/OnlyCore/DataExtensions.cs index e46411abc..a8e4592df 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/OnlyCore/DataExtensions.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/OnlyCore/DataExtensions.cs @@ -16,7 +16,6 @@ using System.Data.OscarClient; namespace ThingsGateway.SqlSugar { - /// /// 数据填充器 /// @@ -37,7 +36,6 @@ namespace ThingsGateway.SqlSugar public SqlDataAdapter() { - } /// @@ -135,7 +133,6 @@ namespace ThingsGateway.SqlSugar { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } - } while (dr.Read()) @@ -173,7 +170,6 @@ namespace ThingsGateway.SqlSugar public MySqlDataAdapter() { - } /// @@ -320,7 +316,6 @@ namespace ThingsGateway.SqlSugar public SqliteDataAdapter() { - } /// @@ -465,7 +460,6 @@ namespace ThingsGateway.SqlSugar public MyOracleDataAdapter() { - } /// @@ -600,7 +594,6 @@ namespace ThingsGateway.SqlSugar public NpgsqlDataAdapter() { - } /// @@ -715,7 +708,6 @@ namespace ThingsGateway.SqlSugar } } - /// /// 数据填充器 /// @@ -736,7 +728,6 @@ namespace ThingsGateway.SqlSugar public MyDmDataAdapter() { - } /// @@ -851,7 +842,6 @@ namespace ThingsGateway.SqlSugar } } - /// /// 数据填充器 /// @@ -872,7 +862,6 @@ namespace ThingsGateway.SqlSugar public KdbndpDataAdapter() { - } /// @@ -987,7 +976,6 @@ namespace ThingsGateway.SqlSugar } } - /// /// 数据填充器 /// @@ -1008,7 +996,6 @@ namespace ThingsGateway.SqlSugar public OscarDataAdapter() { - } /// @@ -1122,6 +1109,4 @@ namespace ThingsGateway.SqlSugar } } } - - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/CodeFirst/DmCodeFirst.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/CodeFirst/DmCodeFirst.cs index 7f84963c2..cb7c988b3 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/CodeFirst/DmCodeFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/CodeFirst/DmCodeFirst.cs @@ -100,6 +100,5 @@ if (item.IsPrimarykey) this.Context.DbMaintenance.AddPrimaryKey(tableName, item.DbColumnName); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DbBind/DmDbBind.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DbBind/DmDbBind.cs index 23bfcfde4..17b564985 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DbBind/DmDbBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DbBind/DmDbBind.cs @@ -126,7 +126,6 @@ new KeyValuePair("nvarchar2",CSharpDataType.@string), new KeyValuePair("longvarchar",CSharpDataType.@string), - new KeyValuePair("char",CSharpDataType.@string), new KeyValuePair("nchar",CSharpDataType.@string), new KeyValuePair("clob",CSharpDataType.@string), @@ -142,8 +141,6 @@ new KeyValuePair("timestamp with time zone",CSharpDataType.DateTime), new KeyValuePair("timestamp with time zone",CSharpDataType.DateTime), - - new KeyValuePair("timestamp with local time zone",CSharpDataType.DateTimeOffset), new KeyValuePair("timestamp with time zone",CSharpDataType.DateTimeOffset), new KeyValuePair("timestamp with time zone",CSharpDataType.DateTimeOffset), diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs index b5b727742..f3bea55eb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs @@ -441,11 +441,7 @@ WHERE table_name = '" + tableName + "'"); return GetColumnInfosByTableName(tableName); else return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, - () => - { - return GetColumnInfosByTableName(tableName); - - }); + () => GetColumnInfosByTableName(tableName)); } private List GetColumnInfosByTableName(string tableName) @@ -575,7 +571,7 @@ WHERE table_name = '" + tableName + "'"); this.Context.Ado.IsEnableLogEvent = oldIsEnableLog; return pks; }); - return comments.HasValue() ? comments.First() : ""; + return comments.HasValue() ? comments[0] : ""; } public string GetFieldComment(string tableName, string fieldName) @@ -600,7 +596,6 @@ WHERE table_name = '" + tableName + "'"); { return string.Empty; } - } public override bool CreateTable(string tableName, List columns, bool isCreatePrimaryKey = true) @@ -642,7 +637,6 @@ FROM ALL_TABLES t WHERE upper(t.TABLE_NAME) = upper('{tableName}') AND t.OWNER = SF_GET_SCHEMA_NAME_BY_ID(CURRENT_SCHID) ") > 0; - } else { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DmProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DmProvider.cs index 8cfa53dfd..b9c48bb3d 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DmProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/DmProvider.cs @@ -4,7 +4,6 @@ using System.Data; using System.Data.Common; using System.Text.RegularExpressions; - namespace ThingsGateway.SqlSugar { public partial class DmProvider : AdoProvider diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/Insertable/DmInserttable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/Insertable/DmInserttable.cs index e1a82c2e6..a41440cac 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/Insertable/DmInserttable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/Insertable/DmInserttable.cs @@ -2,6 +2,5 @@ { public class DmInserttable : InsertableProvider where T : class, new() { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/Queryable/DmQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/Queryable/DmQueryable.cs index bdfbf6019..e1c249258 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/Queryable/DmQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/Queryable/DmQueryable.cs @@ -22,42 +22,32 @@ } public class DmQueryable : QueryableProvider { - } public class DmQueryable : QueryableProvider { - } public class DmQueryable : QueryableProvider { - } public class DmQueryable : QueryableProvider { - } public class DmQueryable : QueryableProvider { - } public class DmQueryable : QueryableProvider { - } public class DmQueryable : QueryableProvider { - } public class DmQueryable : QueryableProvider { - } public class DmQueryable : QueryableProvider { - } public class DmQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmBlukCopy.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmBlukCopy.cs index e86f26305..d4abc07d2 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmBlukCopy.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmBlukCopy.cs @@ -15,7 +15,7 @@ namespace ThingsGateway.SqlSugar { if (DbColumnInfoList == null || DbColumnInfoList.Count == 0) return 0; - if (Inserts.First().GetType() == typeof(DataTable)) + if (Inserts[0].GetType() == typeof(DataTable)) { return WriteToServer(); } @@ -39,7 +39,7 @@ namespace ThingsGateway.SqlSugar { if (DbColumnInfoList == null || DbColumnInfoList.Count == 0) return 0; - if (Inserts.First().GetType() == typeof(DataTable)) + if (Inserts[0].GetType() == typeof(DataTable)) { return WriteToServer(); } @@ -62,7 +62,7 @@ namespace ThingsGateway.SqlSugar private int WriteToServer() { - var dt = this.Inserts.First() as DataTable; + var dt = this.Inserts[0] as DataTable; if (dt == null) return 0; Check.Exception(dt.TableName == "Table", "dt.TableName can't be null "); @@ -81,7 +81,6 @@ namespace ThingsGateway.SqlSugar DataRow dr = result.NewRow(); foreach (DataColumn column in result.Columns) { - if (dt.Columns.Cast().Select(it => it.ColumnName).Contains(column.ColumnName, StringComparer.OrdinalIgnoreCase)) { dr[column.ColumnName] = item[column.ColumnName]; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmDeleteBuilder.cs index dd3ecfa6c..8771afb36 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class DmDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmExpressionContext.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmExpressionContext.cs index b262dcf26..dfe7dd590 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmExpressionContext.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmExpressionContext.cs @@ -45,7 +45,6 @@ } public partial class DmMethod : DefaultDbMethod, IDbMethods { - public override string WeekOfYear(MethodCallExpressionModel mode) { var parameterNameA = mode.Args[0].MemberName; @@ -289,7 +288,6 @@ } public override string TrimStart(MethodCallExpressionModel mode) { - var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; return $" LTRIM({parameterNameA}, {parameterNameB}) "; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmFastBuilder.cs index 0d4ed8430..3d813b1cb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmFastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmFastBuilder.cs @@ -4,7 +4,6 @@ using System.Data; namespace ThingsGateway.SqlSugar { - public class DmFastBuilder : FastBuilder, IFastBuilder { public override bool IsActionUpdateColumns { get; set; } = true; @@ -93,6 +92,5 @@ namespace ThingsGateway.SqlSugar copy.BulkCopyTimeout = this.Context.Ado.CommandTimeOut; return copy; } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmInsertBuilder.cs index ca0e1c228..961f83134 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmInsertBuilder.cs @@ -19,7 +19,6 @@ ({1}) VALUES ({2}) ;"; - } } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmQueryBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmQueryBuilder.cs index 85abc3ef3..430932423 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmQueryBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Dm/SqlBuilder/DmQueryBuilder.cs @@ -18,7 +18,6 @@ namespace ThingsGateway.SqlSugar } public override string ToSqlString() { - if (PartitionByValue.HasValue()) { return base.ToSqlString(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/DbBind/KdbndpBind.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/DbBind/KdbndpBind.cs index 944abee25..c876475bc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/DbBind/KdbndpBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/DbBind/KdbndpBind.cs @@ -62,7 +62,6 @@ } } public static List> MappingTypesConst = new List>(){ - new KeyValuePair("int2",CSharpDataType.@short), new KeyValuePair("uint2",CSharpDataType.@short), //new KeyValuePair("int1",CSharpDataType.@byte), diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs index c6cd70e61..1b124830a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs @@ -44,14 +44,12 @@ ) pkey on pcolumn.table_name = pkey.relname order by ptables.tablename"; - if (IsPgModel()) { sql = sql.Replace("sys_", "pg_"); } else if (IsSqlServerModel()) { - sql = sql.Replace("sys_", "pg_"); sql = sql.Replace("pg_constraint.conkey[1]", "pg_constraint.conkey{{1}}"); sql = sql.Replace("UPPER(", "pg_catalog.upper("); @@ -520,7 +518,6 @@ WHERE tgrelid = '" + tableName + "'::regclass"); if (item.ColumnDescription != null) { db.DbMaintenance.AddColumnRemark(SqlBuilder.GetTranslationColumnName(item.DbColumnName).ToUpper(IsUpper), SqlBuilder.GetTranslationColumnName(item.DbTableName).ToUpper(IsUpper), item.ColumnDescription); - } } //table remak @@ -553,7 +550,6 @@ WHERE tgrelid = '" + tableName + "'::regclass"); { foreach (var item in columns) { - ConvertCreateColumnInfo(item); //if (item.DbColumnName.Equals("GUID", StringComparison.CurrentCultureIgnoreCase) && item.Length == 0) //{ @@ -569,7 +565,6 @@ WHERE tgrelid = '" + tableName + "'::regclass"); if (columns.Any(it => it.IsPrimarykey) && isCreatePrimaryKey) { primaryKeyInfo = string.Format(", Primary key({0})", string.Join(",", columns.Where(it => it.IsPrimarykey).Select(it => this.SqlBuilder.GetTranslationColumnName(it.DbColumnName.ToUpper(IsUpper))))); - } sql = sql.Replace("$PrimaryKey", primaryKeyInfo); this.Context.Ado.ExecuteCommand(sql); @@ -679,7 +674,6 @@ WHERE tgrelid = '" + tableName + "'::regclass"); } catch { - } return result; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/Insertable/KdbndpInserttable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/Insertable/KdbndpInserttable.cs index 80a00faa8..4dc0922e9 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/Insertable/KdbndpInserttable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/Insertable/KdbndpInserttable.cs @@ -14,7 +14,6 @@ return result; } - public override async Task ExecuteReturnIdentityAsync() { InsertBuilder.IsReturnIdentity = true; @@ -70,7 +69,7 @@ if (identityKeys.Count == 0) { return this.ExecuteCommand() > 0; } var idValue = ExecuteReturnBigIdentity(); Check.Exception(identityKeys.Count > 1, "ExecuteCommandIdentityIntoEntity does not support multiple identity keys"); - var identityKey = identityKeys.First(); + var identityKey = identityKeys[0]; object setValue = 0; if (idValue > int.MaxValue) setValue = idValue; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/KdbndpSQLProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/KdbndpSQLProvider.cs index f1b48f6f0..a0dddb415 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/KdbndpSQLProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/KdbndpSQLProvider.cs @@ -179,7 +179,6 @@ namespace ThingsGateway.SqlSugar { typeof(bool[]),KdbndpDbType.Boolean}, {typeof(DateTime[]),KdbndpDbType.Date}, - { typeof(int?[]),KdbndpDbType.Integer}, { typeof(short?[]),KdbndpDbType.Smallint}, { typeof(long?[]),KdbndpDbType.Bigint}, @@ -189,7 +188,6 @@ namespace ThingsGateway.SqlSugar { typeof(bool?[]),KdbndpDbType.Boolean}, {typeof(DateTime?[]),KdbndpDbType.Date}, - { typeof(string[]), KdbndpDbType.Text}, }; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/Queryable/KdbndpQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/Queryable/KdbndpQueryable.cs index f1132821a..beb2302b1 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/Queryable/KdbndpQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/Queryable/KdbndpQueryable.cs @@ -22,42 +22,32 @@ } public class KdbndpQueryable : QueryableProvider { - } public class KdbndpQueryable : QueryableProvider { - } public class KdbndpQueryable : QueryableProvider { - } public class KdbndpQueryable : QueryableProvider { - } public class KdbndpQueryable : QueryableProvider { - } public class KdbndpQueryable : QueryableProvider { - } public class KdbndpQueryable : QueryableProvider { - } public class KdbndpQueryable : QueryableProvider { - } public class KdbndpQueryable : QueryableProvider { - } public class KdbndpQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpBuilder.cs index d66f7f8b8..9574850e1 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpBuilder.cs @@ -31,7 +31,6 @@ } } - public override string GetTranslationColumnName(string propertyName) { if (propertyName.Contains('.') && !propertyName.Contains(SqlTranslationLeft)) @@ -95,7 +94,6 @@ return " ( " + sql + " ) "; } - /// /// /// diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpDeleteBuilder.cs index e3117a190..a2bd5a60e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class KdbndpDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpExpressionContext.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpExpressionContext.cs index 521e5ab93..20c7c695c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpExpressionContext.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpExpressionContext.cs @@ -558,6 +558,5 @@ { return model?.Conext?.SugarContext?.Context?.CurrentConnectionConfig?.MoreSettings?.DatabaseModel == DbType.SqlServer; } - } } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpFastBuilder.cs index ea2247df3..11bef188f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpFastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpFastBuilder.cs @@ -111,7 +111,6 @@ namespace ThingsGateway.SqlSugar } } - public override async Task UpdateByTempAsync(string tableName, string tempName, string[] updateColumns, string[] whereColumns) { var sqlquerybulder = this.Context.Queryable().SqlBuilder; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpInsertBuilder.cs index 0ca53a8fb..0484757ef 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpInsertBuilder.cs @@ -21,7 +21,6 @@ namespace ThingsGateway.SqlSugar ({1}) VALUES ({2}) ;"; - } } } @@ -38,7 +37,7 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName))); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs index 4a843a777..b5fd0e747 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs @@ -96,7 +96,7 @@ namespace ThingsGateway.SqlSugar while (pageCount >= pageIndex) { StringBuilder updateTable = new StringBuilder(); - string setValues = string.Join(",", groupList.First().Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => + string setValues = string.Join(",", groupList[0].Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => { if (SetValues.IsValuable()) { @@ -109,7 +109,7 @@ namespace ThingsGateway.SqlSugar var result = string.Format("{0}=T.{0}", Builder.GetTranslationColumnName(it.DbColumnName)); return result; })); - string tempColumnValue = string.Join(",", groupList.First().Select(it => + string tempColumnValue = string.Join(",", groupList[0].Select(it => { if (SetValues.IsValuable()) { @@ -190,7 +190,6 @@ namespace ThingsGateway.SqlSugar } } return string.Format("CAST({0} AS {1})", base.GetDbColumn(it, FormatValue(it.Value)), dbType); - })) + ")"); ++i; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/CodeFirst/MySqlCodeFirst.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/CodeFirst/MySqlCodeFirst.cs index 4164526d9..ef7c98028 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/CodeFirst/MySqlCodeFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/CodeFirst/MySqlCodeFirst.cs @@ -119,7 +119,6 @@ } } - protected override bool IsNotSameType(EntityColumnInfo ec, DbColumnInfo dc) { if (ec.UnderType == UtilConstants.BoolType && dc.DataType == "tinyint" && dc.Length == 1) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbBind/MySqlDbBind.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbBind/MySqlDbBind.cs index 4936c906b..92c31c2cf 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbBind/MySqlDbBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbBind/MySqlDbBind.cs @@ -39,7 +39,6 @@ } } public static List> MappingTypesConst = new List>(){ - new KeyValuePair("int",CSharpDataType.@int), new KeyValuePair("mediumint",CSharpDataType.@int), new KeyValuePair("integer",CSharpDataType.@int), diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbMaintenance/DorisHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbMaintenance/DorisHelper.cs index c01f71090..2ab25937a 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbMaintenance/DorisHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbMaintenance/DorisHelper.cs @@ -2,7 +2,6 @@ { internal static class DorisHelper { - public static void UpdateDateParameter(MySqlConnector.MySqlParameter sqlParameter) { if (sqlParameter.DbType == System.Data.DbType.DateTime) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs index fb8324beb..530c7972c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs @@ -365,7 +365,6 @@ WHERE EVENT_OBJECT_TABLE = '" + tableName + "'"); } public override bool AddColumnRemark(string columnName, string tableName, string description) { - tableName = this.SqlBuilder.GetTranslationColumnName(tableName); columnName = this.SqlBuilder.GetTranslationColumnName(columnName); var sql = this.Context.Ado.GetDataTable($"SHOW CREATE TABLE {tableName};").Rows[0][1] + ""; @@ -401,7 +400,6 @@ WHERE EVENT_OBJECT_TABLE = '" + tableName + "'"); /// public override bool CreateDatabase(string databaseName, string databaseDirectory = null) { - if (this.Context.Ado.IsValidConnection() && this.Context.Ado.Connection.Database.EqualCase(databaseName)) { return true; @@ -487,7 +485,6 @@ WHERE EVENT_OBJECT_TABLE = '" + tableName + "'"); if (columns.Any(it => it.IsPrimarykey) && isCreatePrimaryKey) { primaryKeyInfo = string.Format(", Primary key({0})", string.Join(",", columns.Where(it => it.IsPrimarykey).Select(it => this.SqlBuilder.GetTranslationColumnName(it.DbColumnName)))); - } if (DorisHelper.IsDoris(this.Context)) { @@ -532,7 +529,6 @@ WHERE EVENT_OBJECT_TABLE = '" + tableName + "'"); Check.Exception(columns.IsNullOrEmpty(), "No columns found "); foreach (var item in columns) { - ConvertCreateColumnInfo(item); string columnName = item.DbColumnName; @@ -616,7 +612,6 @@ WHERE EVENT_OBJECT_TABLE = '" + tableName + "'"); return base.UpdateColumn(tableName, column); } - protected override string GetSize(DbColumnInfo item) { string dataSize = null; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/MySqlProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/MySqlProvider.cs index b08bac222..f5b5c9360 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/MySqlProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/MySqlProvider.cs @@ -154,7 +154,6 @@ namespace ThingsGateway.SqlSugar return result; } - protected override void SugarCatch(Exception ex, string sql, IReadOnlyList parameters) { base.SugarCatch(ex, sql, parameters); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/Queryable/MySqlQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/Queryable/MySqlQueryable.cs index ed19bdc1f..baa9860b9 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/Queryable/MySqlQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/Queryable/MySqlQueryable.cs @@ -27,46 +27,35 @@ } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } public class MySqlQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlBlukCopy.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlBlukCopy.cs index d312a3082..d6d7b8bda 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlBlukCopy.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlBlukCopy.cs @@ -7,10 +7,8 @@ namespace ThingsGateway.SqlSugar { public partial class MySqlBlukCopy { - private MySqlBlukCopy() { - } public bool ExecuteBulkCopy(string characterSet) @@ -183,7 +181,6 @@ namespace ThingsGateway.SqlSugar return sb.ToString(); } - private static object GetValue(PropertyInfo p, T item) { var result = p.GetValue(item, null); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlDeleteBuilder.cs index 896331248..f5588480f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class MySqlDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlFastBuilder.cs index 6dc18fcbe..f353fe8f7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlFastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlFastBuilder.cs @@ -5,7 +5,6 @@ using System.Text; namespace ThingsGateway.SqlSugar { - public partial class MySqlFastBuilder : FastBuilder, IFastBuilder { public override string UpdateSql { get; set; } = @"UPDATE {1} TM INNER JOIN {2} TE ON {3} SET {0} "; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs index f3d933c1c..a0706bd3c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar ({1}) VALUES ({2}) ;"; - } } } @@ -133,7 +132,7 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName))); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs index 237d3473b..68cacf9fe 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs @@ -45,7 +45,7 @@ namespace ThingsGateway.SqlSugar while (pageCount >= pageIndex) { StringBuilder updateTable = new StringBuilder(); - string setValues = string.Join(",", groupList.First().Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => + string setValues = string.Join(",", groupList[0].Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => { if (SetValues.IsValuable()) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/DbFirst/OracleDbFirst.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/DbFirst/OracleDbFirst.cs index 58d1d6945..99aa3f012 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/DbFirst/OracleDbFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/DbFirst/OracleDbFirst.cs @@ -2,6 +2,5 @@ { public class OracleDbFirst : DbFirstProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs index 517decc27..e05a96bfd 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs @@ -447,11 +447,7 @@ WHERE table_name = '" + tableName + "'"); return GetColumnInfosByTableName(tableName); else return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, - () => - { - return GetColumnInfosByTableName(tableName); - - }); + () => GetColumnInfosByTableName(tableName)); } private List GetColumnInfosByTableName(string tableName) @@ -580,7 +576,7 @@ WHERE table_name = '" + tableName + "'"); this.Context.Ado.IsEnableLogEvent = oldIsEnableLog; return pks; }); - return comments.HasValue() ? comments.First() : ""; + return comments.HasValue() ? comments[0] : ""; } public string GetFieldComment(string tableName, string fieldName) @@ -597,7 +593,6 @@ WHERE table_name = '" + tableName + "'"); return pks; }); return comments.HasValue() ? comments.FirstOrDefault(it => it.DbColumnName.EqualCase(fieldName))?.ColumnDescription : ""; - } public override bool CreateTable(string tableName, List columns, bool isCreatePrimaryKey = true) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/Insertable/OracleInsertable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/Insertable/OracleInsertable.cs index 2bafc08d5..898bb391e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/Insertable/OracleInsertable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/Insertable/OracleInsertable.cs @@ -4,7 +4,6 @@ namespace ThingsGateway.SqlSugar { public class OracleInsertable : InsertableProvider where T : class, new() { - protected override List GetIdentityKeys() { return this.EntityInfo.Columns.Where(it => it.OracleSequenceName.HasValue()).Select(it => it.DbColumnName).ToList(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/OracleProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/OracleProvider.cs index bde231fd7..8a9b545f2 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/OracleProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/OracleProvider.cs @@ -66,7 +66,6 @@ namespace ThingsGateway.SqlSugar } catch (Exception ex) { - Check.Exception(true, ErrorMessage.ConnnectionOpen, ex.Message); } return base._DbConnection; @@ -97,7 +96,6 @@ namespace ThingsGateway.SqlSugar public override Func, KeyValuePair>> ProcessingEventStartingSQL => (sql, parameter) => { - if (sql == "-- No table ") { sql = " SELECT 'No table' FROM DUAL WHERE 1=2 "; @@ -112,7 +110,6 @@ namespace ThingsGateway.SqlSugar } }; - public override IDataAdapter GetAdapter() { return new MyOracleDataAdapter(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/Queryable/OracleQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/Queryable/OracleQueryable.cs index d65a3edec..9dd6fea1d 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/Queryable/OracleQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/Queryable/OracleQueryable.cs @@ -15,46 +15,35 @@ namespace ThingsGateway.SqlSugar } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } public class OracleQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleBlukCopy.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleBlukCopy.cs index 00470f6b0..bc7b390c5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleBlukCopy.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleBlukCopy.cs @@ -2,14 +2,11 @@ using System.Data; - namespace ThingsGateway.SqlSugar { - public partial class OracleBlukCopy { - internal List> DbColumnInfoList { get; set; } internal SqlSugarProvider Context { get; set; } @@ -20,22 +17,15 @@ namespace ThingsGateway.SqlSugar internal IReadOnlyList Inserts { get; set; } - - public int ExecuteBulkCopy() { - if (DbColumnInfoList == null || DbColumnInfoList.Count == 0) return 0; - - if (Inserts[0].GetType() == typeof(DataTable)) { - return WriteToServer(); - } DataTable dt = GetCopyData(); @@ -47,42 +37,29 @@ namespace ThingsGateway.SqlSugar try { - bulkCopy.WriteToServer(dt); - } - catch (Exception) { - CloseDb(); throw; - } CloseDb(); return DbColumnInfoList.Count; - } - - public async Task ExecuteBulkCopyAsync() { - if (DbColumnInfoList == null || DbColumnInfoList.Count == 0) return 0; - - if (Inserts[0].GetType() == typeof(DataTable)) { - return WriteToServer(); - } DataTable dt = GetCopyData(); @@ -94,37 +71,27 @@ namespace ThingsGateway.SqlSugar try { - await Task.Run(() => bulkCopy.WriteToServer(dt)).ConfigureAwait(false); - } - catch (Exception) { - CloseDb(); throw; - } CloseDb(); return DbColumnInfoList.Count; - } - - private int WriteToServer() { - var dt = this.Inserts[0] as DataTable; if (dt == null) - return 0; Check.Exception(dt.TableName == "Table", "dt.TableName can't be null "); @@ -140,53 +107,41 @@ namespace ThingsGateway.SqlSugar CloseDb(); return dt.Rows.Count; - } private DataTable GetCopyWriteDataTable(DataTable dt) { - var result = this.Context.Ado.GetDataTable("select * from " + this.Builder.GetTranslationColumnName(dt.TableName) + " where 1 > 2 "); foreach (DataRow item in dt.Rows) { - DataRow dr = result.NewRow(); foreach (DataColumn column in result.Columns) { - - if (dt.Columns.Cast().Select(it => it.ColumnName).Contains(column.ColumnName, StringComparer.OrdinalIgnoreCase)) { - dr[column.ColumnName] = item[column.ColumnName]; if (dr[column.ColumnName] == null) { - dr[column.ColumnName] = DBNull.Value; - } - } - } result.Rows.Add(dr); - } result.TableName = dt.TableName; return result; - } private OracleBulkCopy GetBulkCopyInstance() @@ -195,9 +150,7 @@ namespace ThingsGateway.SqlSugar if (this.Context.Ado.Connection.State == ConnectionState.Closed) { - this.Context.Ado.Connection.Open(); - } OracleBulkCopy copy; @@ -205,39 +158,28 @@ namespace ThingsGateway.SqlSugar if (this.Context.Ado.Transaction == null) { - copy = new OracleBulkCopy((OracleConnection)this.Context.Ado.Connection, Oracle.ManagedDataAccess.Client.OracleBulkCopyOptions.Default); - } - else - { - copy = new OracleBulkCopy((OracleConnection)this.Context.Ado.Connection, OracleBulkCopyOptions.UseInternalTransaction); - } return copy; - } private DataTable GetCopyData() { - var dt = this.Context.Ado.GetDataTable("select * from " + InsertBuilder.GetTableNameString + " where 1 > 2 "); foreach (var rowInfos in DbColumnInfoList) { - var dr = dt.NewRow(); foreach (DataColumn item in dt.Columns) { - - var value = rowInfos.FirstOrDefault(it => it.DbColumnName.Equals(item.ColumnName, StringComparison.CurrentCultureIgnoreCase) || @@ -249,37 +191,27 @@ namespace ThingsGateway.SqlSugar if (value != null) { - if (value.Value != null && UtilMethods.GetUnderType(value.Value.GetType()) == UtilConstants.DateType) { - if (value.Value != null && value.Value.ToString() == DateTime.MinValue.ToString()) { - value.Value = Convert.ToDateTime("1900/01/01"); - } - } if (value.Value == null) { - value.Value = DBNull.Value; - } dr[item.ColumnName] = value.Value; - } - } dt.Rows.Add(dr); - } if (this.InsertBuilder.OracleSeqInfoList != null && this.InsertBuilder.OracleSeqInfoList.Count != 0) { @@ -295,22 +227,16 @@ namespace ThingsGateway.SqlSugar } } return dt; - } private void CloseDb() { - if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection && this.Context.Ado.Transaction == null) { - this.Context.Ado.Connection.Close(); - } - } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleDeleteBuilder.cs index eb79e3c0c..2bf64298b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class OracleDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs index c37a31388..f8b79a1fb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs @@ -171,9 +171,8 @@ namespace ThingsGateway.SqlSugar string result = ""; PageEach(inValueIEnumerable, 999, it => { - model.Args.First().MemberValue = it; + model.Args[0].MemberValue = it; result += (base.ContainsArray(model) + " OR "); - }); return " ( " + result.TrimEnd(' ').TrimEnd('R').TrimEnd('O') + " ) "; } @@ -411,7 +410,6 @@ namespace ThingsGateway.SqlSugar } public override string TrimStart(MethodCallExpressionModel mode) { - var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; return $" LTRIM({parameterNameA}, {parameterNameB}) "; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleFastBuilder.cs index 3421a7377..80145df2e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleFastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleFastBuilder.cs @@ -66,10 +66,9 @@ namespace ThingsGateway.SqlSugar } copy.BulkCopyTimeout = this.Context.Ado.CommandTimeOut; return copy; - } - public override Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, List datas) where T : class + public override Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, IEnumerable datas) where T : class { Check.Exception(this.entityInfo.Columns.Any(it => it.OracleSequenceName.HasValue()), "The BulkMerge method cannot be used for sequence", "BulkMerge方法不能用序列"); var sqlBuilder = this.Context.Queryable().SqlBuilder; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleInsertBuilder.cs index 0f6658183..3e3a153e0 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleInsertBuilder.cs @@ -12,7 +12,6 @@ namespace ThingsGateway.SqlSugar ({1}) VALUES ({2}) "; - } } public override string SqlTemplateBatch @@ -35,10 +34,9 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); if (isSingle && this.EntityInfo.EntityName != "Dictionary`2") { - string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName))); if (identities.HasValue()) { @@ -98,7 +96,6 @@ namespace ThingsGateway.SqlSugar } batchInsetrSql.Append(") VALUES"); - batchInsetrSql.Append('('); insertColumns = string.Join(",", item.Select(it => GetDbColumn(it, FormatValue(it.Value, it.PropertyName)))); batchInsetrSql.Append(insertColumns); @@ -123,7 +120,6 @@ namespace ThingsGateway.SqlSugar } } batchInsetrSql.AppendLine(") "); - } if (identities.HasValue()) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleQueryBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleQueryBuilder.cs index ebbc03912..0d6a01d11 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleQueryBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleQueryBuilder.cs @@ -42,7 +42,6 @@ namespace ThingsGateway.SqlSugar // Skip = oldSkip; // result = this.Context.SqlQueryable(result).Skip(Skip??0).Take(Take??0).ToSql().Key; - //} if (TranLock != null) { @@ -131,6 +130,5 @@ namespace ThingsGateway.SqlSugar string temp = isExternal ? ExternalPageTempalte : PageTempalte; return string.Format(temp, sql.ToString(), (pageIndex - 1) * pageSize + 1, pageIndex * pageSize); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleUpdateBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleUpdateBuilder.cs index b35fd6095..6bef65b57 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleUpdateBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oracle/SqlBuilder/OracleUpdateBuilder.cs @@ -52,7 +52,6 @@ namespace ThingsGateway.SqlSugar sb.Append(base.GetDbColumn(m, FormatValue(m.Value, m.IsPrimarykey, m.PropertyName))); sb.Append(' '); - if (isWhere && m.Value == null) { sb.Replace("=NULL ", " is NULL "); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/CodeFirst/OscarCodeFirst.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/CodeFirst/OscarCodeFirst.cs index 9f467009d..674e20ee8 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/CodeFirst/OscarCodeFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/CodeFirst/OscarCodeFirst.cs @@ -68,6 +68,5 @@ //if (item.IsPrimarykey) // this.Context.DbMaintenance.AddPrimaryKey(tableName, item.DbColumnName); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/DbBind/OscarDbBind.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/DbBind/OscarDbBind.cs index 09ef51ade..5bf472a66 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/DbBind/OscarDbBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/DbBind/OscarDbBind.cs @@ -65,7 +65,6 @@ } } public static List> MappingTypesConst = new List>(){ - new KeyValuePair("int2",CSharpDataType.@short), new KeyValuePair("int1",CSharpDataType.@byte), new KeyValuePair("smallint",CSharpDataType.@short), diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/DbMaintenance/OscarDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/DbMaintenance/OscarDbMaintenance.cs index 29c947ac9..8dfeeaba1 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/DbMaintenance/OscarDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/DbMaintenance/OscarDbMaintenance.cs @@ -238,7 +238,6 @@ namespace ThingsGateway.SqlSugar #region Methods public override bool UpdateColumn(string tableName, DbColumnInfo columnInfo) { - tableName = this.SqlBuilder.GetTranslationTableName(tableName); var columnName = this.SqlBuilder.GetTranslationColumnName(columnInfo.DbColumnName); string type = GetType(tableName, columnInfo); @@ -305,7 +304,6 @@ namespace ThingsGateway.SqlSugar if (item.ColumnDescription != null) { db.DbMaintenance.AddColumnRemark(item.DbColumnName, item.DbTableName, item.ColumnDescription); - } } //table remak @@ -332,7 +330,6 @@ namespace ThingsGateway.SqlSugar if (columns.Any(it => it.IsPrimarykey) && isCreatePrimaryKey) { primaryKeyInfo = string.Format(", Primary key({0})", string.Join(",", columns.Where(it => it.IsPrimarykey).Select(it => this.SqlBuilder.GetTranslationColumnName(it.DbColumnName.ToLower())))); - } sql = sql.Replace("$PrimaryKey", primaryKeyInfo); this.Context.Ado.ExecuteCommand(sql); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/Insertable/OscarInserttable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/Insertable/OscarInserttable.cs index d6aa9a54f..80e8c6840 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/Insertable/OscarInserttable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/Insertable/OscarInserttable.cs @@ -53,7 +53,7 @@ if (identityKeys.Count == 0) { return this.ExecuteCommand() > 0; } var idValue = ExecuteReturnBigIdentity(); Check.Exception(identityKeys.Count > 1, "ExecuteCommandIdentityIntoEntity does not support multiple identity keys"); - var identityKey = identityKeys.First(); + var identityKey = identityKeys[0]; object setValue = 0; if (idValue > int.MaxValue) setValue = idValue; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/OscarProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/OscarProvider.cs index 62c2eb734..ef9856493 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/OscarProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/OscarProvider.cs @@ -127,7 +127,6 @@ namespace ThingsGateway.SqlSugar return result; } - static readonly Dictionary ArrayMapping = new Dictionary() { { typeof(int[]),OscarDbType.Integer}, @@ -140,7 +139,6 @@ namespace ThingsGateway.SqlSugar {typeof(DateTime[]),OscarDbType.Date}, {typeof(float[]),OscarDbType.Real}, - { typeof(int?[]),OscarDbType.Integer}, { typeof(short?[]),OscarDbType.SmallInt}, { typeof(long?[]),OscarDbType.BigInt}, @@ -150,7 +148,6 @@ namespace ThingsGateway.SqlSugar { typeof(bool?[]),OscarDbType.Boolean}, {typeof(DateTime?[]),OscarDbType.Date}, - { typeof(string[]), OscarDbType.Text}, {typeof(float?[]),OscarDbType.Real}, }; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/Queryable/OscarQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/Queryable/OscarQueryable.cs index 6548be806..d639fd221 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/Queryable/OscarQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/Queryable/OscarQueryable.cs @@ -22,42 +22,32 @@ } public class OscarQueryable : QueryableProvider { - } public class OscarQueryable : QueryableProvider { - } public class OscarQueryable : QueryableProvider { - } public class OscarQueryable : QueryableProvider { - } public class OscarQueryable : QueryableProvider { - } public class OscarQueryable : QueryableProvider { - } public class OscarQueryable : QueryableProvider { - } public class OscarQueryable : QueryableProvider { - } public class OscarQueryable : QueryableProvider { - } public class OscarQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarDeleteBuilder.cs index 3ddf85ce2..af93af8dd 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class OscarDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarInsertBuilder.cs index ca6a7dac7..512929e8e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarInsertBuilder.cs @@ -21,7 +21,6 @@ namespace ThingsGateway.SqlSugar ({1}) VALUES ({2}) ;"; - } } } @@ -38,7 +37,7 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => base.GetDbColumn(it, Builder.GetTranslationColumnName(it.DbColumnName)))); + string columnsString = string.Join(",", groupList[0].Select(it => base.GetDbColumn(it, Builder.GetTranslationColumnName(it.DbColumnName)))); if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName)); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarUpdateBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarUpdateBuilder.cs index 081e53de3..cf745d715 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarUpdateBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Oscar/SqlBuilder/OscarUpdateBuilder.cs @@ -99,6 +99,5 @@ namespace ThingsGateway.SqlSugar { return string.Format("\"{0}\"={1}", m.DbColumnName.ToUpper(), base.GetDbColumn(m, FormatValue(m.Value))); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/CodeFirst/PostgreSQLCodeFirst.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/CodeFirst/PostgreSQLCodeFirst.cs index afe07ba40..f16dc41f2 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/CodeFirst/PostgreSQLCodeFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/CodeFirst/PostgreSQLCodeFirst.cs @@ -80,6 +80,5 @@ if (item.IsPrimarykey) this.Context.DbMaintenance.AddPrimaryKey(tableName, item.DbColumnName); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/DbBind/PostgreSQLDbBind.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/DbBind/PostgreSQLDbBind.cs index e2a7951ec..8f4ba7cad 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/DbBind/PostgreSQLDbBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/DbBind/PostgreSQLDbBind.cs @@ -101,7 +101,6 @@ } } public static List> MappingTypesConst = new List>(){ - new KeyValuePair("int2",CSharpDataType.@short), //new KeyValuePair("int1",CSharpDataType.@byte), new KeyValuePair("smallint",CSharpDataType.@short), diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs index 18f79ff23..0d622ba12 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs @@ -432,7 +432,6 @@ WHERE tgrelid = '" + tableName + "'::regclass"); if (item.ColumnDescription != null) { db.DbMaintenance.AddColumnRemark(item.DbColumnName, item.DbTableName, item.ColumnDescription); - } } //table remak @@ -463,7 +462,6 @@ WHERE tgrelid = '" + tableName + "'::regclass"); if (columns.Any(it => it.IsPrimarykey) && isCreatePrimaryKey) { primaryKeyInfo = string.Format(", Primary key({0})", string.Join(",", columns.Where(it => it.IsPrimarykey).Select(it => this.SqlBuilder.GetTranslationColumnName(it.DbColumnName.ToLower(isAutoToLowerCodeFirst))))); - } sql = sql.Replace("$PrimaryKey", primaryKeyInfo); this.Context.Ado.ExecuteCommand(sql); @@ -573,7 +571,6 @@ WHERE tgrelid = '" + tableName + "'::regclass"); } catch { - } return result; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/Insertable/PostgreSQLInserttable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/Insertable/PostgreSQLInserttable.cs index 7e70d4e9f..7b8464c6f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/Insertable/PostgreSQLInserttable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/Insertable/PostgreSQLInserttable.cs @@ -72,7 +72,7 @@ if (identityKeys.Count == 0) { return this.ExecuteCommand() > 0; } var idValue = ExecuteReturnBigIdentity(); Check.Exception(identityKeys.Count > 1, "ExecuteCommandIdentityIntoEntity does not support multiple identity keys"); - var identityKey = identityKeys.First(); + var identityKey = identityKeys[0]; object setValue = 0; if (idValue > int.MaxValue) setValue = idValue; @@ -93,6 +93,5 @@ } return identityColumn; } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/PostgreSQLProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/PostgreSQLProvider.cs index fc6d09423..b2586d236 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/PostgreSQLProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/PostgreSQLProvider.cs @@ -11,13 +11,11 @@ namespace ThingsGateway.SqlSugar { public PostgreSQLProvider() { - if (StaticConfig.AppContext_ConvertInfinityDateTime == false) { AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true); } - } public override IDbConnection Connection { @@ -171,7 +169,6 @@ namespace ThingsGateway.SqlSugar else if (type == DBNull.Value.GetType()) { DbNullParameterrArray(parameter, sqlParameter); - } else { @@ -255,7 +252,6 @@ namespace ThingsGateway.SqlSugar {typeof(float[]),NpgsqlDbType.Real}, {typeof(Guid[]),NpgsqlDbType.Uuid}, - { typeof(int?[]),NpgsqlDbType.Integer}, { typeof(short?[]),NpgsqlDbType.Smallint}, { typeof(long?[]),NpgsqlDbType.Bigint}, @@ -267,7 +263,6 @@ namespace ThingsGateway.SqlSugar {typeof(DateTime?[]),NpgsqlDbType.Date}, {typeof(Guid?[]),NpgsqlDbType.Uuid}, - { typeof(string[]), NpgsqlDbType.Text}, {typeof(float?[]),NpgsqlDbType.Real}, }; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/Queryable/PostgreSqlQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/Queryable/PostgreSqlQueryable.cs index b57bfefbe..cda3c16f7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/Queryable/PostgreSqlQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/Queryable/PostgreSqlQueryable.cs @@ -22,42 +22,32 @@ } public class PostgreSQLQueryable : QueryableProvider { - } public class PostgreSQLQueryable : QueryableProvider { - } public class PostgreSQLQueryable : QueryableProvider { - } public class PostgreSQLQueryable : QueryableProvider { - } public class PostgreSQLQueryable : QueryableProvider { - } public class PostgreSQLQueryable : QueryableProvider { - } public class PostgreSQLQueryable : QueryableProvider { - } public class PostgreSQLQueryable : QueryableProvider { - } public class PostgreSQLQueryable : QueryableProvider { - } public class PostgreSQLQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLDeleteBuilder.cs index 67937c876..bc6650519 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class PostgreSQLDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs index 868cb42a2..f16058063 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs @@ -530,6 +530,5 @@ return result; } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLFastBuilder.cs index 7111380f7..d71c02b6d 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLFastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLFastBuilder.cs @@ -142,7 +142,6 @@ namespace ThingsGateway.SqlSugar } } - public override async Task UpdateByTempAsync(string tableName, string tempName, string[] updateColumns, string[] whereColumns) { var sqlquerybulder = this.Context.Queryable().SqlBuilder; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLInsertBuilder.cs index 36667af9c..ec3b77fc4 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLInsertBuilder.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.SqlSugar ({1}) VALUES ({2}) ;"; - } } } @@ -31,10 +30,7 @@ namespace ThingsGateway.SqlSugar public override string SqlTemplateBatchSelect => " {0} "; - public override Func ConvertInsertReturnIdFunc { get; set; } = (name, sql) => - { - return sql.Trim().TrimEnd(';') + $"returning {name} "; - }; + public override Func ConvertInsertReturnIdFunc { get; set; } = (name, sql) => sql.Trim().TrimEnd(';') + $"returning {name} "; public override string ToSqlString() { if (IsNoInsertNull) @@ -43,7 +39,7 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName))); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs index 1a811b01d..8144c17b7 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs @@ -110,7 +110,7 @@ namespace ThingsGateway.SqlSugar while (pageCount >= pageIndex) { StringBuilder updateTable = new StringBuilder(); - string setValues = string.Join(",", groupList.First().Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => + string setValues = string.Join(",", groupList[0].Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => { if (SetValues.IsValuable()) { @@ -123,7 +123,7 @@ namespace ThingsGateway.SqlSugar var result = string.Format("{0}=T.{0}", Builder.GetTranslationColumnName(it.DbColumnName)); return result; })); - string tempColumnValue = string.Join(",", groupList.First().Select(it => + string tempColumnValue = string.Join(",", groupList[0].Select(it => { if (SetValues.IsValuable()) { @@ -185,7 +185,6 @@ namespace ThingsGateway.SqlSugar return string.Format(" {0} ", base.GetDbColumn(it, FormatValue(it.Value, it.DbColumnName, i + (pageIndex - 1) * 100000, it)), dbType); } return string.Format("CAST({0} AS {1})", base.GetDbColumn(it, FormatValue(it.Value, it.DbColumnName, i + (pageIndex - 1) * 100000, it)), dbType); - })) + ")"); ++i; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/CodeFirst/QuestDBCodeFirst.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/CodeFirst/QuestDBCodeFirst.cs index e63f4ffa0..45c58119e 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/CodeFirst/QuestDBCodeFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/CodeFirst/QuestDBCodeFirst.cs @@ -96,6 +96,5 @@ namespace ThingsGateway.SqlSugar if (item.IsPrimarykey) this.Context.DbMaintenance.AddPrimaryKey(tableName, item.DbColumnName); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/DbBind/QuestDBDbBind.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/DbBind/QuestDBDbBind.cs index 96ff6e0c7..55bee2183 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/DbBind/QuestDBDbBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/DbBind/QuestDBDbBind.cs @@ -69,7 +69,6 @@ } } public static List> MappingTypesConst = new List>(){ - new KeyValuePair("byte",CSharpDataType.@byte), new KeyValuePair("short",CSharpDataType.@short), new KeyValuePair("smallint",CSharpDataType.@short), diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/DbMaintenance/QuestDBDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/DbMaintenance/QuestDBDbMaintenance.cs index d1183e60b..ed39cc551 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/DbMaintenance/QuestDBDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/DbMaintenance/QuestDBDbMaintenance.cs @@ -277,7 +277,6 @@ namespace ThingsGateway.SqlSugar { result.Add(di); } - } return result; } @@ -364,7 +363,6 @@ namespace ThingsGateway.SqlSugar if (item.ColumnDescription != null) { db.DbMaintenance.AddColumnRemark(item.DbColumnName, item.DbTableName, item.ColumnDescription); - } } //table remak @@ -397,7 +395,6 @@ namespace ThingsGateway.SqlSugar if (columns.Any(it => it.IsPrimarykey) && isCreatePrimaryKey) { primaryKeyInfo = string.Format(", Primary key({0})", string.Join(",", columns.Where(it => it.IsPrimarykey).Select(it => this.SqlBuilder.GetTranslationColumnName(it.DbColumnName.ToLower())))); - } sql = sql.Replace("$PrimaryKey", primaryKeyInfo); this.Context.Ado.ExecuteCommand(sql + splitSql.TrimStart('_')); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/Queryable/QuestDBQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/Queryable/QuestDBQueryable.cs index 8cba89a79..16ea70d46 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/Queryable/QuestDBQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/Queryable/QuestDBQueryable.cs @@ -26,42 +26,32 @@ } public class QuestDBQueryable : QueryableProvider { - } public class QuestDBQueryable : QueryableProvider { - } public class QuestDBQueryable : QueryableProvider { - } public class QuestDBQueryable : QueryableProvider { - } public class QuestDBQueryable : QueryableProvider { - } public class QuestDBQueryable : QueryableProvider { - } public class QuestDBQueryable : QueryableProvider { - } public class QuestDBQueryable : QueryableProvider { - } public class QuestDBQueryable : QueryableProvider { - } public class QuestDBQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/QuestDBProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/QuestDBProvider.cs index 520171c29..e1fa94dcc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/QuestDBProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/QuestDBProvider.cs @@ -183,7 +183,6 @@ namespace ThingsGateway.SqlSugar return result; } - static readonly Dictionary ArrayMapping = new Dictionary() { { typeof(int[]),NpgsqlDbType.Integer}, @@ -196,7 +195,6 @@ namespace ThingsGateway.SqlSugar {typeof(DateTime[]),NpgsqlDbType.Date}, {typeof(float[]),NpgsqlDbType.Real}, - { typeof(int?[]),NpgsqlDbType.Integer}, { typeof(short?[]),NpgsqlDbType.Smallint}, { typeof(long?[]),NpgsqlDbType.Bigint}, @@ -206,7 +204,6 @@ namespace ThingsGateway.SqlSugar { typeof(bool?[]),NpgsqlDbType.Boolean}, {typeof(DateTime?[]),NpgsqlDbType.Date}, - { typeof(string[]), NpgsqlDbType.Text}, {typeof(float?[]),NpgsqlDbType.Real}, }; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBDeleteBuilder.cs index ab346bfd4..19856c7b6 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class QuestDBDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBExpressionContext.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBExpressionContext.cs index d90d0d5c3..622af38a4 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBExpressionContext.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBExpressionContext.cs @@ -212,7 +212,6 @@ return string.Format(" {0}({1}) ", format, parameter.MemberName); } - public override string StartsWith(MethodCallExpressionModel model) { var parameter = model.Args[0]; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBFastBuilder.cs index 9e0fc7ac8..85f60e208 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBFastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBFastBuilder.cs @@ -90,7 +90,6 @@ namespace ThingsGateway.SqlSugar } } - public override async Task UpdateByTempAsync(string tableName, string tempName, string[] updateColumns, string[] whereColumns) { var sqlquerybulder = this.Context.Queryable().SqlBuilder; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBInsertBuilder.cs index cfc5d5118..9a83fea60 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/QuestDB/SqlBuilder/QuestDBInsertBuilder.cs @@ -21,7 +21,6 @@ namespace ThingsGateway.SqlSugar ({1}) VALUES ({2}) ;"; - } } } @@ -38,7 +37,7 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); //if (isSingle) //{ // string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/CodeFirst/SqlServerCodeFirst.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/CodeFirst/SqlServerCodeFirst.cs index bfca21f60..45720db93 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/CodeFirst/SqlServerCodeFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/CodeFirst/SqlServerCodeFirst.cs @@ -11,7 +11,7 @@ { var dbMain = new SqlServerDbMaintenance() { Context = this.Context }; var schmes = dbMain.GetSchemas(); - if (!schmes.Any(it => it.EqualCase(tableArray.First()))) + if (!schmes.Any(it => it.EqualCase(tableArray[0]))) { return tableArray.Last(); } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/DbBind/SqlServerDbBind.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/DbBind/SqlServerDbBind.cs index 44a776eee..f497d5ada 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/DbBind/SqlServerDbBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/DbBind/SqlServerDbBind.cs @@ -65,5 +65,4 @@ new KeyValuePair("datetimeoffset", CSharpDataType.DateTimeOffset), new KeyValuePair("datetimeoffset", CSharpDataType.DateTime)}; }; - } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs index a510169c4..d08e3d7ab 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs @@ -186,7 +186,6 @@ namespace ThingsGateway.SqlSugar { return "EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'table','{1}','column','{0}'"; } - } protected override string IsAnyColumnRemarkSql @@ -202,7 +201,6 @@ namespace ThingsGateway.SqlSugar " LEFT JOIN sys.columns B ON B.object_id = A.object_id AND C.minor_id = B.column_id" + " INNER JOIN sys.schemas SC ON SC.schema_id = A.schema_id AND SC.name = 'dbo'" + " WHERE A.name = '{1}' and B.name = '{0}'"; - } } @@ -220,7 +218,6 @@ namespace ThingsGateway.SqlSugar { return "EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'table','{0}' "; } - } protected override string IsAnyTableRemarkSql @@ -233,7 +230,6 @@ namespace ThingsGateway.SqlSugar INNER JOIN sys.schemas SC ON SC.schema_id=A.schema_id AND SC.name='dbo' WHERE A.name = '{0}' AND minor_id=0"; } - } protected override string RenameTableSql @@ -727,7 +723,6 @@ AND syscomments.text LIKE '%" + tableName + "%'"); item.DataType = item.DataType.ToLower().Replace("varchar", "nvarchar"); } } - } string sql = GetCreateTableSql(tableName, columns); this.Context.Ado.ExecuteCommand(sql); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/Queryable/SqlServerQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/Queryable/SqlServerQueryable.cs index 3c8a76b27..b8158df71 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/Queryable/SqlServerQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/Queryable/SqlServerQueryable.cs @@ -2,50 +2,38 @@ { public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } public class SqlServerQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerBlukCopy.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerBlukCopy.cs index 1bed38c50..b37133dce 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerBlukCopy.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerBlukCopy.cs @@ -81,7 +81,6 @@ namespace ThingsGateway.SqlSugar DataRow dr = result.NewRow(); foreach (DataColumn column in result.Columns) { - if (dt.Columns.Cast().Select(it => it.ColumnName).Contains(column.ColumnName, StringComparer.OrdinalIgnoreCase)) { dr[column.ColumnName] = item[column.ColumnName]; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerDeleteBuilder.cs index f24a3c06b..add97107b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class SqlServerDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs index 6640d7333..07de35ff6 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs @@ -7,7 +7,6 @@ { base.DbMehtods = new SqlServerMethod(); } - } public partial class SqlServerMethod : DefaultDbMethod, IDbMethods { @@ -162,7 +161,6 @@ } public override string TrimStart(MethodCallExpressionModel mode) { - var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; return $" CASE WHEN LEFT({parameterNameA}, 1) = {parameterNameB} THEN RIGHT({parameterNameA}, LEN({parameterNameA}) - 1) ELSE {parameterNameA} END "; @@ -192,6 +190,4 @@ return $" CONTAINS({columns},{searchWord}) "; } } - - } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerFastBuilder.cs index e88d975e9..ea09d186b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerFastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerFastBuilder.cs @@ -4,7 +4,6 @@ using System.Data; namespace ThingsGateway.SqlSugar { - public class SqlServerFastBuilder : FastBuilder, IFastBuilder { public override bool IsActionUpdateColumns { get; set; } = true; @@ -15,7 +14,6 @@ namespace ThingsGateway.SqlSugar }; public async Task ExecuteBulkCopyAsync(DataTable dt) { - SqlBulkCopy bulkCopy = GetBulkCopyInstance(); bulkCopy.DestinationTableName = dt.TableName; try @@ -52,7 +50,6 @@ namespace ThingsGateway.SqlSugar } else { - copy = new SqlBulkCopy((SqlConnection)this.Context.Ado.Connection, SqlBulkCopyOptions.CheckConstraints, (SqlTransaction)this.Context.Ado.Transaction); } } @@ -63,7 +60,7 @@ namespace ThingsGateway.SqlSugar copy.BulkCopyTimeout = this.Context.Ado.CommandTimeOut; return copy; } - public override Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, List datas) + public override Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, IEnumerable datas) { var sqlBuilder = this.Context.Queryable().SqlBuilder; var insertColumns = entityInfo.Columns diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerInsertBuilder.cs index aff964fc1..70c342538 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerInsertBuilder.cs @@ -4,10 +4,7 @@ namespace ThingsGateway.SqlSugar { public class SqlServerInsertBuilder : InsertBuilder { - public override Func ConvertInsertReturnIdFunc { get; set; } = (name, sql) => - { - return sql.Replace("select SCOPE_IDENTITY();", "").Replace(")\r\n SELECT", $")\r\n OUTPUT INSERTED.{name} as {name} \r\nSELECT"); - }; + public override Func ConvertInsertReturnIdFunc { get; set; } = (name, sql) => sql.Replace("select SCOPE_IDENTITY();", "").Replace(")\r\n SELECT", $")\r\n OUTPUT INSERTED.{name} as {name} \r\nSELECT"); public override bool IsNoPage { get; set; } = true; public override string ToSqlString() { @@ -17,7 +14,7 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); var result = ""; if (isSingle) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerQueryBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerQueryBuilder.cs index 4870ca83e..343027e89 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerQueryBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerQueryBuilder.cs @@ -32,8 +32,6 @@ namespace ThingsGateway.SqlSugar Take = oldTake; Skip = oldSkip; result = this.Context.SqlQueryable(result).Skip(Skip ?? 0).Take(Take ?? 0).ToSql().Key; - - } if (IsDistinct && oldTake == 1 && oldSkip == null) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerUpdateBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerUpdateBuilder.cs index ab99e66cf..883af7224 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerUpdateBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlBuilder/SqlServerUpdateBuilder.cs @@ -16,7 +16,7 @@ namespace ThingsGateway.SqlSugar while (pageCount >= pageIndex) { StringBuilder updateTable = new StringBuilder(); - string setValues = string.Join(",", groupList.First().Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => + string setValues = string.Join(",", groupList[0].Where(it => it.IsPrimarykey == false && (it.IsIdentity == false || (IsOffIdentity && it.IsIdentity))).Select(it => { if (SetValues.IsValuable()) { diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlServerProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlServerProvider.cs index 9293a8edb..382459940 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlServerProvider.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/SqlServer/SqlServerProvider.cs @@ -8,7 +8,6 @@ namespace ThingsGateway.SqlSugar { public class SqlServerProvider : AdoProvider { - public SqlServerProvider() { this.IsOpenAsync = true; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs index c807d511b..42842550f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs @@ -60,7 +60,6 @@ // //isChange = true; //} - foreach (var item in entityColumns) { var dbColumn = dbColumns.FirstOrDefault(dc => dc.DbColumnName.Equals(item.DbColumnName, StringComparison.CurrentCultureIgnoreCase)); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/DbBind/SqliteDbBind.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/DbBind/SqliteDbBind.cs index c1aa947eb..0663d58c5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/DbBind/SqliteDbBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/DbBind/SqliteDbBind.cs @@ -38,7 +38,6 @@ } public static List> MappingTypesConst = new List>() { - new KeyValuePair("integer",CSharpDataType.@int), new KeyValuePair("int",CSharpDataType.@int), new KeyValuePair("int32",CSharpDataType.@int), diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs index cd19cfcd2..e310ef160 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs @@ -432,11 +432,7 @@ AND sql LIKE '%" + tableName + "%'"); cacheKey = GetCacheKey(cacheKey); if (isCache) { - return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate>(cacheKey, () => - { - return GetColumnInfosByTableName(tableName); - - }); + return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate>(cacheKey, () => GetColumnInfosByTableName(tableName)); } else { @@ -523,7 +519,6 @@ AND sql LIKE '%" + tableName + "%'"); return true; } - public override bool BackupTable(string oldTableName, string newTableName, int maxBackupDataRows = int.MaxValue) { oldTableName = this.SqlBuilder.GetTranslationTableName(oldTableName); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/Queryable/SqliteQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/Queryable/SqliteQueryable.cs index 817742830..3b746db54 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/Queryable/SqliteQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/Queryable/SqliteQueryable.cs @@ -15,46 +15,35 @@ } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } public class SqliteQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteDeleteBuilder.cs index 1850b81b4..e697ad7f8 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class SqliteDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs index 90137f0d5..73eaccf88 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs @@ -311,7 +311,6 @@ } public override string TrimStart(MethodCallExpressionModel mode) { - var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; return $" CASE WHEN SUBSTR({parameterNameA}, 1, 1) ={parameterNameB} THEN SUBSTR({parameterNameA}, 2) ELSE {parameterNameA} END "; diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs index 5846fa8c3..f411096fb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs @@ -34,7 +34,6 @@ namespace ThingsGateway.SqlSugar IsUpdate = true; } - public async Task ExecuteBulkCopyAsync(DataTable dt) { if (dt.Rows.Count == 0 || IsUpdate) @@ -83,7 +82,7 @@ namespace ThingsGateway.SqlSugar } else { - cmd.CommandText = this.Context.InsertableT(dictionary.First()).AS(dt.TableName).ToSql().Key.Replace(";SELECT LAST_INSERT_ROWID();", ""); + cmd.CommandText = this.Context.InsertableT(dictionary[0]).AS(dt.TableName).ToSql().Key.Replace(";SELECT LAST_INSERT_ROWID();", ""); TransformInsertCommand(cmd); foreach (DataRow dataRow in dt.Rows) { @@ -138,7 +137,7 @@ namespace ThingsGateway.SqlSugar } else { - cmd.CommandText = this.Context.UpdateableT(dictionary.First()) + cmd.CommandText = this.Context.UpdateableT(dictionary[0]) .WhereColumns(whereColumns) .UpdateColumns(updateColumns) .AS(dt.TableName).ToSql().Key; @@ -210,7 +209,7 @@ namespace ThingsGateway.SqlSugar return result; } - public async Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, List datas) where T : class, new() + public async Task Merge(string tableName, DataTable dt, EntityInfo entityInfo, string[] whereColumns, string[] updateColumns, IEnumerable datas) where T : class, new() { var result = 0; await Context.Utilities.PageEachAsync(datas, 2000, async pageItems => diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs index 082f4f6af..7ef6687f4 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs @@ -21,7 +21,6 @@ namespace ThingsGateway.SqlSugar ({1}) VALUES ({2}) ;"; - } } } @@ -41,7 +40,7 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName))); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/SimpleClient.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/SimpleClient.cs index 5727ad47e..cb5c9b2cc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/SimpleClient.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/SimpleClient.cs @@ -3,7 +3,6 @@ using System.Reflection; namespace ThingsGateway.SqlSugar { - public partial class SimpleClient : ISugarRepository, ISimpleClient where T : class, new() { #region Interface @@ -29,7 +28,6 @@ namespace ThingsGateway.SqlSugar public SimpleClient() { - } public SimpleClient(ISqlSugarClient context) { @@ -276,7 +274,6 @@ namespace ThingsGateway.SqlSugar } public virtual int Count(Expression> whereExpression) { - return Context.Queryable().Where(whereExpression).Count(); } @@ -324,7 +321,6 @@ namespace ThingsGateway.SqlSugar return this.Context.InsertableT(insertObj).ExecuteReturnEntity(); } - public virtual bool InsertRange(IReadOnlyList insertObjs) { return this.Context.Insertable(insertObjs).ExecuteCommand() > 0; @@ -424,7 +420,6 @@ namespace ThingsGateway.SqlSugar } public virtual Task CountAsync(Expression> whereExpression) { - return Context.Queryable().Where(whereExpression).CountAsync(); } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/SpliteTable/SplitTableAttribute.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/SpliteTable/SplitTableAttribute.cs index 2f17a0de5..179bf7ccf 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/SpliteTable/SplitTableAttribute.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/SpliteTable/SplitTableAttribute.cs @@ -23,10 +23,8 @@ [AttributeUsage(AttributeTargets.Property, Inherited = true)] public class SplitFieldAttribute : Attribute { - public SplitFieldAttribute() { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/SpliteTable/SplitTypeExtensions.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/SpliteTable/SplitTypeExtensions.cs index c19253837..551ab5ec5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/SpliteTable/SplitTypeExtensions.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/SpliteTable/SplitTypeExtensions.cs @@ -30,7 +30,7 @@ } if (result.Count == 0 && tables.Count != 0) { - result.Add(tables.First()); + result.Add(tables[0]); } return result; } diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/SqlSugarClient.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/SqlSugarClient.cs index 29e15d77e..2af2040f3 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/SqlSugarClient.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/SqlSugarClient.cs @@ -36,7 +36,7 @@ namespace ThingsGateway.SqlSugar { Check.Exception(configs.IsNullOrEmpty(), "List configs is null or count=0"); InitConfigs(configs); - var config = configs.First(); + var config = configs[0]; InitContext(config); _AllClients = configs.Select(it => new SugarTenant() { ConnectionConfig = it }).ToList(); _AllClients.First(it => it.ConnectionConfig.ConfigId == config.ConfigId).Context = this.Context; @@ -54,7 +54,7 @@ namespace ThingsGateway.SqlSugar _configAction = configAction; Check.Exception(configs.IsNullOrEmpty(), "List configs is null or count=0"); InitConfigs(configs); - var config = configs.First(); + var config = configs[0]; InitContext(config); _AllClients = configs.Select(it => new SugarTenant() { ConnectionConfig = it }).ToList(); _AllClients.First(it => it.ConnectionConfig.ConfigId == config.ConfigId).Context = this.Context; @@ -261,8 +261,6 @@ namespace ThingsGateway.SqlSugar return this.Context.Union(queryables); } - - public ISugarQueryable UnionAll(IReadOnlyList> queryables) where T : class { return this.Context.UnionAll(queryables); @@ -474,7 +472,6 @@ namespace ThingsGateway.SqlSugar return this.Context.Queryable(joinQueryable1, joinQueryable2, joinType, joinExpression).With(SqlWith.Null); } - public ISugarQueryable Queryable(ISugarQueryable joinQueryable1, ISugarQueryable joinQueryable2, ISugarQueryable joinQueryable3, JoinType joinType1, Expression> joinExpression1, JoinType joinType2, Expression> joinExpression2) @@ -503,7 +500,6 @@ namespace ThingsGateway.SqlSugar public ISugarQueryable Queryable(ISugarQueryable queryable) { - var result = this.Context.Queryable(queryable); var QueryBuilder = queryable.QueryBuilder; result.QueryBuilder.IsQueryInQuery = true; @@ -537,7 +533,7 @@ namespace ThingsGateway.SqlSugar { return this.Context.Storageable(data); } - public StorageableDataTable Storageable(List> dictionaryList, string tableName) + public StorageableDataTable Storageable(IEnumerable> dictionaryList, string tableName) { DataTable dt = this.Context.Utilities.DictionaryListToDataTable(dictionaryList); dt.TableName = tableName; @@ -550,7 +546,7 @@ namespace ThingsGateway.SqlSugar return this.Context.Storageable(dt); } - public IStorageable Storageable(IReadOnlyList dataList) where T : class, new() + public IStorageable Storageable(IEnumerable dataList) where T : class, new() { return this.Context.Storageable(dataList); } @@ -775,7 +771,6 @@ namespace ThingsGateway.SqlSugar return this.Context.DeleteableT(deleteObj); } - #endregion #region Fastest @@ -923,7 +918,6 @@ namespace ThingsGateway.SqlSugar InitTenant(); var db = this._AllClients.FirstOrDefault(it => Convert.ToString(it.ConnectionConfig.ConfigId) == Convert.ToString(configId)); return db != null; - } public void ChangeDatabase(object configId) { @@ -982,7 +976,6 @@ namespace ThingsGateway.SqlSugar this.Context.Ado.CommitTran(); AllClientEach(it => { - try { it.Ado.CommitTran(); @@ -991,7 +984,6 @@ namespace ThingsGateway.SqlSugar { SugarRetry.Execute(() => it.Ado.CommitTran(), new TimeSpan(0, 0, 5), 3); } - }); _IsAllTran = false; } @@ -1001,7 +993,6 @@ namespace ThingsGateway.SqlSugar await Context.Ado.CommitTranAsync().ConfigureAwait(false); await AllClientEachAsync(async it => { - try { await it.Ado.CommitTranAsync().ConfigureAwait(false); @@ -1010,7 +1001,6 @@ namespace ThingsGateway.SqlSugar { SugarRetry.Execute(() => it.Ado.CommitTran(), new TimeSpan(0, 0, 5), 3); } - }).ConfigureAwait(false); _IsAllTran = false; } @@ -1121,7 +1111,6 @@ namespace ThingsGateway.SqlSugar this.Context.Ado.RollbackTran(); AllClientEach(it => { - try { it.Ado.RollbackTran(); @@ -1130,7 +1119,6 @@ namespace ThingsGateway.SqlSugar { SugarRetry.Execute(() => it.Ado.RollbackTran(), new TimeSpan(0, 0, 5), 3); } - }); _IsAllTran = false; } @@ -1139,7 +1127,6 @@ namespace ThingsGateway.SqlSugar await Context.Ado.RollbackTranAsync().ConfigureAwait(false); await AllClientEachAsync(async it => { - try { await it.Ado.RollbackTranAsync().ConfigureAwait(false); @@ -1148,7 +1135,6 @@ namespace ThingsGateway.SqlSugar { SugarRetry.Execute(() => it.Ado.RollbackTran(), new TimeSpan(0, 0, 5), 3); } - }).ConfigureAwait(false); _IsAllTran = false; } @@ -1201,7 +1187,6 @@ namespace ThingsGateway.SqlSugar } public SqlSugarClient CopyNew() { - if (_AllClients?.Count > 1 && _configAction != null) { List connections = new List(); @@ -1508,7 +1493,6 @@ namespace ThingsGateway.SqlSugar } } - private async Task AllClientEachAsync(Func action) { if (this._AllClients == null) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/SqlSugarScope.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/SqlSugarScope.cs index d466b9fad..f4d02cf01 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/SqlSugarScope.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/SqlSugarScope.cs @@ -8,7 +8,6 @@ namespace ThingsGateway.SqlSugar { private SqlSugarScope() { - } public SqlSugarScope(ConnectionConfig config) { @@ -481,8 +480,6 @@ namespace ThingsGateway.SqlSugar return ScopedContext.Reportable(list); } - - public void RollbackTran() { ScopedContext.RollbackTran(); @@ -577,7 +574,7 @@ namespace ThingsGateway.SqlSugar return ScopedContext.SqlQueryable(sql); } - public StorageableDataTable Storageable(List> dictionaryList, string tableName) + public StorageableDataTable Storageable(IEnumerable> dictionaryList, string tableName) { return ScopedContext.Storageable(dictionaryList, tableName); } @@ -586,7 +583,7 @@ namespace ThingsGateway.SqlSugar return ScopedContext.Storageable(dictionary, tableName); } - public IStorageable Storageable(IReadOnlyList dataList) where T : class, new() + public IStorageable Storageable(IEnumerable dataList) where T : class, new() { return ScopedContext.Storageable(dataList); } @@ -608,14 +605,11 @@ namespace ThingsGateway.SqlSugar return ScopedContext.Union(queryables); } - - public ISugarQueryable UnionAll(IReadOnlyList> queryables) where T : class { return ScopedContext.UnionAll(queryables); } - public UpdateMethodInfo UpdateableByObject(object singleEntityObjectOrListObject) { return ScopedContext.UpdateableByObject(singleEntityObjectOrListObject); @@ -663,7 +657,6 @@ namespace ThingsGateway.SqlSugar return ScopedContext.UpdateableT(UpdateObj); } - public SplitTableContext SplitHelper() where T : class, new() { return ScopedContext.SplitHelper(); @@ -791,7 +784,6 @@ namespace ThingsGateway.SqlSugar return ScopedContext.DeleteNav(whereExpression); } - public DeleteNavTaskInit DeleteNav(T data, DeleteNavRootOptions options) where T : class, new() { return ScopedContext.DeleteNav(data, options); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/SugarUnitOfWork.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/SugarUnitOfWork.cs index 0ab8a91b2..81e5fc3b5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/SugarUnitOfWork.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/SugarUnitOfWork.cs @@ -51,7 +51,6 @@ namespace ThingsGateway.SqlSugar public void Dispose() { - if (this.IsTran && IsCommit == false) { this.Tenant.RollbackTran(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/CommonExtensions.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/CommonExtensions.cs index 3880488a0..6d460ecc2 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/CommonExtensions.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/CommonExtensions.cs @@ -4,7 +4,6 @@ namespace ThingsGateway.SqlSugar { public static class CommonExtensions { - public static string GetNonNegativeHashCodeString(this string input) { // 获取哈希码,然后取绝对值,转换为字符串 diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/DataTableExtensions.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/DataTableExtensions.cs index bfba689da..016f6497f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/DataTableExtensions.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/DataTableExtensions.cs @@ -12,7 +12,6 @@ namespace ThingsGateway.SqlSugar Expression> rowSelector, Func, TData> dataSelector) { - DataTable table = new DataTable(); var rowName = new List(); @@ -25,7 +24,6 @@ namespace ThingsGateway.SqlSugar else rowName.AddRange(((NewExpression)rowSelector.Body).Arguments.Select(it => it as MemberExpression).Select(it => it.Member.Name)); - table.Columns.AddRange(rowName.Select(x => new DataColumn(x)).ToArray()); var columns = source.Select(columnSelector).Distinct(); table.Columns.AddRange(columns.Select(x => new DataColumn(x?.ToString())).ToArray()); @@ -72,7 +70,6 @@ namespace ThingsGateway.SqlSugar Expression> rowSelector, Func, TData> dataSelector) { - var memberName = string.Empty; if (rowSelector.Body is MemberExpression) @@ -115,7 +112,6 @@ namespace ThingsGateway.SqlSugar return row; }); return rows; - } } } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ErrorMessage.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ErrorMessage.cs index 47c8b604b..915138962 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ErrorMessage.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ErrorMessage.cs @@ -21,8 +21,6 @@ namespace ThingsGateway.SqlSugar private static readonly CompositeFormat privateENotSupportedArrayCompositeFormat = CompositeFormat.Parse("This type of Array is not supported for the time being. You can try object[] or contact the author!"); private static readonly CompositeFormat privateCNotSupportedArrayCompositeFormat = CompositeFormat.Parse("暂时不支持该类型的Array 你可以试试 object[] 或者联系作者!"); - - internal static string GetThrowMessage(string enMessage, string cnMessage, params string[] args) { if (SugarLanguageType == LanguageType.Default) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ExpressionBuilderHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ExpressionBuilderHelper.cs index 9afbdfb00..62a8742de 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ExpressionBuilderHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ExpressionBuilderHelper.cs @@ -32,7 +32,6 @@ namespace ThingsGateway.SqlSugar /// public static Expression CreateExpression(Expression left, Expression value, ExpressionType type) { - if (type == ExpressionType.Equal) { return Expression.Equal(left, Expression.Convert(value, left.Type)); @@ -64,7 +63,6 @@ namespace ThingsGateway.SqlSugar Type sourceType = typeof(T); Dictionary sourceProperties = entity.Columns.Where(it => propertyNames.Contains(it.PropertyName)).ToDictionary(it => it.PropertyName, it => it.PropertyInfo); - if (StaticConfig.EnableAot) { Type dynamicType = typeof(T); @@ -77,8 +75,6 @@ namespace ThingsGateway.SqlSugar } else { - - Type dynamicType = LinqRuntimeTypeBuilder.GetDynamicType(sourceProperties.Values); ParameterExpression sourceItem = Expression.Parameter(sourceType, "t"); @@ -105,7 +101,6 @@ namespace ThingsGateway.SqlSugar { ParameterExpression parameter = Expression.Parameter(classType, "it"); - PropertyInfo propertyInfo = classType.GetProperty(propertyName); MemberExpression property = Expression.Property(parameter, propertyInfo); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/FileHelper.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/FileHelper.cs index 9a208efee..ec8c26b26 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/FileHelper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/FileHelper.cs @@ -16,7 +16,6 @@ namespace ThingsGateway.SqlSugar /// 文件操作过程中可能抛出的异常 public static void CreateFile(string filePath, string text, Encoding encoding) { - if (IsExistFile(filePath)) { DeleteFile(filePath); @@ -37,7 +36,6 @@ namespace ThingsGateway.SqlSugar } } } - } /// diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ReflectionExtensions.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ReflectionExtensions.cs index 223ec8f2e..bd9b6c96c 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ReflectionExtensions.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ReflectionExtensions.cs @@ -2,7 +2,6 @@ namespace ThingsGateway.SqlSugar { - public static class ReflectionExtensions { public static Type GetTypeInfo(this Type typeInfo) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/SugarAsyncLock.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/SugarAsyncLock.cs index 0eb213a29..52cd9a06b 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/SugarAsyncLock.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/SugarAsyncLock.cs @@ -4,10 +4,8 @@ { static readonly SemaphoreSlim SemaphoreSlim = new SemaphoreSlim(1); - public SugarAsyncLock(SqlSugarProvider db) { - } public async Task AsyncLock(int timeOutSeconds) diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/SugarRetry.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/SugarRetry.cs index 2f6d8a58b..113e12986 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/SugarRetry.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/SugarRetry.cs @@ -2,7 +2,6 @@ { public static class SugarRetry { - public static void Execute(Action action, TimeSpan retryInterval, int retryCount = 3) { Execute(() => @@ -12,7 +11,6 @@ }, retryInterval, retryCount); } - public static void Execute(Action action, T1 arg1, TimeSpan retryInterval, int retryCount = 3) { Execute((x1) => @@ -22,7 +20,6 @@ }, arg1, retryInterval, retryCount); } - public static void Execute(Action action, T1 arg1, T2 arg2, TimeSpan retryInterval, int retryCount = 3) { Execute((x1, x2) => @@ -32,7 +29,6 @@ }, arg1, arg2, retryInterval, retryCount); } - public static void Execute(Action action, T1 arg1, T2 arg2, T3 arg3, TimeSpan retryInterval, int retryCount = 3) { Execute((x1, x2, x3) => @@ -42,7 +38,6 @@ }, arg1, arg2, arg3, retryInterval, retryCount); } - public static void Execute(Action action, T1 arg1, T2 arg2, T3 arg3, T4 arg4, TimeSpan retryInterval, int retryCount = 3) { Execute((x1, x2, x3, x4) => @@ -52,7 +47,6 @@ }, arg1, arg2, arg3, arg4, retryInterval, retryCount); } - public static T Execute(Func func, TimeSpan retryInterval, int retryCount = 3) { var exceptions = new List(); @@ -73,7 +67,6 @@ throw new AggregateException(exceptions); } - public static T Execute(Func func, T1 arg1, TimeSpan retryInterval, int retryCount = 3) { var exceptions = new List(); @@ -114,7 +107,6 @@ throw new AggregateException(exceptions); } - public static T Execute(Func func, T1 arg1, T2 arg2, T3 arg3, TimeSpan retryInterval, int retryCount = 3) { var exceptions = new List(); @@ -135,7 +127,6 @@ throw new AggregateException(exceptions); } - public static T Execute(Func func, T1 arg1, T2 arg2, T3 arg3, T4 arg4, TimeSpan retryInterval, int retryCount = 3) { var exceptions = new List(); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/UtilConstants.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/UtilConstants.cs index cc99de13b..1fedf9d94 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/UtilConstants.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/UtilConstants.cs @@ -52,7 +52,6 @@ namespace ThingsGateway.SqlSugar public static Type SugarType = typeof(SqlSugarProvider); - internal static Type[] NumericalTypes = new Type[] { typeof(int), diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/UtilMethods.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/UtilMethods.cs index eea6d4eba..a1ba21f79 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/UtilMethods.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/UtilMethods.cs @@ -130,7 +130,6 @@ namespace ThingsGateway.SqlSugar return value; } - public static List CopySugarParameters(IReadOnlyList pars) { if (pars == null) return null; @@ -176,7 +175,7 @@ namespace ThingsGateway.SqlSugar var dbLinkName = context.Root.GetConnection(attr.configId).CurrentConnectionConfig.DbLinkName; if (dbLinkName != null) { - if (dbLinkName.First() == '@') + if (dbLinkName[0] == '@') { tableName = queryBuilder.Builder.GetTranslationColumnName(oldTableName) + dbLinkName; } @@ -424,7 +423,6 @@ namespace ThingsGateway.SqlSugar } else if (valueFomatInfo.MethodName == "OnlyInSelectConvertToString") { - var methodInfo = valueFomatInfo.MethodInfo; if (methodInfo != null) { @@ -594,7 +592,6 @@ namespace ThingsGateway.SqlSugar internal static bool IsNumberArray(Type type) { - return type.IsIn(typeof(int[]), typeof(long[]), typeof(short[]), @@ -756,7 +753,6 @@ namespace ThingsGateway.SqlSugar if (destinationType.IsEnum && value is decimal) return Enum.ToObject(destinationType, Convert.ToInt32(value)); - if (destinationType.Name == "TimeOnly" && sourceType.Name != "TimeOnly") { var type = Type.GetType("System.TimeOnly", true, true); @@ -789,7 +785,6 @@ namespace ThingsGateway.SqlSugar return isAsync; } - public static ConnectionConfig CopyConfig(ConnectionConfig it) { return new ConnectionConfig() @@ -861,7 +856,6 @@ namespace ThingsGateway.SqlSugar ClickHouseEnableFinal = it.MoreSettings.ClickHouseEnableFinal, PgSqlIsAutoToLowerSchema = it.MoreSettings.PgSqlIsAutoToLowerSchema, EnableJsonb = it.MoreSettings.EnableJsonb - }, SqlMiddle = it.SqlMiddle == null ? null : new SqlMiddle { @@ -919,11 +913,8 @@ namespace ThingsGateway.SqlSugar return name.EndsWith("ExecuteAsync") || name.Contains("OutputAsyncCausalityEvents") || name.Contains("OutputWaitEtwEvents"); } - - public static StackTraceInfo GetStackTrace() { - StackTrace st = new StackTrace(true); StackTraceInfo info = new StackTraceInfo(); info.MyStackTraceList = new List(); @@ -931,7 +922,7 @@ namespace ThingsGateway.SqlSugar for (int i = 0; i < st.FrameCount; i++) { var frame = st.GetFrame(i); - if (!frame.GetMethod().Module.Name.Equals("thingsgateway.sqlsugar.dll", StringComparison.CurrentCultureIgnoreCase) && frame.GetMethod().Name.First() != '<') + if (!frame.GetMethod().Module.Name.Equals("thingsgateway.sqlsugar.dll", StringComparison.CurrentCultureIgnoreCase) && frame.GetMethod().Name[0] != '<') { info.MyStackTraceList.Add(new StackTraceInfoItem() { @@ -1021,7 +1012,6 @@ namespace ThingsGateway.SqlSugar return baseType; } - internal static Type GetUnderType(PropertyInfo propertyInfo, ref bool isNullable) { Type unType = Nullable.GetUnderlyingType(propertyInfo.PropertyType); @@ -1308,7 +1298,7 @@ namespace ThingsGateway.SqlSugar } } - public static void DataInoveByExpresson(IReadOnlyList datas, MethodCallExpression callExpresion) + public static void DataInoveByExpresson(IEnumerable datas, MethodCallExpression callExpresion) { var methodInfo = callExpresion.Method; foreach (var item in datas) @@ -1361,7 +1351,6 @@ namespace ThingsGateway.SqlSugar public static Type GetTypeByTypeName(string ctypename) { - if (ctypename.EqualCase(UtilConstants.DecType.Name)) { return UtilConstants.DecType; @@ -1812,7 +1801,6 @@ namespace ThingsGateway.SqlSugar return sb.ToString(); } - public static string FieldNameSql() { if (StaticConfig.TableQuerySqlKey != Guid.Empty) @@ -1871,7 +1859,6 @@ namespace ThingsGateway.SqlSugar return constructor.Invoke(new object[] { year, month, day }); } - internal static void AddDiscrimator(Type type, ISugarQueryable queryable, string shortName = null) { var entityInfo = queryable.Context?.EntityMaintenance?.GetEntityInfoWithAttr(type); diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ValidateExtensions.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ValidateExtensions.cs index ee55fac57..3c6298eff 100644 --- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ValidateExtensions.cs +++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Utilities/ValidateExtensions.cs @@ -137,7 +137,6 @@ namespace ThingsGateway.SqlSugar { if (thisValue == null) return false; return System.Text.RegularExpressions.Regex.IsMatch(thisValue.ToString(), @"^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}$"); - } public static bool IsIDcard(this object thisValue) diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/Helper.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/Helper.cs index 6801cb957..bc01c794f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/Helper.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/Helper.cs @@ -2,7 +2,6 @@ { internal static class Helper { - //public static bool HasMicrosecondPrecision(DateTime dateTime) //{ // const long ticksPerMicrosecond = TimeSpan.TicksPerMillisecond / 1000; @@ -99,8 +98,6 @@ return unixTimeSeconds * 1000000 + microseconds; } - - // Method to convert a local DateTime to Unix timestamp (long) public static long ToUnixTimestamp(DateTime dateTime) { diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/SqlDataAdapter.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/SqlDataAdapter.cs index c00c3f19d..b941269be 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/SqlDataAdapter.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/SqlDataAdapter.cs @@ -3,7 +3,6 @@ using System.Data.Common; namespace TDengineAdo { - /// /// 数据填充器 /// @@ -24,7 +23,6 @@ namespace TDengineAdo public TDengineDataAdapter() { - } /// @@ -127,7 +125,6 @@ namespace TDengineAdo { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } - } while (dr.Read()) @@ -165,5 +162,4 @@ namespace TDengineAdo throw new NotImplementedException(); } } - } diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineCommand.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineCommand.cs index 5283c36cc..9d7638c15 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineCommand.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineCommand.cs @@ -69,13 +69,11 @@ namespace TDengineAdo var sql = GetNoParameterSql(commandText); long res = connection.connection.Exec(sql); - connection.Close(); return res > int.MaxValue ? int.MaxValue : Convert.ToInt32(res); } catch (Exception) { - connection.Close(); throw; } @@ -100,7 +98,6 @@ namespace TDengineAdo } catch (Exception) { - connection.Close(); throw; } @@ -117,7 +114,6 @@ namespace TDengineAdo var res = connection.connection.Query(sql); TDengineDataReader reader = new TDengineDataReader(res); - connection.Close(); return reader; } @@ -128,7 +124,6 @@ namespace TDengineAdo } } - public override void Prepare() { // Implement if needed diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineConnection.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineConnection.cs index 77e0ccc38..d4f32c8fc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineConnection.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineConnection.cs @@ -26,7 +26,6 @@ namespace TDengineAdo set => throw new NotSupportedException(); } - public override string Database => connectionStringBuilder.Database; public override string DataSource => connectionStringBuilder.Host; @@ -76,8 +75,6 @@ namespace TDengineAdo connection?.Dispose(); } - public override void ChangeDatabase(string databaseName) => connectionStringBuilder.Database = databaseName; - } } \ No newline at end of file diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineParameterCollection.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineParameterCollection.cs index f1248f98f..b3589d7ec 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineParameterCollection.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TDengineParameterCollection.cs @@ -130,5 +130,4 @@ namespace TDengineAdo parameters[index] = (TDengineParameter)value; } } - } diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TdengineType.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TdengineType.cs index c8f8ded7d..2ca8322eb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TdengineType.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/Core/TdengineType.cs @@ -2,7 +2,6 @@ { internal static class TDengineType { - public static object GetObjectByType(object dataValue, byte typeValue) { if (dataValue is string && dataValue?.ToString().ToUpper() == "NULL") diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/CodeFirst/TDengineCodeFirst.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/CodeFirst/TDengineCodeFirst.cs index 7ee9187ad..461eabcbc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/CodeFirst/TDengineCodeFirst.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/CodeFirst/TDengineCodeFirst.cs @@ -138,10 +138,8 @@ namespace ThingsGateway.SqlSugar .Where(entityColumn => dbColumns.Any(dbColumn => entityColumn.OldDbColumnName.Equals(dbColumn.DbColumnName, StringComparison.CurrentCultureIgnoreCase))) ; - var isMultiplePrimaryKey = dbColumns.Where(it => it.IsPrimarykey).Count() > 1 || entityColumns.Where(it => it.IsPrimarykey).Count() > 1; - var isChange = false; foreach (var item in addColumns) { diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/DbBind/TDengineDbBind.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/DbBind/TDengineDbBind.cs index 96705386a..5e11e61bb 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/DbBind/TDengineDbBind.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/DbBind/TDengineDbBind.cs @@ -133,7 +133,6 @@ /// TDengine 数据库类型与C#类型的常量映射关系 /// public static List> MappingTypesConst = new List>(){ - new KeyValuePair("BOOL",CSharpDataType.@bool), new KeyValuePair("TINYINT",CSharpDataType.@byte), new KeyValuePair("TINYINT",CSharpDataType.@int), diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/DbMaintenance/TDengineDbMaintenance.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/DbMaintenance/TDengineDbMaintenance.cs index 9f1150b3c..733042621 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/DbMaintenance/TDengineDbMaintenance.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/DbMaintenance/TDengineDbMaintenance.cs @@ -332,7 +332,6 @@ namespace ThingsGateway.SqlSugar #endregion - #region Methods /// /// 获取表信息列表 diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Insertable/TDengineInserttable.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Insertable/TDengineInserttable.cs index 229411cf3..555cfae25 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Insertable/TDengineInserttable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Insertable/TDengineInserttable.cs @@ -95,7 +95,7 @@ if (identityKeys.Count == 0) { return this.ExecuteCommand() > 0; } var idValue = ExecuteReturnBigIdentity(); Check.Exception(identityKeys.Count > 1, "ExecuteCommandIdentityIntoEntity does not support multiple identity keys"); - var identityKey = identityKeys.First(); + var identityKey = identityKeys[0]; object setValue = 0; if (idValue > int.MaxValue) setValue = idValue; diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Insertable/TagInserttable.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Insertable/TagInserttable.cs index 09fb3a328..9094de7c4 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Insertable/TagInserttable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Insertable/TagInserttable.cs @@ -46,7 +46,7 @@ namespace ThingsGateway.SqlSugar var tagString = string.Join(",", tagValues.Where(v => !string.IsNullOrEmpty(v)).Select(v => $"'{v.ToSqlFilter()}'")); tags.Add(tagString); this.Context.Ado.ExecuteCommand($"CREATE TABLE IF NOT EXISTS {childTableName} USING {sTableName} TAGS ({tagString})"); - this.Context.Insertable(pageItems).IgnoreColumns(GetTagNames(pageItems.First(), attr)).AS(childTableName).ExecuteCommand(); + this.Context.Insertable(pageItems).IgnoreColumns(GetTagNames(pageItems[0], attr)).AS(childTableName).ExecuteCommand(); }); } return inserObjects.Count; @@ -75,7 +75,7 @@ namespace ThingsGateway.SqlSugar var tagString = string.Join(",", tagValues.Where(v => !string.IsNullOrEmpty(v)).Select(v => $"'{v.ToSqlFilter()}'")); tags.Add(tagString); await Context.Ado.ExecuteCommandAsync($"CREATE TABLE IF NOT EXISTS {childTableName} USING {sTableName} TAGS ({tagString})").ConfigureAwait(false); - await Context.Insertable(pageItems).IgnoreColumns(GetTagNames(pageItems.First(), attr)).AS(childTableName).ExecuteCommandAsync().ConfigureAwait(false); + await Context.Insertable(pageItems).IgnoreColumns(GetTagNames(pageItems[0], attr)).AS(childTableName).ExecuteCommandAsync().ConfigureAwait(false); }).ConfigureAwait(false); } return inserObjects.Count; @@ -90,7 +90,7 @@ namespace ThingsGateway.SqlSugar private static List GetTagValues(List pageItems, STableAttribute attr) { var tagValues = new List(); - var obj = pageItems.First(); + var obj = pageItems[0]; if (attr.Tag1 != null) tagValues.Add(obj.GetType().GetProperty(attr.Tag1)?.GetValue(obj)?.ToString()); diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Queryable/TDengineSqlQueryable.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Queryable/TDengineSqlQueryable.cs index ea1533e73..c6c1ad97f 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Queryable/TDengineSqlQueryable.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/Queryable/TDengineSqlQueryable.cs @@ -37,42 +37,32 @@ } public class TDengineQueryable : QueryableProvider { - } public class TDengineQueryable : QueryableProvider { - } public class TDengineQueryable : QueryableProvider { - } public class TDengineQueryable : QueryableProvider { - } public class TDengineQueryable : QueryableProvider { - } public class TDengineQueryable : QueryableProvider { - } public class TDengineQueryable : QueryableProvider { - } public class TDengineQueryable : QueryableProvider { - } public class TDengineQueryable : QueryableProvider { - } public class TDengineQueryable : QueryableProvider { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineDeleteBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineDeleteBuilder.cs index 0691762ee..752dd85b4 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineDeleteBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineDeleteBuilder.cs @@ -2,6 +2,5 @@ { public class TDengineDeleteBuilder : DeleteBuilder { - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineInsertBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineInsertBuilder.cs index d7026dca3..a43f03cca 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineInsertBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineInsertBuilder.cs @@ -49,10 +49,7 @@ namespace ThingsGateway.SqlSugar /// /// 转换插入返回ID的函数 /// - public override Func ConvertInsertReturnIdFunc { get; set; } = (name, sql) => - { - return sql.Trim().TrimEnd(';') + $"returning {name} "; - }; + public override Func ConvertInsertReturnIdFunc { get; set; } = (name, sql) => sql.Trim().TrimEnd(';') + $"returning {name} "; /// /// 生成SQL字符串 @@ -66,7 +63,7 @@ namespace ThingsGateway.SqlSugar } var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList(); var isSingle = groupList.Count == 1; - string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); + string columnsString = string.Join(",", groupList[0].Select(it => Builder.GetTranslationColumnName(it.DbColumnName))); if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => base.GetDbColumn(it, Builder.SqlParameterKeyWord + it.DbColumnName))); diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineUpdateBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineUpdateBuilder.cs index b30aa8331..24c9913af 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineUpdateBuilder.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengine/SqlBuilder/TDengineUpdateBuilder.cs @@ -10,7 +10,5 @@ { throw new NotSupportedException("TDengine库不支持更新操作"); } - - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengineDataAdapter.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengineDataAdapter.cs index ba6fb800f..c4be6a340 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengineDataAdapter.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/TDengineDataAdapter.cs @@ -26,7 +26,6 @@ namespace ThingsGateway.SqlSugar public TDengineDataAdapter() { - } /// @@ -134,7 +133,6 @@ namespace ThingsGateway.SqlSugar { columns.Add(new DataColumn(name + i, type)); } - } while (dr.Read()) @@ -168,6 +166,5 @@ namespace ThingsGateway.SqlSugar { throw new NotImplementedException(); } - } } diff --git a/src/Admin/ThingsGateway.SqlSugar/TDengine/Tools/TaosUtilMethods.cs b/src/Admin/ThingsGateway.SqlSugar/TDengine/Tools/TaosUtilMethods.cs index ce34f9bd2..54f9187b5 100644 --- a/src/Admin/ThingsGateway.SqlSugar/TDengine/Tools/TaosUtilMethods.cs +++ b/src/Admin/ThingsGateway.SqlSugar/TDengine/Tools/TaosUtilMethods.cs @@ -175,7 +175,7 @@ namespace ThingsGateway.SqlSugar for (int i = 0; i < st.FrameCount; i++) { var frame = st.GetFrame(i); - if (!string.Equals(frame.GetMethod().Module.Name, "thingsgateway.sqlsugar.dll", StringComparison.OrdinalIgnoreCase) && frame.GetMethod().Name.First() != '<') + if (!string.Equals(frame.GetMethod().Module.Name, "thingsgateway.sqlsugar.dll", StringComparison.OrdinalIgnoreCase) && frame.GetMethod().Name[0] != '<') { info.MyStackTraceList.Add(new StackTraceInfoItem() { diff --git a/src/Directory.Build.props b/src/Directory.Build.props index c260861bd..8c6b8634b 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,11 +1,11 @@ - 10.9.62 - 10.9.62 - 10.9.62 - 2.9.22 - 10.9.22 + 10.9.63 + 10.9.63 + 10.9.63 + 2.9.23 + 10.9.23 8.0.18 9.0.7 zh-Hans;en-US diff --git a/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs b/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs index 31bea3134..e2c910af8 100644 --- a/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs +++ b/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs @@ -44,7 +44,6 @@ public static class CSharpScriptEngineExtension } catch { - } } @@ -91,7 +90,6 @@ public static class CSharpScriptEngineExtension runScript = Instance.Get(field); if (runScript == null) { - var src = source.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); var _using = new StringBuilder(); var _body = new StringBuilder(); @@ -105,16 +103,19 @@ public static class CSharpScriptEngineExtension { _body.AppendLine(l); } - }); var evaluator = CSScript.Evaluator; foreach (var item in assemblies) { evaluator = evaluator.ReferenceAssembly(item.Location); } - // 动态加载并执行代码 - runScript = evaluator.With(eval => eval.IsAssemblyUnloadingEnabled = true).LoadCode( - $@" + try + { + + + // 动态加载并执行代码 + runScript = evaluator.With(eval => eval.IsAssemblyUnloadingEnabled = true).LoadCode( + $@" using System; using System.Linq; using System.Threading.Tasks; @@ -130,10 +131,17 @@ public static class CSharpScriptEngineExtension {_using} {_body} "); - Instance.Set(field, runScript); + + Instance.Set(field, runScript); + + } + catch (NullReferenceException) + { + string exString = string.Format(CSScriptResource.CSScriptResource.Error1, typeof(T).FullName); + throw new(exString); + } } } - } Instance.SetExpire(field, TimeSpan.FromHours(1)); @@ -145,7 +153,4 @@ public static class CSharpScriptEngineExtension var field = $"{CacheKey}-{source}"; Instance.SetExpire(field, timeSpan ?? TimeSpan.FromHours(1)); } - } - - diff --git a/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs b/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs index a62871931..fd6fc7384 100644 --- a/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs +++ b/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs @@ -58,7 +58,6 @@ public static class ExpressionEvaluatorExtension } catch { - } } diff --git a/src/Foundation/ThingsGateway.CSScript/Locales/CSScriptResource.cs b/src/Foundation/ThingsGateway.CSScript/Locales/CSScriptResource.cs new file mode 100644 index 000000000..bb2bec6a3 --- /dev/null +++ b/src/Foundation/ThingsGateway.CSScript/Locales/CSScriptResource.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充 +// 此代码版权(除特别声明外的代码)归作者本人Diego所有 +// 源代码使用协议遵循本仓库的开源协议及附加协议 +// Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway +// Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway +// 使用文档:https://thingsgateway.cn/ +// QQ群:605534569 +//------------------------------------------------------------------------------ + +namespace ThingsGateway.CSScriptResource; + + +public static class CSScriptResource +{ + + public static string Error1 => ThingsGateway.Foundation.AppResource.Lang == Foundation.Language.Chinese ? ChineseResource.Error1 : EnglishResource.Error1; +} + +public static class ChineseResource +{ + public const string Error1 = "无法识别正确的接口类,需要实现 {0} 类型"; + +} + +public static class EnglishResource +{ + public const string Error1 = "Unable to identify the correct interface class. The {0} type needs to be implemented"; + +} \ No newline at end of file diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelComponent.razor.cs b/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelComponent.razor.cs index e2c12e8cc..dd8a2c67a 100644 --- a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelComponent.razor.cs +++ b/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelComponent.razor.cs @@ -52,21 +52,17 @@ public partial class ChannelComponent : ComponentBase if (OnDisConnectClick.HasDelegate) await OnDisConnectClick.InvokeAsync(); } - - } catch (Exception ex) { Channel?.Logger?.LogWarning(ex); } - } ValidateForm ValidateForm { get; set; } private async Task ConnectClick() { - try { var validate = ValidateForm.Validate(); @@ -97,7 +93,6 @@ public partial class ChannelComponent : ComponentBase if (OnConnectClick.HasDelegate) await OnConnectClick.InvokeAsync(Channel); - } catch (Exception ex) { diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs b/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs index ff3d99c7b..410b770a9 100644 --- a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs +++ b/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs @@ -62,7 +62,6 @@ public partial class LogConsole : IDisposable [Inject] private IPlatformService PlatformService { get; set; } - private string logPath; protected override async Task OnParametersSetAsync() { @@ -130,7 +129,6 @@ public partial class LogConsole : IDisposable } finally { - WaitLock.Release(); } } diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogMessage.cs b/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogMessage.cs index d4970a534..d4633992b 100644 --- a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogMessage.cs +++ b/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogMessage.cs @@ -11,7 +11,6 @@ namespace ThingsGateway.Foundation; /// - public class LogMessage { public LogMessage(int level, string message) diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs b/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs index 2c9ca080a..304c56989 100644 --- a/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs +++ b/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs @@ -43,6 +43,4 @@ public class PlatformService : IPlatformService await jSObject.InvokeVoidAsync("blazor_downloadFile", url, fileName, new { FileName = path }); } } - - } diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs b/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs index 4afb76e86..1a5117d2a 100644 --- a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs +++ b/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs @@ -9,9 +9,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - - - //------------------------------------------------------------------------------ // 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 // 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs b/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs index 3ebb26594..95622cd19 100644 --- a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs +++ b/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs @@ -118,10 +118,7 @@ internal sealed class VariableCodeBuilder return m_pluginClass .GetMembers() .OfType() - .Where(m => - { - return m.GetAttributes().Any(a => a.AttributeClass.ToDisplayString() == VariableObjectSyntaxFilter.VariableRuntimeAttributeTypeName); - }); + .Where(m => m.GetAttributes().Any(a => a.AttributeClass.ToDisplayString() == VariableObjectSyntaxFilter.VariableRuntimeAttributeTypeName)); } } diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs b/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs index 62993c03f..694393f5f 100644 --- a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs +++ b/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs @@ -41,10 +41,7 @@ namespace ThingsGateway.Foundation public void Initialize(IncrementalGeneratorInitializationContext context) { - context.RegisterPostInitializationOutput(ctx => - { - ctx.AddSource("GeneratorVariableAttribute.g.cs", SourceText.From(AttributeSource, Encoding.UTF8)); - }); + context.RegisterPostInitializationOutput(ctx => ctx.AddSource("GeneratorVariableAttribute.g.cs", SourceText.From(AttributeSource, Encoding.UTF8))); var variableObjectTypes = context.SyntaxProvider .CreateSyntaxProvider( @@ -54,7 +51,6 @@ namespace ThingsGateway.Foundation .Select(static (t, _) => (INamedTypeSymbol)t!) // 明确转成 INamedTypeSymbol .Collect(); - var compilationAndTypes = context.CompilationProvider.Combine(variableObjectTypes); context.RegisterSourceOutput(compilationAndTypes, (spc, source) => @@ -72,10 +68,8 @@ namespace ThingsGateway.Foundation spc.AddSource($"{builder.GetFileName()}.g.cs", SourceText.From(ret, Encoding.UTF8)); } } - }); } - } #endif diff --git a/src/Foundation/ThingsGateway.Foundation/Attributes/UriValidationAttribute.cs b/src/Foundation/ThingsGateway.Foundation/Attributes/UriValidationAttribute.cs index 304daa85e..3e6d25fac 100644 --- a/src/Foundation/ThingsGateway.Foundation/Attributes/UriValidationAttribute.cs +++ b/src/Foundation/ThingsGateway.Foundation/Attributes/UriValidationAttribute.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using System.ComponentModel.DataAnnotations; using System.Text.RegularExpressions; diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptions.cs b/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptions.cs index 8905d1f01..3a420c341 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptions.cs @@ -41,7 +41,6 @@ public class ChannelOptions : ChannelOptionsBase, IChannelOptions, IDisposable private volatile int _maxConcurrentCount = 1; public TouchSocketConfig Config { get; set; } = new(); - public void Dispose() { Config?.SafeDispose(); diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptionsBase.cs b/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptionsBase.cs index 85f6a89c6..7e55c36d4 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptionsBase.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptionsBase.cs @@ -103,7 +103,6 @@ namespace ThingsGateway.Foundation public virtual IEnumerable Validate(ValidationContext validationContext) { - if (ChannelType == ChannelTypeEnum.TcpClient) { if (string.IsNullOrEmpty(RemoteUrl)) @@ -132,10 +131,8 @@ namespace ThingsGateway.Foundation yield return new ValidationResult(AppResource.Localizer["PortNameNotNull"], new[] { nameof(PortName) }); } } - } - public override string ToString() { switch (ChannelType) diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPMessage.cs b/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPMessage.cs index 06f6c5e66..35198e48a 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPMessage.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPMessage.cs @@ -42,15 +42,12 @@ public abstract class DDPMessage : MessageBase, IResultMessage BodyLength = GetBodyLength(ref byteBlock); return true; } - } public abstract int GetBodyLength(ref TByteBlock byteBlock) where TByteBlock : IByteBlock; public abstract byte[] GetContent(ref TByteBlock byteBlock) where TByteBlock : IByteBlock; - } - public class DDPTcpMessage : DDPMessage { public override int GetBodyLength(ref TByteBlock byteBlock) diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPSend.cs b/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPSend.cs index b548d2908..86dec4df3 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPSend.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPSend.cs @@ -17,7 +17,6 @@ namespace ThingsGateway.Foundation; /// public class DDPSend : ISendMessage { - public int MaxLength => 300; public int Sign { get; set; } ReadOnlyMemory ReadOnlyMemory; @@ -66,6 +65,5 @@ public class DDPSend : ISendMessage return newBytes; } return bytes; - } } diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPTcpSessionClientChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPTcpSessionClientChannel.cs index e16909bab..8879e4907 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPTcpSessionClientChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPTcpSessionClientChannel.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using System.Runtime.CompilerServices; using ThingsGateway.NewLife; @@ -28,7 +27,6 @@ public class DDPTcpSessionClientChannel : TcpSessionClientChannel /// 包含连接信息的事件参数 protected override Task OnTcpConnected(ConnectedEventArgs e) { - // 如果当前实例的配置不为空,则将配置应用到适配器 if (Config != null) { @@ -62,8 +60,6 @@ public class DDPTcpSessionClientChannel : TcpSessionClientChannel return EasyTask.CompletedTask; } - - private DeviceSingleStreamDataHandleAdapter DDPAdapter = new(); private WaitLock _waitLock = new(nameof(DDPTcpSessionClientChannel)); protected override async ValueTask OnTcpReceiving(ByteBlock byteBlock) @@ -118,7 +114,6 @@ public class DDPTcpSessionClientChannel : TcpSessionClientChannel } catch { - } } @@ -136,19 +131,14 @@ public class DDPTcpSessionClientChannel : TcpSessionClientChannel await Task.Delay(100).ConfigureAwait(false); await this.CloseAsync().ConfigureAwait(false); this.SafeDispose(); - } } - } } return true; } - - - #region Throw [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPUdpSessionChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPUdpSessionChannel.cs index 01b7b1473..cbbfa199a 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPUdpSessionChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/DDP/DDPUdpSessionChannel.cs @@ -25,7 +25,6 @@ public class DDPUdpSessionChannel : UdpSessionChannel, IClientChannel, IDtuUdpSe { public DDPUdpSessionChannel(IChannelOptions channelOptions) : base(channelOptions) { - } protected override void LoadConfig(TouchSocketConfig config) { @@ -48,10 +47,8 @@ public class DDPUdpSessionChannel : UdpSessionChannel, IClientChannel, IDtuUdpSe DDPAdapter.SendCallBackAsync = DDPSendAsync; DDPAdapter.ReceivedCallBack = DDPHandleReceivedData; DataHandlingAdapter.SendCallBackAsync = DefaultSendAsync; - } - protected Task DefaultSendAsync(EndPoint endPoint, ReadOnlyMemory memory) { if (TryGetId(endPoint, out var id)) @@ -83,7 +80,6 @@ public class DDPUdpSessionChannel : UdpSessionChannel, IClientChannel, IDtuUdpSe private DeviceUdpDataHandleAdapter DDPAdapter = new(); - public EndPoint DefaultEndpoint => RemoteIPHost?.EndPoint; ConcurrentDictionary WaitLocks { get; } = new(); @@ -170,16 +166,13 @@ public class DDPUdpSessionChannel : UdpSessionChannel, IClientChannel, IDtuUdpSe await Task.Delay(100).ConfigureAwait(false); IdDict.TryRemove(endPoint, out _); EndPointDcit.TryRemove(id, out _); - } } - } } return true; } - #region Throw [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -203,10 +196,6 @@ public class DDPUdpSessionChannel : UdpSessionChannel, IClientChannel, IDtuUdpSe #endregion Throw - - - - InternalConcurrentDictionary IdDict { get; set; } = new(); InternalConcurrentDictionary EndPointDcit { get; set; } = new(); public bool TryGetId(EndPoint endPoint, out string id) diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs b/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs index 5e59034d7..1b1c2f8f9 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs @@ -14,7 +14,6 @@ using TouchSocket.SerialPorts; namespace ThingsGateway.Foundation; - /// /// 通道扩展 /// @@ -175,7 +174,6 @@ public static class ChannelOptionsExtensions default: return new TcpServiceChannel(channelOptions); } - } /// @@ -201,7 +199,6 @@ public static class ChannelOptionsExtensions else config.SetBindIPHost(new IPHost(0)); - switch (channelOptions.DtuSeviceType) { @@ -228,6 +225,5 @@ public static class ChannelOptionsExtensions #endif return udpSessionChannel; } - } } diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs index 92ff40e27..7cfa212a8 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs @@ -37,7 +37,6 @@ public interface IChannel : ISetupConfigObject, IDisposable, IClosableClient, IC /// public ConcurrentList Collects { get; } - /// /// MaxSign /// @@ -67,7 +66,6 @@ public interface IChannel : ISetupConfigObject, IDisposable, IClosableClient, IC /// 主动请求时的等待池 /// public ConcurrentDictionary> ChannelReceivedWaitDict { get; } - } /// diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/IChannelOptions.cs b/src/Foundation/ThingsGateway.Foundation/Channel/IChannelOptions.cs index 1d338aef8..2fd34c83a 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/IChannelOptions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/IChannelOptions.cs @@ -16,7 +16,6 @@ namespace ThingsGateway.Foundation; public interface IChannelOptions { - /// /// 通道类型 /// @@ -101,7 +100,6 @@ public interface IChannelOptions TouchSocketConfig Config { get; set; } - /// /// 最大连接数 /// @@ -117,7 +115,6 @@ public interface IChannelOptions /// string Heartbeat { get; set; } - #region dtu终端 /// /// 心跳时间 diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/ITcpServiceChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/ITcpServiceChannel.cs index 70fa27c4e..75b292050 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/ITcpServiceChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/ITcpServiceChannel.cs @@ -17,5 +17,4 @@ public interface ITcpServiceChannel : IChannel Task ClientDisposeAsync(string id); public bool TryGetClient(string id, out TcpSessionClientChannel client); - } \ No newline at end of file diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/OtherChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/OtherChannel.cs index 4a77572db..9af79995c 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/OtherChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/OtherChannel.cs @@ -213,5 +213,4 @@ public class OtherChannel : SetupConfigObject, IClientChannel throw new NotSupportedException($"当前适配器为空或者不支持对象发送。"); } } - } diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs b/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs index cff1561ff..34c09224a 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs @@ -79,10 +79,7 @@ public static class PluginUtil await c.CloseAsync($"{channelOptions.CheckClearTime}ms Timeout").ConfigureAwait(false); }); }; - } return action; } - - } diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs index 542ef0905..a234bc9b7 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs @@ -21,7 +21,6 @@ namespace ThingsGateway.Foundation; /// public class SerialPortChannel : SerialPortClient, IClientChannel { - public SerialPortChannel(IChannelOptions channelOptions) { ChannelOptions = channelOptions; @@ -76,7 +75,6 @@ public class SerialPortChannel : SerialPortClient, IClientChannel /// public override async Task CloseAsync(string msg, CancellationToken token) { - if (Online) { try @@ -126,8 +124,6 @@ public class SerialPortChannel : SerialPortClient, IClientChannel } } - - /// public void SetDataHandlingAdapter(DataHandlingAdapter adapter) { @@ -151,7 +147,6 @@ public class SerialPortChannel : SerialPortClient, IClientChannel return base.ToString(); } - protected override async Task OnSerialClosed(ClosedEventArgs e) { Logger?.Info($"{ToString()} Closed{(e.Message.IsNullOrEmpty() ? string.Empty : $" -{e.Message}")}"); @@ -196,7 +191,6 @@ public class SerialPortChannel : SerialPortClient, IClientChannel await this.OnChannelReceivedEvent(e, ChannelReceived).ConfigureAwait(false); } - /// protected override void Dispose(bool disposing) { diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs index 1dd5a46e3..00fd6e396 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs @@ -8,9 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - - - using System.Collections.Concurrent; using ThingsGateway.NewLife; @@ -63,7 +60,6 @@ public class TcpClientChannel : TcpClient, IClientChannel public WaitHandlePool WaitHandlePool { get; } = new(); public virtual WaitLock GetLock(string key) => WaitLock; - /// public WaitLock WaitLock => ChannelOptions.WaitLock; @@ -113,7 +109,6 @@ public class TcpClientChannel : TcpClient, IClientChannel { if (token.IsCancellationRequested) return; await this.OnChannelEvent(Started).ConfigureAwait(false); - } } } @@ -137,14 +132,11 @@ public class TcpClientChannel : TcpClient, IClientChannel return $"{IP}:{Port}"; } - protected override async Task OnTcpClosed(ClosedEventArgs e) { - Logger?.Info($"{ToString()} Closed{(e.Message.IsNullOrEmpty() ? string.Empty : $" -{e.Message}")}"); await base.OnTcpClosed(e).ConfigureAwait(false); - } /// protected override async Task OnTcpClosing(ClosingEventArgs e) @@ -185,11 +177,9 @@ public class TcpClientChannel : TcpClient, IClientChannel if (e.Handled) return; - await this.OnChannelReceivedEvent(e, ChannelReceived).ConfigureAwait(false); } - /// protected override void Dispose(bool disposing) { diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs index a7d2e7de6..7be512e6c 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs @@ -20,7 +20,6 @@ namespace ThingsGateway.Foundation; /// public abstract class TcpServiceChannelBase : TcpService, ITcpService where TClient : TcpSessionClientChannel, new() { - /// public ConcurrentList Collects { get; } = new(); @@ -29,7 +28,6 @@ public abstract class TcpServiceChannelBase : TcpService, ITcp /// public bool ShutDownEnable { get; set; } = true; - /// public override async Task ClearAsync() { @@ -49,7 +47,6 @@ public abstract class TcpServiceChannelBase : TcpService, ITcp } } - public async Task ClientDisposeAsync(string id) { if (this.TryGetClient(id, out var client)) @@ -103,7 +100,6 @@ public abstract class TcpServiceChannelBase : TcpService, ITcp await _connectLock.WaitAsync(token).ConfigureAwait(false); if (Monitors.Any()) { - await ClearAsync().ConfigureAwait(false); var iPHost = Monitors.FirstOrDefault()?.Option.IpHost; var result = await base.StopAsync(token).ConfigureAwait(false); @@ -116,7 +112,6 @@ public abstract class TcpServiceChannelBase : TcpService, ITcp { _connectLock.Release(); } - } else { @@ -126,8 +121,6 @@ public abstract class TcpServiceChannelBase : TcpService, ITcp return Result.Success; } - - /// protected override Task OnTcpClosed(TClient socketClient, ClosedEventArgs e) { @@ -162,7 +155,6 @@ public abstract class TcpServiceChannelBase : TcpService, ITcp /// public class TcpServiceChannel : TcpServiceChannelBase, IChannel, ITcpServiceChannel where TClient : TcpSessionClientChannel, IClientChannel, IChannel, new() { - /// public TcpServiceChannel(IChannelOptions channelOptions) { @@ -248,8 +240,6 @@ public class TcpServiceChannel : TcpServiceChannelBase, IChann await base.OnTcpConnecting(socketClient, e).ConfigureAwait(false); } - - /// protected override async Task OnTcpReceived(TClient socketClient, ReceivedDataEventArgs e) { @@ -267,10 +257,8 @@ public class TcpServiceChannel : TcpServiceChannelBase, IChann return; await socketClient.OnChannelReceivedEvent(e, ChannelReceived).ConfigureAwait(false); - } - /// public ConcurrentDictionary> ChannelReceivedWaitDict { get; } = new(); @@ -282,7 +270,6 @@ public class TcpServiceChannel : TcpServiceChannelBase, IChann client.WaitLock = new NewLife.WaitLock(nameof(TcpServiceChannelBase), ChannelOptions.WaitLock.MaxCount); - base.ClientInitialized(client); } diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs index 7034f4629..8c92a29b6 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using System.Collections.Concurrent; using ThingsGateway.NewLife; @@ -146,5 +145,4 @@ public class TcpSessionClientChannel : TcpSessionClient, IClientChannel await this.OnChannelReceivedEvent(e, ChannelReceived).ConfigureAwait(false); } - } diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs b/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs index 5237dd0ac..f0ec95178 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs @@ -117,7 +117,6 @@ public class UdpSessionChannel : UdpSession, IClientChannel await this.OnChannelEvent(Started).ConfigureAwait(false); } } - } finally { @@ -169,7 +168,6 @@ public class UdpSessionChannel : UdpSession, IClientChannel return $"{ChannelOptions.BindUrl} {ChannelOptions.RemoteUrl}"; } - /// protected override async Task OnUdpReceived(UdpReceivedDataEventArgs e) { @@ -195,5 +193,4 @@ public class UdpSessionChannel : UdpSession, IClientChannel WaitHandlePool.SafeDispose(); base.Dispose(disposing); } - } diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceSingleStreamDataHandleAdapter.cs b/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceSingleStreamDataHandleAdapter.cs index a0a9eff65..8fa5ce96b 100644 --- a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceSingleStreamDataHandleAdapter.cs +++ b/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceSingleStreamDataHandleAdapter.cs @@ -170,8 +170,6 @@ public class DeviceSingleStreamDataHandleAdapter : TcpCustomDataHandli Request = null; } - - /// protected override async Task PreviewSendAsync(ReadOnlyMemory memory) { diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceUdpDataHandleAdapter.cs b/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceUdpDataHandleAdapter.cs index ac00f6177..55a525967 100644 --- a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceUdpDataHandleAdapter.cs +++ b/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceUdpDataHandleAdapter.cs @@ -166,7 +166,6 @@ public class DeviceUdpDataHandleAdapter : UdpDataHandlingAdapter where throw new Exception($"Unable to convert {nameof(requestInfo)} to {nameof(ISendMessage)}"); } - var byteBlock = new ValueByteBlock(sendMessage.MaxLength); try { diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/TcpCustomDataHandlingAdapter.cs b/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/TcpCustomDataHandlingAdapter.cs index c62291c67..f15532402 100644 --- a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/TcpCustomDataHandlingAdapter.cs +++ b/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/TcpCustomDataHandlingAdapter.cs @@ -18,7 +18,6 @@ namespace ThingsGateway.Foundation; /// public abstract class TcpCustomDataHandlingAdapter : SingleStreamDataHandlingAdapter where TRequest : IRequestInfo { - private ValueByteBlock m_tempByteBlock; private readonly Type m_requestType; @@ -34,7 +33,6 @@ public abstract class TcpCustomDataHandlingAdapter : SingleStreamDataH this.m_requestType = typeof(TRequest); } - private TRequest m_tempRequest; /// diff --git a/src/Foundation/ThingsGateway.Foundation/Device/DeviceBase.cs b/src/Foundation/ThingsGateway.Foundation/Device/DeviceBase.cs index 8bbc5a8ce..6577b8e59 100644 --- a/src/Foundation/ThingsGateway.Foundation/Device/DeviceBase.cs +++ b/src/Foundation/ThingsGateway.Foundation/Device/DeviceBase.cs @@ -60,7 +60,6 @@ public abstract class DeviceBase : DisposableObject, IDevice if (Channel is IClientChannel clientChannel) { - if (clientChannel.ChannelType == ChannelTypeEnum.UdpSession) { channel.Config.SetUdpDataHandlingAdapter(() => @@ -87,8 +86,6 @@ public abstract class DeviceBase : DisposableObject, IDevice return adapter; }); } - - } channel.Collects.Add(this); @@ -98,7 +95,6 @@ public abstract class DeviceBase : DisposableObject, IDevice Channel.Started.Add(ChannelStarted); Channel.ChannelReceived.Add(ChannelReceived); - SetChannel(); } } @@ -136,7 +132,6 @@ public abstract class DeviceBase : DisposableObject, IDevice /// public bool OnLine => Channel.Online; - #endregion #region 属性 @@ -147,8 +142,6 @@ public abstract class DeviceBase : DisposableObject, IDevice /// public virtual int Timeout { get; set; } = 3000; - - /// /// /// @@ -315,17 +308,14 @@ public abstract class DeviceBase : DisposableObject, IDevice /// protected virtual Task ChannelReceived(IClientChannel client, ReceivedDataEventArgs e, bool last) { - if (e.RequestInfo is MessageBase response) { try { - if (client.WaitHandlePool.SetRun(response)) { e.Handled = true; } - } catch (Exception ex) { @@ -385,8 +375,6 @@ public abstract class DeviceBase : DisposableObject, IDevice if (token.IsCancellationRequested) throw new OperationCanceledException(); - - } private WaitLock connectWaitLock = new(nameof(DeviceBase)); @@ -425,7 +413,6 @@ public abstract class DeviceBase : DisposableObject, IDevice try { - await BefortSendAsync(channelResult.Content, cancellationToken).ConfigureAwait(false); await waitLock.WaitAsync(cancellationToken).ConfigureAwait(false); @@ -445,7 +432,6 @@ public abstract class DeviceBase : DisposableObject, IDevice { return new(ex); } - } /// @@ -478,7 +464,6 @@ public abstract class DeviceBase : DisposableObject, IDevice { if (Channel is IDtuUdpSessionChannel udpSessionChannel) { - if (string.IsNullOrWhiteSpace(socketId)) return udpSessionChannel.DefaultEndpoint; @@ -496,13 +481,11 @@ public abstract class DeviceBase : DisposableObject, IDevice throw new Exception(string.Format(AppResource.DtuNoConnectedWaining, socketId)); } } - } return null; } - /// public virtual ValueTask> SendThenReturnAsync(ISendMessage sendMessage, CancellationToken cancellationToken = default) { @@ -544,13 +527,11 @@ public abstract class DeviceBase : DisposableObject, IDevice /// protected async ValueTask GetResponsedDataAsync(ISendMessage command, IClientChannel clientChannel, int timeout = 3000, CancellationToken cancellationToken = default) { - var waitData = clientChannel.WaitHandlePool.GetWaitDataAsync(out var sign); command.Sign = sign; WaitLock? waitLock = null; try { - var dtuId = this is IDtu dtu1 ? dtu1.DtuId : null; waitLock = GetWaitLock(clientChannel, dtuId); @@ -558,7 +539,6 @@ public abstract class DeviceBase : DisposableObject, IDevice await waitLock.WaitAsync(cancellationToken).ConfigureAwait(false); - EndPoint? endPoint = GetUdpEndpoint(dtuId); if (cancellationToken.IsCancellationRequested) @@ -567,7 +547,6 @@ public abstract class DeviceBase : DisposableObject, IDevice if (clientChannel.ReadOnlyDataHandlingAdapter != null) clientChannel.ReadOnlyDataHandlingAdapter.Logger = Logger; - Channel.ChannelReceivedWaitDict.TryAdd(sign, ChannelReceived); if (cancellationToken.IsCancellationRequested) @@ -597,7 +576,6 @@ public abstract class DeviceBase : DisposableObject, IDevice } return new MessageBase(result); } - } catch (Exception ex) { @@ -974,7 +952,6 @@ public abstract class DeviceBase : DisposableObject, IDevice { lock (Channel) { - Channel.Starting.Remove(ChannelStarting); Channel.Stoped.Remove(ChannelStoped); Channel.Started.Remove(ChannelStarted); @@ -985,10 +962,7 @@ public abstract class DeviceBase : DisposableObject, IDevice { if (Channel is ITcpServiceChannel tcpServiceChannel) { - tcpServiceChannel.Clients.ForEach(a => - { - a.WaitHandlePool.SafeDispose(); - }); + tcpServiceChannel.Clients.ForEach(a => a.WaitHandlePool.SafeDispose()); } try @@ -1014,12 +988,10 @@ public abstract class DeviceBase : DisposableObject, IDevice client.WaitHandlePool?.SafeDispose(); _ = client.CloseAsync(); } - } } Channel.Collects.Remove(this); - } } @@ -1044,5 +1016,4 @@ public abstract class DeviceBase : DisposableObject, IDevice return a => { }; } public abstract ValueTask> ReadAsync(object state, CancellationToken cancellationToken = default); - } diff --git a/src/Foundation/ThingsGateway.Foundation/Device/DeviceExtension.cs b/src/Foundation/ThingsGateway.Foundation/Device/DeviceExtension.cs index dcaa0526e..0db1e5d53 100644 --- a/src/Foundation/ThingsGateway.Foundation/Device/DeviceExtension.cs +++ b/src/Foundation/ThingsGateway.Foundation/Device/DeviceExtension.cs @@ -89,8 +89,6 @@ public static partial class DeviceExtension #endregion 读取 - - /// /// 在返回的字节数组中解析每个变量的值 /// 根据每个变量的 @@ -131,7 +129,6 @@ public static partial class DeviceExtension } } return result; - } /// diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs b/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs index c490920f2..e3f2f8354 100644 --- a/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs +++ b/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs @@ -50,5 +50,4 @@ public enum DataTypeEnum /// Double, - } diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/ErrorTypeEnum.cs b/src/Foundation/ThingsGateway.Foundation/Enums/ErrorTypeEnum.cs index e097f18b4..644b7e1f5 100644 --- a/src/Foundation/ThingsGateway.Foundation/Enums/ErrorTypeEnum.cs +++ b/src/Foundation/ThingsGateway.Foundation/Enums/ErrorTypeEnum.cs @@ -15,8 +15,6 @@ namespace ThingsGateway.Foundation; /// public enum ErrorTypeEnum { - - /// /// 执行失败报错,默认失败类型 /// diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs b/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs index 1c0876b4f..9391cb6ae 100644 --- a/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs @@ -30,5 +30,4 @@ public static class ExceptionExtensions throw new ArgumentNullException(paramName); } } - } diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs b/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs index 37b4cc3cc..4d08a6f8e 100644 --- a/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs @@ -55,7 +55,6 @@ public static class ExpandoObjectExtensions // 遍历动态对象的属性 expandoObject.ForEach(keyValuePair => { - // 检查动态对象的属性是否存在于目标类型的属性中 if (properties.TryGetValue(keyValuePair.Key, out var property)) { diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs b/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs index 3441829b8..cafcac813 100644 --- a/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs @@ -95,8 +95,6 @@ public static class LoggerExtensions return GetChannelLogBasePath().CombinePath(channelId.SanitizeFileName()); } - - /// /// GetLogBasePath /// diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs b/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs index fae72e15b..5479d96c8 100644 --- a/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs @@ -171,7 +171,6 @@ public static class StringExtensions objResult = value.GetJTokenFromString(); else if (propertyType.IsEnum) objResult = Enum.Parse(propertyType, value); - else { objResult = null; diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs b/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs index d5c52e7a0..14997cc02 100644 --- a/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs @@ -18,7 +18,6 @@ namespace ThingsGateway.Foundation.TypeExtension; /// public static class TypeExtensions { - /// /// IsNullable /// diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/AppResource.cs b/src/Foundation/ThingsGateway.Foundation/Locales/AppResource.cs index ce096f4ad..e373a024c 100644 --- a/src/Foundation/ThingsGateway.Foundation/Locales/AppResource.cs +++ b/src/Foundation/ThingsGateway.Foundation/Locales/AppResource.cs @@ -35,8 +35,6 @@ public static class AppResource public static Language Lang { get; set; } = Language.Chinese; - - public static string DefaultAddressDes => Lang == Language.Chinese ? ChineseResource.DefaultAddressDes : EnglishResource.DefaultAddressDes; public static string StringAddressError => Lang == Language.Chinese ? ChineseResource.StringAddressError : EnglishResource.StringAddressError; public static string ErrorMessage => Lang == Language.Chinese ? ChineseResource.ErrorMessage : EnglishResource.ErrorMessage; @@ -52,7 +50,6 @@ public static class AppResource public static string TransBytesError => Lang == Language.Chinese ? ChineseResource.TransBytesError : EnglishResource.TransBytesError; } - public static class ChineseResource { public const string DefaultAddressDes = """ diff --git a/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs b/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs index 31122cb3b..aede8a9c9 100644 --- a/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs +++ b/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs @@ -47,7 +47,6 @@ public class TextFileLogger : ThingsGateway.NewLife.Log.TextFileLog, TouchSocket } } - private static readonly MemoryCache cache = new MemoryCache(); /// @@ -62,7 +61,6 @@ public class TextFileLogger : ThingsGateway.NewLife.Log.TextFileLog, TouchSocket CacheKey = (path + fileFormat).ToLower(); } - /// 每个目录的日志实例应该只有一个,所以采用静态创建 /// 日志目录或日志文件路径 /// diff --git a/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs b/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs index fe47c4d4e..7b7e76794 100644 --- a/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs +++ b/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs @@ -41,9 +41,7 @@ public class LogData public string Message { get; set; } } - /// 日志文本文件倒序读取 - public class LogDataCache { public List LogDatas { get; set; } @@ -93,7 +91,6 @@ public static class TextFileReader return result; } - public static OperResult> LastLog(string file, int lineCount = 200) { if (!File.Exists(file)) @@ -172,7 +169,6 @@ public static class TextFileReader }) .ToList(); - return result; // 返回解析结果 } @@ -237,7 +233,6 @@ public static class TextFileReader } } - private static bool MatchSeparator(byte[] arr, int length) { if (length < TextFileLogger.SeparatorBytes.Length) @@ -253,7 +248,6 @@ public static class TextFileReader return true; } - private static List ParseCSV(string data) { List items = new List(); diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs b/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs index 61c283625..0f2428deb 100644 --- a/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs +++ b/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs @@ -474,4 +474,3 @@ public struct OperResult : IOperResult return $"{messageString}{exceptionString}"; } } - diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/ConverterConfig.cs b/src/Foundation/ThingsGateway.Foundation/Trans/ConverterConfig.cs index b9b01c2ed..822d6e771 100644 --- a/src/Foundation/ThingsGateway.Foundation/Trans/ConverterConfig.cs +++ b/src/Foundation/ThingsGateway.Foundation/Trans/ConverterConfig.cs @@ -92,8 +92,6 @@ public class ConverterConfig VariableStringLength = wstring; Stringlength = stringlength; BcdFormat = bcdFormat; - - } public override string ToString() { @@ -134,5 +132,4 @@ public class ConverterConfig return data; } - } diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs b/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs index 78c039894..2c09d3f3d 100644 --- a/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs +++ b/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs @@ -101,8 +101,6 @@ public partial class ThingsGatewayBitConverter : IThingsGatewayBitConverter public virtual void OtherPropertySet(IThingsGatewayBitConverter thingsGatewayBitConverter, string registerAddress) { - - } /// diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs b/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs index fc6467568..77f566beb 100644 --- a/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs +++ b/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs @@ -19,7 +19,6 @@ namespace ThingsGateway.Foundation; /// public static class ThingsGatewayBitConverterExtension { - //private static MemoryCache MemoryCache = new() { Capacity = 10000000 }; #region 获取对应数据类型的数据 @@ -404,7 +403,5 @@ public static class ThingsGatewayBitConverterExtension } } - - #endregion 获取对应数据类型的数据 } diff --git a/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs b/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs index dd0c98ebf..a97649dc6 100644 --- a/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs +++ b/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs @@ -129,7 +129,6 @@ public static class JTokenUtil default: return token.ToString(); } - } #region json @@ -157,7 +156,7 @@ public static class JTokenUtil private static JTokenType GetElementsType(this JToken[] jTokens) { - return jTokens.First().Type; + return jTokens[0].Type; } #endregion json diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/Core/Geometry/Line.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/Core/Geometry/Line.cs index 7b9f61618..e40502a4c 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/Core/Geometry/Line.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/Core/Geometry/Line.cs @@ -27,7 +27,6 @@ public class Line { if (alpha > det || beta > det) return null; - } else { diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/Core/Options/DiagramLinkOptions.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/Core/Options/DiagramLinkOptions.cs index fee4228b0..9d6babc16 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/Core/Options/DiagramLinkOptions.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/Core/Options/DiagramLinkOptions.cs @@ -39,7 +39,6 @@ public class DiagramLinkOptions sourcePortModel.Alignment == PortAlignment.Bottom ) { - if (targetAnchor.Model == null || (targetAnchor is SinglePortAnchor targetPortAnchor && targetPortAnchor.Model is PortModel targetPortModel && targetPortModel.Alignment == PortAlignment.Top diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/GlobalUsings.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/GlobalUsings.cs index 9f73fcc29..8f500ac1f 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/GlobalUsings.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/GlobalUsings.cs @@ -6,6 +6,4 @@ // Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway // 使用文档:https://thingsgateway.cn/ // QQ群:605534569 -//------------------------------------------------------------------------------ - - +//------------------------------------------------------------------------------ \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/ArcCommand.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/ArcCommand.cs index 9a45ea678..cd4c4700f 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/ArcCommand.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/ArcCommand.cs @@ -16,10 +16,7 @@ namespace SvgPathProperties ToX = x1; ToY = y1; - Length = ApproximateArcLengthOfCurve(300, t => - { - return PointOnEllipticalArc(new Point(x0, y0), rx, ry, xAxisRotate, largeArcFlag, sweepFlag, new Point(x1, y1), t); - }); + Length = ApproximateArcLengthOfCurve(300, t => PointOnEllipticalArc(new Point(x0, y0), rx, ry, xAxisRotate, largeArcFlag, sweepFlag, new Point(x1, y1), t)); } public double FromX { get; } diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/ArcUtils.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/ArcUtils.cs index b9f178482..53d5df152 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/ArcUtils.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/ArcUtils.cs @@ -148,7 +148,6 @@ namespace SvgPathProperties return result; } - // Compensate out-of-range radii // rx = Math.Abs(rx); @@ -161,7 +160,6 @@ namespace SvgPathProperties ry *= Math.Sqrt(lambda); } - // Get center parameters (cx, cy, theta1, delta_theta) // var cc = GetArcCenter(x1, y1, x2, y2, fa, fs, rx, ry, sinPhi, cosPhi); diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/SvgPath.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/SvgPath.cs index 8e3b828a5..09b62919e 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/SvgPath.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams.Core/SvgPathProperties/SvgPath.cs @@ -14,7 +14,6 @@ namespace SvgPathProperties public SvgPath() { - } public SvgPath(string path, bool unarc = false) diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Renderers/NodeRenderer.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Renderers/NodeRenderer.cs index 9a69aaef3..3d57f8ab0 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Renderers/NodeRenderer.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Renderers/NodeRenderer.cs @@ -131,7 +131,6 @@ public class NodeRenderer : ComponentBase, IDisposable if (firstRender && !Node.Visible) return; - if (firstRender || _becameVisible) { _becameVisible = false; diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Renderers/PortRenderer.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Renderers/PortRenderer.cs index 78f2727a8..1283832c8 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Renderers/PortRenderer.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Renderers/PortRenderer.cs @@ -70,7 +70,7 @@ public class PortRenderer : ComponentBase, IDisposable builder.AddEventStopPropagationAttribute(5, "onpointerdown", true); builder.AddAttribute(6, "onpointerup", EventCallback.Factory.Create(this, OnPointerUp)); builder.AddEventStopPropagationAttribute(7, "onpointerup", true); - builder.AddElementReferenceCapture(8, __value => { _element = __value; }); + builder.AddElementReferenceCapture(8, __value => _element = __value); builder.AddContent(9, ChildContent); builder.CloseElement(); } diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams/GlobalUsings.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams/GlobalUsings.cs index 12b2bc4f7..d6de6b27f 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams/GlobalUsings.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams/GlobalUsings.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - global using Microsoft.AspNetCore.Components; [assembly: GlobalGenerateSetParametersAsync(true)] \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/CronScheduledTask.cs b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/CronScheduledTask.cs index 626bbb62d..d5c6264e5 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/CronScheduledTask.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/CronScheduledTask.cs @@ -159,7 +159,6 @@ public class CronScheduledTask : DisposeBase, IScheduledTask _timer = null; } - protected override void Dispose(bool disposing) { Stop(); diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/IScheduledTask.cs b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/IScheduledTask.cs index 807b98142..cadcaf250 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/IScheduledTask.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/IScheduledTask.cs @@ -11,6 +11,4 @@ } - - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/ScheduledSyncTask.cs b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/ScheduledSyncTask.cs index df671d9e1..b1ec4f351 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/ScheduledSyncTask.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/ScheduledSyncTask.cs @@ -85,7 +85,6 @@ public class ScheduledSyncTask : DisposeBase, IScheduledTask, IScheduledIntInter } } - public void SetNext(int interval) { if (!Check()) diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/SmartTriggerScheduler.cs b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/SmartTriggerScheduler.cs index 2392d6310..87f353b7f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/SmartTriggerScheduler.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/SmartTriggerScheduler.cs @@ -31,7 +31,6 @@ public class SmartTriggerScheduler { lock (_lock) { - if (_isRunning) { // 如果正在执行中,标记为“等待处理”,之后再执行一次 @@ -74,7 +73,6 @@ public class SmartTriggerScheduler _isRunning = false; return; } - } } } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/TaskSchedulerLoop.cs b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/TaskSchedulerLoop.cs index c8cc7098b..68db70155 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/TaskSchedulerLoop.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Common/Tasks/TaskSchedulerLoop.cs @@ -37,5 +37,4 @@ public class TaskSchedulerLoop { Tasks.Remove(task); } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs b/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs index 2f5aa7eb2..2f6e0e3bd 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs @@ -35,7 +35,6 @@ public static class ExportString /// public static string VariableName => Localizer["VariableName"]; - public static IStringLocalizer localizer; public static IStringLocalizer Localizer { @@ -46,5 +45,4 @@ public static class ExportString return localizer; } } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs b/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs index 23d5545fe..c9d2c57bf 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs @@ -37,8 +37,6 @@ namespace ThingsGateway.Gateway.Application; public class ControlController : ControllerBase { - - /// /// 清空全部缓存 /// @@ -140,7 +138,6 @@ public class ControlController : ControllerBase } return (await GlobalData.RpcService.InvokeDeviceMethodAsync($"WebApi-{UserManager.UserAccount}-{App.HttpContext?.GetRemoteIpAddressToIPv4()}", deviceDatas).ConfigureAwait(false)).ToDictionary(a => a.Key, a => a.Value.ToDictionary(b => b.Key, b => (OperResult)b.Value)); - } /// @@ -184,7 +181,6 @@ public class ControlController : ControllerBase return GlobalData.ChannelRuntimeService.DeleteChannelAsync(ids, restart, default); } - /// /// 删除设备 /// @@ -207,7 +203,6 @@ public class ControlController : ControllerBase return GlobalData.VariableRuntimeService.DeleteVariableAsync(ids, restart, default); } - /// /// 增加测试数据 /// @@ -218,7 +213,6 @@ public class ControlController : ControllerBase return GlobalData.VariableRuntimeService.InsertTestDataAsync(testVariableCount, testDeviceCount, slaveUrl, businessEnable, restart, default); } - /// /// 确认实时报警 /// @@ -349,10 +343,8 @@ public class ChannelInput #endregion public virtual DtuSeviceType DtuSeviceType { get; set; } - } - public class DeviceInput : IValidatableObject { public long Id { get; set; } @@ -462,13 +454,10 @@ public class DeviceInput : IValidatableObject yield return new ValidationResult("When enable redundancy, you must select a redundant device.", new[] { nameof(RedundantEnable), nameof(RedundantDeviceId) }); } } - } - public class VariableInput : IValidatableObject { - public virtual long Id { get; set; } /// @@ -788,6 +777,4 @@ public class VariableInput : IValidatableObject yield return new ValidationResult("HAlarmCode should be greater than or less than LLAlarmCode", new[] { nameof(HAlarmCode), nameof(LLAlarmCode) }); } } - - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs b/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs index 17aff6777..961ca8e35 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs @@ -51,7 +51,6 @@ public class GatewayExportController : ControllerBase input.QueryPageOptions.IsVirtualScroll = false; var sheets = await _deviceService.ExportDeviceAsync(input).ConfigureAwait(false); return await _importExportService.ExportAsync(sheets, "Device", false).ConfigureAwait(false); - } /// @@ -68,7 +67,6 @@ public class GatewayExportController : ControllerBase return await _importExportService.ExportAsync(sheets, "Channel", false).ConfigureAwait(false); } - /// /// 下载变量 /// diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs b/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs index 3eaa4e0d1..c35541570 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs @@ -46,7 +46,6 @@ public class RuntimeInfoController : ControllerBase [DisplayName("获取通道信息")] public async Task> GetChannelListAsync([FromQuery] ChannelPageInput input) { - var channelRuntimes = await GlobalData.GetCurrentUserChannels().ConfigureAwait(false); var data = channelRuntimes @@ -57,7 +56,6 @@ public class RuntimeInfoController : ControllerBase return data; } - /// /// 获取设备信息 /// @@ -107,18 +105,13 @@ public class RuntimeInfoController : ControllerBase .WhereIF(!input.Name.IsNullOrWhiteSpace(), a => a.Name == input.Name) .WhereIF(!input.DeviceName.IsNullOrEmpty(), a => a.DeviceName == input.DeviceName) .WhereIF(!input.RegisterAddress.IsNullOrWhiteSpace(), a => a.RegisterAddress == input.RegisterAddress) - .WhereIF(input.BusinessDeviceId > 0, a => - { - return GlobalData.ContainsVariable(input.BusinessDeviceId, a); - } + .WhereIF(input.BusinessDeviceId > 0, a => GlobalData.ContainsVariable(input.BusinessDeviceId, a) ) - .ToPagedList(input); return data; } - /// /// 获取默认插件属性 /// @@ -162,7 +155,6 @@ public class ChannelPageInput : BasePageInput public PluginTypeEnum? PluginType { get; set; } } - public class DevicePageInput : BasePageInput { /// diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/BusinessBase.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/BusinessBase.cs index 86a921af1..7717e8662 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/BusinessBase.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/BusinessBase.cs @@ -102,7 +102,6 @@ public abstract class BusinessBase : DriverBase /// 表示异步操作结果的枚举。 protected override List ProtectedGetTasks(CancellationToken cancellationToken) { - var setDeviceStatusTask = new ScheduledSyncTask(3000, SetDeviceStatus, null, LogMessage, cancellationToken); var executeTask = ScheduledTaskHelper.GetTask(CurrentDevice.IntervalTime, ProtectedExecuteAsync, null, LogMessage, cancellationToken); @@ -131,6 +130,4 @@ public abstract class BusinessBase : DriverBase CurrentDevice.SetDeviceStatus(TimerX.Now, true); } } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCache.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCache.cs index 66324869b..7f689e112 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCache.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCache.cs @@ -20,7 +20,6 @@ namespace ThingsGateway.Gateway.Application; /// public abstract class BusinessBaseWithCache : BusinessBase { - #region 条件 protected abstract bool AlarmModelEnable { get; } @@ -66,7 +65,6 @@ public abstract class BusinessBaseWithCache : BusinessBase if (VarModelEnable) { - await UpdateVarModelCache(cancellationToken).ConfigureAwait(false); await UpdateVarModelsCache(cancellationToken).ConfigureAwait(false); } @@ -80,29 +78,22 @@ public abstract class BusinessBaseWithCache : BusinessBase { await UpdateAlarmModelCache(cancellationToken).ConfigureAwait(false); } - - } #endregion - #region alarm - - protected ConcurrentQueue> _memoryAlarmModelQueue = new(); private volatile bool LocalDBCacheAlarmModelInited; private CacheDB DBCacheAlarm; - /// /// 入缓存 /// /// protected virtual void AddCache(List> data) { - if (_businessPropertyWithCache.CacheEnable && data?.Count > 0) { try @@ -201,8 +192,6 @@ public abstract class BusinessBaseWithCache : BusinessBase return cacheDb; } - - /// /// 需实现上传到通道 /// @@ -224,8 +213,8 @@ public abstract class BusinessBaseWithCache : BusinessBase while (!cancellationToken.IsCancellationRequested) { //循环获取,固定读最大行数量,执行完成需删除行 - var varList = await DBCacheAlarm.DBProvider.Queryable>().Take(_businessPropertyWithCache.SplitSize).ToListAsync(cancellationToken).ConfigureAwait(false); - if (varList.Count > 0) + var varList = DBCacheAlarm.DBProvider.Queryable>().Take(_businessPropertyWithCache.SplitSize).ToEnumerable(cancellationToken); + if (varList.Any()) { try { @@ -315,28 +304,22 @@ public abstract class BusinessBaseWithCache : BusinessBase #endregion - - #region device - protected ConcurrentQueue> _memoryDevModelQueue = new(); private volatile bool LocalDBCacheDevModelInited; private CacheDB DBCacheDev; - /// /// 入缓存 /// /// protected virtual void AddCache(List> data) { - if (_businessPropertyWithCache.CacheEnable && data?.Count > 0) { - try { LogMessage?.LogInformation($"Add {typeof(DeviceBasicData).Name} data to file cache, count {data.Count}"); @@ -432,8 +415,6 @@ public abstract class BusinessBaseWithCache : BusinessBase return cacheDb; } - - /// /// 需实现上传到通道 /// @@ -454,10 +435,9 @@ public abstract class BusinessBaseWithCache : BusinessBase { while (!cancellationToken.IsCancellationRequested) { - //循环获取 - var varList = await DBCacheDev.DBProvider.Queryable>().Take(_businessPropertyWithCache.SplitSize).ToListAsync(cancellationToken).ConfigureAwait(false); - if (varList.Count > 0) + var varList = DBCacheDev.DBProvider.Queryable>().Take(_businessPropertyWithCache.SplitSize).ToEnumerable(cancellationToken); + if (varList.Any()) { try { @@ -547,11 +527,8 @@ public abstract class BusinessBaseWithCache : BusinessBase #endregion - - #region variable - protected ConcurrentQueue> _memoryVarModelQueue = new(); protected ConcurrentQueue>> _memoryVarModelsQueue = new(); protected volatile bool success = true; @@ -560,8 +537,6 @@ public abstract class BusinessBaseWithCache : BusinessBase private CacheDB DBCacheVar; private CacheDB DBCacheVars; - - protected sealed override BusinessPropertyBase _businessPropertyBase => _businessPropertyWithCache; protected abstract BusinessPropertyWithCache _businessPropertyWithCache { get; } @@ -738,7 +713,6 @@ public abstract class BusinessBaseWithCache : BusinessBase } } - /// /// 获取缓存对象,注意using /// @@ -767,7 +741,6 @@ public abstract class BusinessBaseWithCache : BusinessBase return cacheDb; } - /// /// 需实现上传到通道 /// @@ -798,8 +771,8 @@ public abstract class BusinessBaseWithCache : BusinessBase { //循环获取 - var varList = await DBCacheVar.DBProvider.Queryable>().Take(_businessPropertyWithCache.SplitSize).ToListAsync(cancellationToken).ConfigureAwait(false); - if (varList.Count > 0) + var varList = DBCacheVar.DBProvider.Queryable>().Take(_businessPropertyWithCache.SplitSize).ToEnumerable(cancellationToken); + if (varList.Any()) { try { @@ -858,7 +831,6 @@ public abstract class BusinessBaseWithCache : BusinessBase while (!cancellationToken.IsCancellationRequested) { //循环获取 - var varList = await DBCacheVars.DBProvider.Queryable>>().FirstAsync(cancellationToken).ConfigureAwait(false); if (varList?.Value?.Count > 0) { @@ -970,7 +942,6 @@ public abstract class BusinessBaseWithCache : BusinessBase var result = await UpdateVarModels(item, cancellationToken).ConfigureAwait(false); if (!result.IsSuccess) { - AddCache(new List>>() { new CacheDBItem>(item.ToList()) }); } } @@ -998,8 +969,5 @@ public abstract class BusinessBaseWithCache : BusinessBase #endregion //上传变量内存队列中的数据 } - - - #endregion } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheAlarm.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheAlarm.cs index ea8b51eec..d5d970275 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheAlarm.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheAlarm.cs @@ -19,7 +19,6 @@ namespace ThingsGateway.Gateway.Application; /// public abstract class BusinessBaseWithCacheAlarm : BusinessBaseWithCache { - protected override bool AlarmModelEnable => true; protected override bool DevModelEnable => false; @@ -46,7 +45,6 @@ public abstract class BusinessBaseWithCacheAlarm : BusinessBaseWithCache IdVariableRuntimes.Clear(); IdVariableRuntimes.AddRange(GlobalData.ReadOnlyIdVariables.Where(a => a.Value.AlarmEnable)); - var ids = IdVariableRuntimes.Select(b => b.Value.DeviceId).ToHashSet(); CollectDevices = GlobalData.ReadOnlyIdDevices @@ -55,12 +53,8 @@ public abstract class BusinessBaseWithCacheAlarm : BusinessBaseWithCache } protected internal override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { - GlobalData.AlarmChangedEvent -= AlarmValueChange; - GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => - { - AlarmValueChange(a.Value); - }); + GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => AlarmValueChange(a.Value)); GlobalData.AlarmChangedEvent += AlarmValueChange; await base.InitChannelAsync(channel, cancellationToken).ConfigureAwait(false); @@ -80,7 +74,7 @@ public abstract class BusinessBaseWithCacheAlarm : BusinessBaseWithCache return; if (TaskSchedulerLoop?.Stoped == true) return; - if (AlarmModelEnable) return; + if (!AlarmModelEnable) return; // 如果业务属性的缓存为间隔上传,则不执行后续操作 //if (_businessPropertyWithCacheInterval?.IsInterval != true) { @@ -106,12 +100,8 @@ public abstract class BusinessBaseWithCacheAlarm : BusinessBaseWithCache base.PauseThread(pause); if (!pause && oldV != pause) { - GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => - { - AlarmChange(a.Value); - }); + GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => AlarmChange(a.Value)); } } } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheInterval.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheInterval.cs index 0c8f5916d..22a59e984 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheInterval.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheInterval.cs @@ -19,7 +19,6 @@ namespace ThingsGateway.Gateway.Application; /// public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache { - /// /// 获取具体业务属性的缓存设置。 /// @@ -30,24 +29,18 @@ public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache /// protected abstract BusinessPropertyWithCacheInterval _businessPropertyWithCacheInterval { get; } - - protected internal override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { if (AlarmModelEnable) { GlobalData.AlarmChangedEvent -= AlarmValueChange; - GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => - { - AlarmValueChange(a.Value); - }); + GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => AlarmValueChange(a.Value)); GlobalData.AlarmChangedEvent += AlarmValueChange; // 解绑全局数据的事件 } if (DevModelEnable) { - // 如果不是间隔上传,则订阅全局变量值改变事件和设备状态改变事件,并触发一次事件处理 if (_businessPropertyWithCacheInterval.BusinessUpdateEnum != BusinessUpdateEnum.Interval) { @@ -79,7 +72,6 @@ public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache CollectDevices = GlobalData.GetEnableDevices().Where(a => a.IsCollect == true).ToDictionary(a => a.Id); VariableRuntimeGroups = IdVariableRuntimes.GroupBy(a => a.Value.BusinessGroup ?? string.Empty).ToDictionary(a => a.Key, a => a.Select(a => a.Value).ToList()); - } else { @@ -87,16 +79,13 @@ public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache } } - if (DevModelEnable) { - CollectDevices?.ForEach(a => { if (a.Value.DeviceStatus == DeviceStatusEnum.OnLine && _businessPropertyWithCacheInterval.BusinessUpdateEnum != BusinessUpdateEnum.Interval) DeviceStatusChange(a.Value, a.Value.AdaptDeviceBasicData()); }); - } if (VarModelEnable) @@ -138,14 +127,11 @@ public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache // 在设备状态变化时执行的自定义逻辑 } - - /// /// 释放资源方法 /// protected override void Dispose(bool disposing) { - // 解绑事件 GlobalData.AlarmChangedEvent -= AlarmValueChange; GlobalData.VariableValueChangeEvent -= VariableValueChange; @@ -172,7 +158,6 @@ public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache // 如果业务属性的缓存为间隔上传,则根据定时器间隔执行相应操作 if (_businessPropertyWithCacheInterval.BusinessUpdateEnum != BusinessUpdateEnum.Change) { - if (VarModelEnable) { try @@ -210,7 +195,6 @@ public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache } } } - } protected override List ProtectedGetTasks(CancellationToken cancellationToken) @@ -260,7 +244,6 @@ public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache } } - public override void PauseThread(bool pause) { lock (this) @@ -271,10 +254,7 @@ public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache { if (AlarmModelEnable) { - GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => - { - AlarmChange(a.Value); - }); + GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => AlarmChange(a.Value)); } if (DevModelEnable) { @@ -336,6 +316,4 @@ public abstract class BusinessBaseWithCacheInterval : BusinessBaseWithCache VariableChange(variableRuntime, variable); } } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalScript.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalScript.cs index d5a5a48b2..b8e9ced49 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalScript.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalScript.cs @@ -85,7 +85,6 @@ public abstract partial class BusinessBaseWithCacheIntervalScript : BusinessBase // 上传内容 if (_businessPropertyWithCacheIntervalScript.IsAlarmList) { - // 如果是报警列表,则将整个分组转换为 JSON 字符串 var gList = group.Select(a => a).ToList(); string json = gList.ToSystemTextJsonString(_businessPropertyWithCacheIntervalScript.JsonFormattingIndented); @@ -122,10 +121,8 @@ public abstract partial class BusinessBaseWithCacheIntervalScript : BusinessBase } } } - } - protected IEnumerable GetDeviceData(IEnumerable item) { var data = Application.DynamicModelExtension.GetDynamicModel(item, _businessPropertyWithCacheIntervalScript.BigTextScriptDeviceModel); @@ -293,7 +290,6 @@ public abstract partial class BusinessBaseWithCacheIntervalScript : BusinessBase // 上传内容 if (_businessPropertyWithCacheIntervalScript.IsVariableList) { - // 如果是变量列表,则将整个分组转换为 JSON 字符串 string json = group.Select(a => a).GroupBy(a => a.DeviceName, b => b).ToDictionary(a => a.Key, b => b.ToList()).ToSystemTextJsonString(_businessPropertyWithCacheIntervalScript.JsonFormattingIndented); // 将主题和 JSON 内容添加到列表中 @@ -391,7 +387,6 @@ public abstract partial class BusinessBaseWithCacheIntervalScript : BusinessBase } } } - } protected IEnumerable GetDeviceTopicArray(IEnumerable item) @@ -601,7 +596,6 @@ public abstract partial class BusinessBaseWithCacheIntervalScript : BusinessBase } } - protected string GetDetailLogString(TopicArray topicArray, int queueCount) { if (queueCount > 0) @@ -616,7 +610,6 @@ public abstract partial class BusinessBaseWithCacheIntervalScript : BusinessBase return $"Up Topic:{topicArray.Topic}{Environment.NewLine}Count:{topicArray.Count} {Environment.NewLine} VarModelQueue:{queueCount}"; else return $"Up Topic:{topicArray.Topic}{Environment.NewLine}Count:{topicArray.Count}"; - } [GeneratedRegex(@"\$\{(.+?)\}")] private static partial Regex TopicRegex(); diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalVariable.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalVariable.cs index 65e642596..b9784468e 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalVariable.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalVariable.cs @@ -15,7 +15,6 @@ namespace ThingsGateway.Gateway.Application; /// public abstract class BusinessBaseWithCacheIntervalVariable : BusinessBaseWithCacheInterval { - protected override bool AlarmModelEnable => false; protected override bool DevModelEnable => false; @@ -31,6 +30,4 @@ public abstract class BusinessBaseWithCacheIntervalVariable : BusinessBaseWithCa throw new NotImplementedException(); } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessPropertyWithCache.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessPropertyWithCache.cs index d0447187f..3393999c4 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessPropertyWithCache.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessPropertyWithCache.cs @@ -39,7 +39,6 @@ public class BusinessPropertyWithCache : BusinessPropertyBase [DynamicProperty] public virtual int QueueMaxCount { get; set; } = 100000; - [DynamicProperty] public virtual bool OnlineFilter { get; set; } = false; diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/TopicArray.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/TopicArray.cs index 7379e3771..3138c97db 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/TopicArray.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/TopicArray.cs @@ -20,5 +20,4 @@ public struct TopicArray public int Count { get; set; } = 1; public byte[] Payload { get; set; } public string Topic { get; set; } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/DB/DBHistoryAlarmPageInput.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/DB/DBHistoryAlarmPageInput.cs index f4030af45..6b2a5b211 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/DB/DBHistoryAlarmPageInput.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/DB/DBHistoryAlarmPageInput.cs @@ -30,5 +30,4 @@ public class DBHistoryAlarmPageInput : BasePageInput public DateTime? StartTime { get; set; } = DateTime.Now.AddDays(-1); public string VariableName { get; set; } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/DB/DBHistoryValuePageInput.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/DB/DBHistoryValuePageInput.cs index cc7314006..be4a86ce3 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/DB/DBHistoryValuePageInput.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/DB/DBHistoryValuePageInput.cs @@ -31,5 +31,4 @@ public class DBHistoryValuePageInput : BasePageInput /// 变量名称组 /// public virtual string[]? VariableNames { get; set; } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/CacheDB/CacheDBUtil.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/CacheDB/CacheDBUtil.cs index bca1a0981..56c392b13 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/CacheDB/CacheDBUtil.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/CacheDB/CacheDBUtil.cs @@ -37,7 +37,6 @@ public static class CacheDBUtil } } - /// /// 获取缓存链接 /// @@ -54,7 +53,6 @@ public static class CacheDBUtil } } - public static string GetCacheFileBasePath() { var dir = Path.Combine(App.HostEnvironment?.ContentRootPath ?? AppContext.BaseDirectory, "PluginCache"); diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectBase.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectBase.cs index 5d5b39428..4c9090b09 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectBase.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectBase.cs @@ -80,10 +80,8 @@ public abstract class CollectBase : DriverBase, IRpcDriver !a.RegisterAddress.Equals("Script", StringComparison.OrdinalIgnoreCase) && !a.RegisterAddress.Equals("ScriptRead", StringComparison.OrdinalIgnoreCase) ; - }); - currentDevice.VariableScriptReads = tags.Where(a => !source(a)).Select(a => { var data = new VariableScriptRead(); @@ -205,7 +203,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver _addVariableTasks = true; tasks.AddRange(VariableTasks); return tasks; - } protected List AddVariableTask(CancellationToken cancellationToken) @@ -219,7 +216,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver var executeTask = ScheduledTaskHelper.GetTask(variableSourceRead.IntervalTime, ReadVariableSource, variableSourceRead, LogMessage, cancellationToken); variableTasks.Add(executeTask); - } } @@ -229,7 +225,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver var executeTask = ScheduledTaskHelper.GetTask(variableMethod.IntervalTime, ReadVariableMed, variableMethod, LogMessage, cancellationToken); variableTasks.Add(executeTask); - } for (int i = 0; i < CurrentDevice.VariableScriptReads.Count; i++) @@ -238,7 +233,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver var executeTask = ScheduledTaskHelper.GetTask(variableScriptRead.IntervalTime, ScriptVariableRun, variableScriptRead, LogMessage, cancellationToken); variableTasks.Add(executeTask); - } return variableTasks; @@ -266,7 +260,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver } } - #region private #region 执行方法 @@ -382,7 +375,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver if (LogMessage?.LogLevel <= TouchSocket.Core.LogLevel.Trace) LogMessage?.Trace(string.Format("{0} - Collection [{1} - {2}] failed - {3}", DeviceName, variableSourceRead?.RegisterAddress, variableSourceRead?.Length, readResult.ErrorMessage)); - //if (LogMessage?.LogLevel <= TouchSocket.Core.LogLevel.Trace) // LogMessage?.Trace(string.Format("{0} - Collecting [{1} - {2}]", DeviceName, variableSourceRead?.RegisterAddress, variableSourceRead?.Length)); readResult = await ReadSourceAsync(variableSourceRead, allToken).ConfigureAwait(false); @@ -426,7 +418,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver var time = DateTime.Now; variableSourceRead.VariableRuntimes.ForEach(a => a.SetValue(null, time, isOnline: false)); } - } #endregion @@ -447,7 +438,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver if (cancellationToken.IsCancellationRequested) return; { - var variableRuntime = variableScriptRead.VariableRuntime; if (variableRuntime.RegisterAddress.Equals(nameof(DeviceRuntime.DeviceStatus), StringComparison.OrdinalIgnoreCase)) { @@ -457,7 +447,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver { variableRuntime.SetValue(variableRuntime.Value, dateTime); } - } } @@ -469,10 +458,8 @@ public abstract class CollectBase : DriverBase, IRpcDriver /// protected abstract Task> ProtectedLoadSourceReadAsync(List deviceVariables); - protected AsyncReadWriteLock ReadWriteLock = new(); - /// /// 采集驱动读取,读取成功后直接赋值变量 /// @@ -561,7 +548,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver ConcurrentDictionary> operResults = new(); - using var writeLock = ReadWriteLock.WriterLock(); var list = writeInfoLists .Where(a => !results.Any(b => b.Key == a.Key.Name)) @@ -604,7 +590,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver // 初始化结果字典 Dictionary results = new Dictionary(); - // 遍历写入信息列表 foreach (var (deviceVariable, jToken) in writeInfoLists) { @@ -697,7 +682,6 @@ public abstract class CollectBase : DriverBase, IRpcDriver } } - // 如果方法有返回值,并且是读取操作 if (method.HasReturn && isRead) { diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectFoundationBase.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectFoundationBase.cs index 3af76213e..bf7b2f0cf 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectFoundationBase.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectFoundationBase.cs @@ -63,7 +63,6 @@ public abstract class CollectFoundationBase : CollectBase { await FoundationDevice.ConnectAsync(cancellationToken).ConfigureAwait(false); } - } public override string GetAddressDescription() @@ -71,7 +70,6 @@ public abstract class CollectFoundationBase : CollectBase return FoundationDevice?.GetAddressDescription(); } - protected override async Task TestOnline(object? state, CancellationToken cancellationToken) { if (FoundationDevice != null) @@ -92,7 +90,6 @@ public abstract class CollectFoundationBase : CollectBase { await Task.Delay(30000, cancellationToken).ConfigureAwait(false); } - } } catch (OperationCanceledException) @@ -141,13 +138,11 @@ public abstract class CollectFoundationBase : CollectBase return; } - /// /// 采集驱动读取,读取成功后直接赋值变量,失败不做处理,注意非通用设备需重写 /// protected override async ValueTask> ReadSourceAsync(VariableSourceRead variableSourceRead, CancellationToken cancellationToken) { - if (cancellationToken.IsCancellationRequested) return new(new OperationCanceledException()); @@ -184,7 +179,6 @@ public abstract class CollectFoundationBase : CollectBase { try { - if (LogMessage?.LogLevel <= TouchSocket.Core.LogLevel.Debug) LogMessage?.Debug(string.Format("{0} - Writing [{1} - {2} - {3}]", DeviceName, writeInfo.Key.RegisterAddress, writeInfo.Value, writeInfo.Key.DataType)); @@ -214,6 +208,4 @@ public abstract class CollectFoundationBase : CollectBase // 返回包含操作结果的字典 return new Dictionary(operResults); } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectFoundationPropertyBase.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectFoundationPropertyBase.cs index 744f1323d..2db061ffa 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectFoundationPropertyBase.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Collect/CollectFoundationPropertyBase.cs @@ -22,8 +22,6 @@ public abstract class CollectFoundationPackPropertyBase : CollectFoundationPrope /// [DynamicProperty] public ushort MaxPack { get; set; } = 100; - - } public abstract class CollectFoundationPropertyBase : CollectPropertyRetryBase { @@ -39,7 +37,6 @@ public abstract class CollectFoundationPropertyBase : CollectPropertyRetryBase [DynamicProperty] public virtual int SendDelayTime { get; set; } = 0; - [DynamicProperty] public bool IsStringReverseByteWord { get; set; } @@ -48,8 +45,6 @@ public abstract class CollectFoundationPropertyBase : CollectPropertyRetryBase /// [DynamicProperty] public virtual DataFormatEnum DataFormat { get; set; } - - } /// @@ -59,14 +54,11 @@ public abstract class CollectFoundationPropertyBase : CollectPropertyRetryBase /// public abstract class CollectFoundationDtuPropertyBase : CollectFoundationPropertyBase { - /// /// 默认DtuId /// [DynamicProperty] public string? DtuId { get; set; } - - } /// @@ -76,12 +68,9 @@ public abstract class CollectFoundationDtuPropertyBase : CollectFoundationProper /// public abstract class CollectFoundationDtuPackPropertyBase : CollectFoundationPackPropertyBase { - /// /// 默认DtuId /// [DynamicProperty] public string? DtuId { get; set; } - - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/DriverBase.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/DriverBase.cs index ca239bd59..9ba7a0f0e 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/DriverBase.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/DriverBase.cs @@ -109,7 +109,6 @@ public abstract class DriverBase : DisposableObject, IDriver } } - private IStringLocalizer Localizer { get; } #endregion 属性 @@ -133,8 +132,6 @@ public abstract class DriverBase : DisposableObject, IDriver } } - - #region 任务管理器传入 public IDeviceThreadManage DeviceThreadManage { get; internal set; } @@ -169,7 +166,6 @@ public abstract class DriverBase : DisposableObject, IDriver } SetLog(CurrentDevice.LogLevel); - } catch (Exception ex) { @@ -182,7 +178,6 @@ public abstract class DriverBase : DisposableObject, IDriver } private void SetLog(LogLevel? logLevel = null) { - LogMessage.LogLevel = logLevel ?? TouchSocket.Core.LogLevel.Trace; // 移除旧的文件日志记录器并释放资源 if (TextLogger != null) @@ -258,7 +253,6 @@ public abstract class DriverBase : DisposableObject, IDriver try { - // 记录设备任务开始信息 LogMessage?.LogInformation(string.Format(AppResource.DeviceTaskStart, DeviceName)); @@ -297,7 +291,6 @@ public abstract class DriverBase : DisposableObject, IDriver protected internal TaskSchedulerLoop TaskSchedulerLoop; - /// /// 获取任务 /// @@ -307,7 +300,6 @@ public abstract class DriverBase : DisposableObject, IDriver { TaskSchedulerLoop = new(ProtectedGetTasks(cancellationToken)); - //var count = GlobalData.ChannelThreadManage.DeviceThreadManages.Select(a => a.Value.TaskCount).Sum(); //ThreadPool.GetMinThreads(out var wt, out var io); //if (wt < count + 128) @@ -317,7 +309,6 @@ public abstract class DriverBase : DisposableObject, IDriver // GlobalData.GatewayMonitorHostedService.Logger.LogInformation($"set min threads count {wt}, device tasks count {count}"); //} - return TaskSchedulerLoop; } @@ -328,7 +319,6 @@ public abstract class DriverBase : DisposableObject, IDriver /// internal virtual void Stop() { - if (!DisposedValue) { lock (this) @@ -363,7 +353,6 @@ public abstract class DriverBase : DisposableObject, IDriver if (device != null) device.Driver = null; - LogMessage?.Logs?.ForEach(a => a.TryDispose()); LogMessage = null; pluginPropertyEditorItems?.Clear(); @@ -423,7 +412,6 @@ public abstract class DriverBase : DisposableObject, IDriver /// internal virtual void ProtectedInitDevice(DeviceRuntime device) { - } /// diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/DynamicModelExtension.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/DynamicModelExtension.cs index 1ab429751..507115d4a 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/DynamicModelExtension.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/DynamicModelExtension.cs @@ -29,11 +29,11 @@ public static class DynamicModelExtension { //执行脚本,获取新实体 var getDeviceModel = CSharpScriptEngineExtension.Do(script); - return getDeviceModel.GetList(datas.Cast()); + return getDeviceModel.GetList(datas?.Cast()); } else { - return datas.Cast(); + return datas?.Cast(); } } @@ -118,7 +118,6 @@ public static class DynamicModelExtension return result; // 返回属性信息集合 } - } public interface IDynamicModel diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/IRpcDriver.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/IRpcDriver.cs index d57f5f398..b4a411513 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/IRpcDriver.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/IRpcDriver.cs @@ -8,16 +8,13 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using Newtonsoft.Json.Linq; namespace ThingsGateway.Gateway.Application; public interface IRpcDriver { - ValueTask>> InvokeMethodAsync(Dictionary writeInfoLists, CancellationToken cancellationToken); ValueTask>> InVokeWriteAsync(Dictionary writeInfoLists, CancellationToken cancellationToken); - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs b/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs index e7215fa64..b3115ce64 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs @@ -234,7 +234,6 @@ public class Channel : ChannelOptionsBase, IPrimaryIdEntity, IBaseDataEntity, IB [AutoGenerateColumn(Ignore = true)] public virtual bool IsDelete { get; set; } = false; - /// /// 更新时间 /// diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs b/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs index 8f8f0e750..2218fd012 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs @@ -49,8 +49,6 @@ public class Variable : BaseDataEntity, IValidatableObject private ProtectTypeEnum protectType = ProtectTypeEnum.ReadWrite; private DataTypeEnum dataType = DataTypeEnum.Int16; - - /// /// 导入验证专用 /// @@ -105,8 +103,6 @@ public class Variable : BaseDataEntity, IValidatableObject private string remark4; private string remark5; - - /// /// 变量额外属性Json /// @@ -115,7 +111,6 @@ public class Variable : BaseDataEntity, IValidatableObject [MapperIgnore] public ConcurrentDictionary? VariablePropertyModels; - /// /// 设备 /// @@ -507,7 +502,6 @@ public class Variable : BaseDataEntity, IValidatableObject #endregion 备用字段 - public IEnumerable Validate(ValidationContext validationContext) { if (string.IsNullOrEmpty(RegisterAddress) && string.IsNullOrEmpty(OtherMethod)) @@ -515,7 +509,6 @@ public class Variable : BaseDataEntity, IValidatableObject yield return new ValidationResult("Both RegisterAddress and OtherMethod cannot be empty or null.", new[] { nameof(RegisterAddress), nameof(OtherMethod) }); } - if (HHAlarmEnable && HAlarmEnable && HHAlarmCode <= HAlarmCode) { yield return new ValidationResult("HHAlarmCode must be greater than HAlarmCode", new[] { nameof(HHAlarmCode), nameof(HAlarmCode) }); @@ -542,6 +535,4 @@ public class Variable : BaseDataEntity, IValidatableObject yield return new ValidationResult("HAlarmCode should be greater than or less than LLAlarmCode", new[] { nameof(HAlarmCode), nameof(LLAlarmCode) }); } } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ParallelExtensions.cs b/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ParallelExtensions.cs index 7af8ad2bc..87768597d 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ParallelExtensions.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ParallelExtensions.cs @@ -16,7 +16,6 @@ namespace ThingsGateway.Gateway.Application; [ThingsGateway.DependencyInjection.SuppressSniffer] public static class ParallelExtension { - /// /// 异步执行指定的操作,并指定最大并行度和取消标志 /// diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/USheetDataHelpers.cs b/src/Gateway/ThingsGateway.Gateway.Application/Extensions/USheetDataHelpers.cs index fce578987..1d8ac0b32 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/USheetDataHelpers.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Extensions/USheetDataHelpers.cs @@ -8,12 +8,10 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - namespace ThingsGateway.Gateway.Application { internal static class USheetDataHelpers { - public static USheetDatas GetUSheetDatas(Dictionary data) { var uSheetDatas = new USheetDatas(); @@ -40,7 +38,6 @@ namespace ThingsGateway.Gateway.Application uSheetData.cellData.Add(row1, usheetColldata); } { - Dictionary usheetColldata = new(); int col = 0; foreach (var colData in value[row1]) diff --git a/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs b/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs index e8dd6df9c..ffb18f58b 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs @@ -64,7 +64,6 @@ public static class GlobalData /// public static event VariableAlarmEventHandler? AlarmChangedEvent; - public static async Task> GetCurrentUserChannels() { var dataScope = await GlobalData.SysUserService.GetCurrentUserDataScopeAsync().ConfigureAwait(false); @@ -91,7 +90,6 @@ public static class GlobalData .WhereIf(dataScope?.Count == 0, u => u.Value.CreateUserId == UserManager.UserId).Select(a => a.Value); } - public static async Task> GetCurrentUserAlarmEnableVariables() { var dataScope = await GlobalData.SysUserService.GetCurrentUserDataScopeAsync().ConfigureAwait(false); @@ -118,7 +116,6 @@ public static class GlobalData } return a.VariablePropertys?.ContainsKey(businessDeviceId) == true; - } /// @@ -166,13 +163,11 @@ public static class GlobalData return false; } - public static IEnumerable GetEnableVariables() { return IdDevices.SelectMany(a => a.Value.VariableRuntimes).Where(a => a.Value?.Enable == true).Select(a => a.Value); } - public static bool TryGetDeviceThreadManage(DeviceRuntime deviceRuntime, out IDeviceThreadManage deviceThreadManage) { if (deviceRuntime.Driver?.DeviceThreadManage != null) @@ -205,7 +200,6 @@ public static class GlobalData #region 单例服务 - private static IDispatchService channelRuntimeDispatchService; public static IDispatchService ChannelDeviceRuntimeDispatchService { @@ -242,7 +236,6 @@ public static class GlobalData } } - private static IVariableRuntimeService variableRuntimeService; public static IVariableRuntimeService VariableRuntimeService { @@ -256,7 +249,6 @@ public static class GlobalData } } - private static IDeviceRuntimeService deviceRuntimeService; public static IDeviceRuntimeService DeviceRuntimeService { @@ -295,7 +287,6 @@ public static class GlobalData } } - private static IGatewayMonitorHostedService gatewayMonitorHostedService; public static IGatewayMonitorHostedService GatewayMonitorHostedService { @@ -346,7 +337,6 @@ public static class GlobalData } } - private static IPluginService? pluginService; public static IPluginService PluginService { @@ -357,7 +347,6 @@ public static class GlobalData } } - private static IChannelService? channelService; internal static IChannelService ChannelService { @@ -368,7 +357,6 @@ public static class GlobalData } } - private static IDeviceService? deviceService; internal static IDeviceService DeviceService { @@ -379,7 +367,6 @@ public static class GlobalData } } - private static IVariableService? variableService; internal static IVariableService VariableService { @@ -429,8 +416,6 @@ public static class GlobalData /// internal static ConcurrentDictionary Channels { get; } = new(); - - /// /// 只读的设备字典,提供对设备的只读访问 /// @@ -441,7 +426,6 @@ public static class GlobalData /// public static IReadOnlyDictionary ReadOnlyDevices => Devices; - /// /// 内部使用的设备字典,用于存储设备对象 /// @@ -451,7 +435,6 @@ public static class GlobalData /// internal static ConcurrentDictionary IdDevices { get; } = new(); - /// /// 内部使用的报警配置变量字典 /// @@ -477,8 +460,6 @@ public static class GlobalData /// public static IReadOnlyDictionary ReadOnlyIdVariables => IdVariables; - - #region 变化事件 /// /// 报警状态变化处理方法,用于处理报警状态变化时的逻辑 @@ -486,11 +467,8 @@ public static class GlobalData /// 报警变量 internal static void AlarmChange(AlarmVariable alarmVariable) { - - // 触发设备状态变化事件,并将设备运行时对象转换为设备数据对象进行传递 AlarmChangedEvent?.Invoke(alarmVariable); - } /// @@ -501,11 +479,8 @@ public static class GlobalData { deviceRuntime.Driver?.LogMessage?.LogInformation($"Status changed: {deviceRuntime.DeviceStatus}"); - - // 触发设备状态变化事件,并将设备运行时对象转换为设备数据对象进行传递 DeviceStatusChangeEvent?.Invoke(deviceRuntime, deviceRuntime.AdaptDeviceBasicData()); - } /// @@ -514,11 +489,8 @@ public static class GlobalData /// 变量运行时对象 internal static void VariableValueChange(VariableRuntime variableRuntime) { - - // 触发变量值变化事件,并将变量运行时对象转换为变量数据对象进行传递 VariableValueChangeEvent?.Invoke(variableRuntime, variableRuntime.AdaptVariableBasicData()); - } /// /// 变量采集处理方法,用于处理变量进行采集时的逻辑 @@ -526,11 +498,8 @@ public static class GlobalData /// 变量运行时对象 internal static void VariableCollectChange(VariableRuntime variableRuntime) { - - // 触发变量采集事件,并将变量运行时对象转换为变量数据对象进行传递 VariableCollectChangeEvent?.Invoke(variableRuntime); - } #endregion diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob.cs b/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob.cs index 850e87166..9b2d8fc6f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob.cs @@ -30,7 +30,6 @@ public class LogJob : IJob await DeleteLocalDB(stoppingToken).ConfigureAwait(false); } - private static async Task DeleteRpcLog(int daysAgo, CancellationToken stoppingToken) { using var db = DbContext.GetDB(); @@ -45,8 +44,6 @@ public class LogJob : IJob await db.DeleteableWithAttr().Where(u => u.LogTime < time).ExecuteCommandAsync(stoppingToken).ConfigureAwait(false); // 删除操作日志 } - - private static async Task DeleteTextLog(CancellationToken stoppingToken) { //网关通道日志以通道id命名 @@ -62,8 +59,6 @@ public class LogJob : IJob Delete(channelBaseDir, channelNames, stoppingToken); Delete(deviceBaseDir, deviceNames, stoppingToken); - - //网关通道日志以通道id命名 var rulesService = App.RootServices.GetService(); var ruleNames = (await rulesService.GetAllAsync().ConfigureAwait(false)).Select(a => a.Name.ToString()).ToHashSet(); @@ -72,8 +67,6 @@ public class LogJob : IJob Delete(ruleBaseDir, ruleNames, stoppingToken); - - //底层调试 var debugDir = LoggerExtensions.GetDebugLogBasePath(); Directory.CreateDirectory(debugDir); @@ -94,7 +87,6 @@ public class LogJob : IJob } catch { } } - } private static void Delete(string baseDir, HashSet strings, CancellationToken stoppingToken) @@ -143,7 +135,5 @@ public class LogJob : IJob } catch { } } - } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Locales/AppResource.cs b/src/Gateway/ThingsGateway.Gateway.Application/Locales/AppResource.cs index fc93cc63b..32b376d8d 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Locales/AppResource.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Locales/AppResource.cs @@ -12,7 +12,6 @@ namespace ThingsGateway.Gateway.Application; public static class AppResource { - public static string RulesEngineTaskStart => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.RulesEngineTaskStart : EnglishResource.RulesEngineTaskStart; public static string RealAlarmTaskStart => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.RealAlarmTaskStart : EnglishResource.RealAlarmTaskStart; @@ -45,7 +44,6 @@ public static class AppResource public static string LoadTypeSuccess => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.LoadTypeSuccess : EnglishResource.LoadTypeSuccess; } - public static class ChineseResource { public const string RulesEngineTaskStart = "规则引擎线程启动"; @@ -79,11 +77,8 @@ public static class ChineseResource public const string LoadTypeFail1 = "加载插件 {0} 失败,插件类型不存在"; public const string LoadTypeFail2 = "加载插件文件 {0} 失败,文件不存在"; public const string LoadTypeSuccess = "加载插件 {0} 成功"; - - } - public static class EnglishResource { public const string RulesEngineTaskStart = "Rules engine service started"; diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Mapper/GatewayMapper.cs b/src/Gateway/ThingsGateway.Gateway.Application/Mapper/GatewayMapper.cs index 7292c4ccc..47da8fe3f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Mapper/GatewayMapper.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Mapper/GatewayMapper.cs @@ -37,6 +37,7 @@ public static partial class GatewayMapper public static partial ChannelRuntime AdaptChannelRuntime(this Channel src); public static partial List AdaptListVariableRuntime(this IEnumerable src); + public static partial IEnumerable AdaptEnumerableVariableRuntime(this IEnumerable src); public static partial List AdaptListDeviceRuntime(this IEnumerable src); public static partial List AdaptListDevice(this IEnumerable src); @@ -58,5 +59,3 @@ public static partial class GatewayMapper public static partial Variable AdaptVariable(this Variable src); public static partial List AdaptListPluginInfo(this List src); } - - diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/ChannelRuntime.cs b/src/Gateway/ThingsGateway.Gateway.Application/Model/ChannelRuntime.cs index b4d552344..bc23fa28f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Model/ChannelRuntime.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Model/ChannelRuntime.cs @@ -114,7 +114,6 @@ public class ChannelRuntime : Channel, IChannelOptions, IDisposable [AutoGenerateColumn(Ignore = true)] public string LogPath => Name.GetChannelLogPath(); - public void Init() { // 通过插件名称获取插件信息 @@ -125,7 +124,6 @@ public class ChannelRuntime : Channel, IChannelOptions, IDisposable GlobalData.IdChannels.TryAdd(Id, this); GlobalData.Channels.TryAdd(Name, this); - } public void Dispose() @@ -146,16 +144,13 @@ public class ChannelRuntime : Channel, IChannelOptions, IDisposable return $"{Name}[{base.ToString()}]"; } - public IChannel GetChannel(TouchSocketConfig config) { lock (GlobalData.IdChannels) { - if (DeviceThreadManage?.Channel?.DisposedValue == false) return DeviceThreadManage?.Channel; - if (ChannelType == ChannelTypeEnum.TcpService || ChannelType == ChannelTypeEnum.SerialPort || ChannelType == ChannelTypeEnum.UdpSession @@ -196,7 +191,5 @@ public class ChannelRuntime : Channel, IChannelOptions, IDisposable var ichannel = config.GetChannel(this); return ichannel; } - } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/DataModel.cs b/src/Gateway/ThingsGateway.Gateway.Application/Model/DataModel.cs index 6090077c7..5d2af9b4b 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Model/DataModel.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Model/DataModel.cs @@ -19,7 +19,6 @@ namespace ThingsGateway.Gateway.Application; /// public class DeviceBasicData { - /// public long Id { get; set; } @@ -69,8 +68,6 @@ public class DeviceBasicData [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull)] public string Remark5 { get; set; } - - } /// @@ -78,7 +75,6 @@ public class DeviceBasicData /// public class VariableBasicData { - /// public long Id { get; set; } @@ -182,5 +178,3 @@ public class VariableBasicData [System.Text.Json.Serialization.JsonIgnore(Condition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull)] public string Remark5 { get; set; } } - - diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs b/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs index 5aa580fe2..59dee22ba 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs @@ -98,7 +98,6 @@ public class DeviceRuntime : Device, IDisposable } } - /// /// 暂停 /// @@ -136,11 +135,8 @@ public class DeviceRuntime : Device, IDisposable /// public int DeviceVariableCount { get => Driver == null ? VariableRuntimes?.Count ?? 0 : Driver.IdVariableRuntimes.Count; } - - #region 采集 - /// /// 设备变量 /// @@ -195,7 +191,6 @@ public class DeviceRuntime : Device, IDisposable [AutoGenerateColumn(Ignore = true)] public List? VariableScriptReads { get; set; } - public volatile bool CheckEnable; private readonly object _lockObject = new object(); @@ -223,8 +218,6 @@ public class DeviceRuntime : Device, IDisposable LastErrorMessage = lastErrorMessage; } - - [System.Text.Json.Serialization.JsonIgnore] [Newtonsoft.Json.JsonIgnore] [MapperIgnore] @@ -254,7 +247,6 @@ public class DeviceRuntime : Device, IDisposable GlobalData.IdDevices.TryAdd(Id, this); GlobalData.Devices.TryRemove(Name, out _); GlobalData.Devices.TryAdd(Name, this); - } public void Dispose() @@ -264,7 +256,6 @@ public class DeviceRuntime : Device, IDisposable GlobalData.IdDevices.TryRemove(Id, out _); GlobalData.Devices.TryRemove(Name, out _); - Driver = null; VariableSourceReads?.Clear(); VariableScriptReads?.Clear(); @@ -272,5 +263,4 @@ public class DeviceRuntime : Device, IDisposable GC.SuppressFinalize(this); } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs index 3afa37738..7907fd45c 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs @@ -17,7 +17,6 @@ namespace ThingsGateway.Gateway.Application; /// public class VariableMethod { - public readonly string IntervalTime; private object?[]? OS; diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs index e27b3ae5c..3ff9092a9 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs @@ -80,7 +80,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable { string stachTrace = string.Join(Environment.NewLine, ex.StackTrace.Split(new[] { Environment.NewLine }, StringSplitOptions.None).Take(3)); _lastErrorMessage = $"{Name} Conversion expression failed:{ex.Message}{Environment.NewLine}{stachTrace}"; - } else { @@ -177,7 +176,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable public void Init(DeviceRuntime deviceRuntime) { - GlobalData.AlarmEnableIdVariables.Remove(Id); if (GlobalData.RealAlarmIdVariables.TryRemove(Id, out var oldAlarm)) { @@ -186,7 +184,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable GlobalData.AlarmChange(this.AdaptAlarmVariable()); } - DeviceRuntime?.VariableRuntimes?.Remove(Name); DeviceRuntime = deviceRuntime; @@ -200,10 +197,8 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable } } - public void Dispose() { - DeviceRuntime?.VariableRuntimes?.Remove(Name); GlobalData.IdVariables.Remove(Id); @@ -234,4 +229,3 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable _lastErrorMessage = lastErrorMessage; } } - diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.property.cs b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.property.cs index 76ce50011..5f58164a9 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.property.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.property.cs @@ -21,8 +21,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable { - - #region 属性 /// /// 事件类型 @@ -36,14 +34,12 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable [AutoGenerateColumn(Visible = false)] public AlarmTypeEnum? AlarmType { get => alarmType; set => alarmType = value; } - /// /// 报警值 /// [AutoGenerateColumn(Visible = false)] public string AlarmCode { get => alarmCode; set => alarmCode = value; } - /// /// 恢复值 /// @@ -73,27 +69,23 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable [AutoGenerateColumn(Visible = false)] public DateTime AlarmTime { get => alarmTime; set => alarmTime = value; } - /// /// 事件时间 /// [AutoGenerateColumn(Visible = false)] public DateTime EventTime { get => eventTime; set => eventTime = value; } - /// /// 采集时间 /// [AutoGenerateColumn(Visible = true, Filterable = true, Sortable = true, Order = 5)] public DateTime CollectTime { get => collectTime; set => collectTime = value; } - [SugarColumn(ColumnDescription = "排序码", IsNullable = true)] [AutoGenerateColumn(Visible = false, DefaultSort = false, Sortable = true)] [IgnoreExcel] public override int SortCode { get => sortCode; set => sortCode = value; } - /// /// 上次值 /// @@ -106,8 +98,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable [AutoGenerateColumn(Visible = false, Order = 6)] public object RawValue { get => rawValue; set => rawValue = value; } - - /// /// 所在采集设备 /// @@ -134,8 +124,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable [AutoGenerateColumn(Ignore = true)] public VariableMethod? VariableMethod { get => variableMethod; set => variableMethod = value; } - - /// /// 这个参数值由自动打包方法写入 /// @@ -144,9 +132,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable [AutoGenerateColumn(Ignore = true)] public IThingsGatewayBitConverter? ThingsGatewayBitConverter { get => thingsGatewayBitConverter; set => thingsGatewayBitConverter = value; } - - - /// /// 设备名称 /// @@ -177,7 +162,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable } } - /// /// /// @@ -193,7 +177,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable } } - /// /// 实时值类型 /// @@ -206,11 +189,6 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable [AutoGenerateColumn(Visible = true, Order = 6)] public object Value { get => _value; set => _value = value; } - - - - - /// /// 报警使能 /// @@ -238,4 +216,3 @@ public partial class VariableRuntime : Variable, IVariable, IDisposable #endregion } - diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableScriptRead.cs b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableScriptRead.cs index 1968c666c..83b3ddca2 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableScriptRead.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableScriptRead.cs @@ -15,13 +15,10 @@ namespace ThingsGateway.Gateway.Application; /// public class VariableScriptRead { - public string IntervalTime { get; set; } /// /// 需分配的变量列表 /// public VariableRuntime VariableRuntime; - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs index 422f1c2a0..25787f128 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs @@ -15,7 +15,6 @@ namespace ThingsGateway.Gateway.Application; /// public class VariableSourceRead : IVariableSource { - private List _variableRuntimes = new List(); /// @@ -56,6 +55,4 @@ public class VariableSourceRead : IVariableSource } _variableRuntimes.AddRange(variables); } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Options/ChannelThreadOptions.cs b/src/Gateway/ThingsGateway.Gateway.Application/Options/ChannelThreadOptions.cs index 0b07f5ff1..18d6c73d2 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Options/ChannelThreadOptions.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Options/ChannelThreadOptions.cs @@ -14,11 +14,9 @@ namespace ThingsGateway.Gateway.Application; public sealed class ChannelThreadOptions : IConfigurableOptions { - public int CheckInterval { get; set; } = 1800000; public int MaxChannelCount { get; set; } = 1000; public int MaxDeviceCount { get; set; } = 1000; public int MaxVariableCount { get; set; } = 1000000; - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Options/GatewayLogOptions.cs b/src/Gateway/ThingsGateway.Gateway.Application/Options/GatewayLogOptions.cs index 763261da6..89e289b76 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Options/GatewayLogOptions.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Options/GatewayLogOptions.cs @@ -12,11 +12,8 @@ using ThingsGateway.ConfigurableOptions; namespace ThingsGateway.Gateway.Application; - public sealed class GatewayLogOptions : IConfigurableOptions { - public int RpcLogDaysAgo { get; set; } public int BackendLogDaysAgo { get; set; } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysDictSeedData.cs b/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysDictSeedData.cs index 929240581..7cc5ff482 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysDictSeedData.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysDictSeedData.cs @@ -23,6 +23,4 @@ public class SysDictSeedData : ISqlSugarEntitySeedData var assembly = GetType().Assembly; return SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.Management.seed_sys_dict.json")).Concat(data); } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs b/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs index a3871dd27..fe29ab143 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs @@ -25,11 +25,9 @@ public class SysResourceSeedData : ISqlSugarEntitySeedData var data2 = SeedDataUtil.GetSeedData(PathExtensions.CombinePathWithOs("SeedData", "Management", "seed_sys_resource.json")); var data3 = SeedDataUtil.GetSeedData(PathExtensions.CombinePathWithOs("SeedData", "Management", "seed_sys_resourcebutton.json")); - var data4 = SeedDataUtil.GetSeedData(PathExtensions.CombinePathWithOs("SeedData", "RulesEngine", "seed_sys_resource.json")); var data5 = SeedDataUtil.GetSeedData(PathExtensions.CombinePathWithOs("SeedData", "RulesEngine", "seed_sys_resourcebutton.json")); return SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.RulesEngine.seed_sys_resource.json")).Concat(SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.RulesEngine.seed_sys_resourcebutton.json"))).Concat(data4).Concat(data5).Concat(SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.Gateway.seed_gateway_resource.json"))).Concat(data1).Concat(SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.Management.seed_sys_resource.json"))).Concat(SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.Management.seed_sys_resourcebutton.json"))).Concat(data2).Concat(data3); - } } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelRuntimeService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelRuntimeService.cs index 00ea002fb..b58a8d26f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelRuntimeService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelRuntimeService.cs @@ -48,7 +48,6 @@ public class ChannelRuntimeService : IChannelRuntimeService await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false); await RuntimeServiceHelper.ChangedDriverAsync(_logger, cancellationToken).ConfigureAwait(false); - } return true; @@ -81,7 +80,6 @@ public class ChannelRuntimeService : IChannelRuntimeService await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false); await RuntimeServiceHelper.ChangedDriverAsync(_logger, cancellationToken).ConfigureAwait(false); - } return true; @@ -114,7 +112,6 @@ public class ChannelRuntimeService : IChannelRuntimeService await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false); await RuntimeServiceHelper.ChangedDriverAsync(_logger, cancellationToken).ConfigureAwait(false); - } return true; @@ -171,7 +168,6 @@ public class ChannelRuntimeService : IChannelRuntimeService } return true; - } finally { @@ -201,7 +197,6 @@ public class ChannelRuntimeService : IChannelRuntimeService //根据条件重启通道线程 if (restart) await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false); - } finally @@ -233,7 +228,6 @@ public class ChannelRuntimeService : IChannelRuntimeService } } - public async Task BatchSaveChannelAsync(List input, ItemChangedType type, bool restart) { try @@ -258,7 +252,6 @@ public class ChannelRuntimeService : IChannelRuntimeService } } - public async Task RestartChannelAsync(IEnumerable oldChannelRuntimes) { RuntimeServiceHelper.RemoveOldChannelRuntimes(oldChannelRuntimes); @@ -275,9 +268,7 @@ public class ChannelRuntimeService : IChannelRuntimeService await RuntimeServiceHelper.InitAsync(newChannelRuntimes, newDeviceRuntimes, _logger).ConfigureAwait(false); - await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false); - } catch (Exception ex) { @@ -288,6 +279,4 @@ public class ChannelRuntimeService : IChannelRuntimeService WaitLock.Release(); } } - - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs index ff70c939a..405a794f8 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs @@ -53,8 +53,6 @@ internal sealed class ChannelService : BaseService, IChannelService ManageHelper.CheckVariableCount(variables.Count); await db.Insertable(variables).ExecuteCommandAsync().ConfigureAwait(false); - - }).ConfigureAwait(false); if (result.IsSuccess)//如果成功了 { @@ -68,10 +66,8 @@ internal sealed class ChannelService : BaseService, IChannelService //写日志 throw new(result.ErrorMessage, result.ErrorException); } - } - /// [OperDesc("UpdateGatewayData", localizerType: typeof(Channel), isRecordPar: false)] public async Task UpdateAsync(List models, List devices, List variables) @@ -81,16 +77,11 @@ internal sealed class ChannelService : BaseService, IChannelService //事务 var result = await db.UseTranAsync(async () => { - await db.Updateable(models).ExecuteCommandAsync().ConfigureAwait(false); - await db.Updateable(devices).ExecuteCommandAsync().ConfigureAwait(false); - await db.Updateable(variables).ExecuteCommandAsync().ConfigureAwait(false); - - }).ConfigureAwait(false); if (result.IsSuccess)//如果成功了 { @@ -104,10 +95,8 @@ internal sealed class ChannelService : BaseService, IChannelService //写日志 throw new(result.ErrorMessage, result.ErrorException); } - } - /// [OperDesc("CopyChannel", localizerType: typeof(Channel), isRecordPar: false)] public async Task CopyAsync(List models, Dictionary> devices) @@ -130,8 +119,6 @@ internal sealed class ChannelService : BaseService, IChannelService ManageHelper.CheckVariableCount(variable.Count); await db.Insertable(variable).ExecuteCommandAsync().ConfigureAwait(false); - - }).ConfigureAwait(false); if (result.IsSuccess)//如果成功了 { @@ -145,10 +132,8 @@ internal sealed class ChannelService : BaseService, IChannelService //写日志 throw new(result.ErrorMessage, result.ErrorException); } - } - public async Task UpdateLogAsync(long channelId, LogLevel logLevel) { using var db = GetDB(); @@ -159,7 +144,6 @@ internal sealed class ChannelService : BaseService, IChannelService //更新数据库 await db.Updateable().SetColumns(it => new Channel() { LogLevel = logLevel }).Where(a => a.Id == channelId).ExecuteCommandAsync().ConfigureAwait(false); - }).ConfigureAwait(false); if (result.IsSuccess)//如果成功了 { @@ -192,7 +176,6 @@ internal sealed class ChannelService : BaseService, IChannelService //更新数据库 await db.Updateable(data).UpdateColumns(differences.Select(a => a.Key).ToArray()).ExecuteCommandAsync().ConfigureAwait(false); - }).ConfigureAwait(false); if (result.IsSuccess)//如果成功了 { @@ -211,7 +194,6 @@ internal sealed class ChannelService : BaseService, IChannelService } } - [OperDesc("DeleteChannel", localizerType: typeof(Channel), isRecordPar: false)] public async Task DeleteChannelAsync(IEnumerable ids) { @@ -345,9 +327,6 @@ internal sealed class ChannelService : BaseService, IChannelService return false; } - - - #endregion #region 导出 @@ -369,7 +348,7 @@ internal sealed class ChannelService : BaseService, IChannelService var query = GetQuery(db, exportFilter.QueryPageOptions, whereQuery, exportFilter.FilterKeyValueAction); - return query.GetAsyncEnumerable(); + return query.ToAsyncEnumerable(); } /// @@ -384,8 +363,6 @@ internal sealed class ChannelService : BaseService, IChannelService return memoryStream; } - - #endregion 导出 #region 导入 @@ -394,7 +371,7 @@ internal sealed class ChannelService : BaseService, IChannelService [OperDesc("ImportChannel", isRecordPar: false, localizerType: typeof(Channel))] public async Task> ImportChannelAsync(Dictionary input) { - var channels = new List(); + List? channels = new List(); foreach (var item in input) { if (item.Key == ExportString.ChannelName) @@ -539,9 +516,5 @@ internal sealed class ChannelService : BaseService, IChannelService #endregion sheet } - - - - #endregion 导入 } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelServiceHelpers.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelServiceHelpers.cs index 61d0c113c..08de45800 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelServiceHelpers.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelServiceHelpers.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using BootstrapBlazor.Components; using System.Reflection; @@ -19,7 +18,6 @@ namespace ThingsGateway.Gateway.Application; public static class ChannelServiceHelpers { - public static USheetDatas ExportChannel(IEnumerable channels) { var rows = ExportRows(channels); // IEnumerable 延迟执行 @@ -137,7 +135,6 @@ public static class ChannelServiceHelpers var sheetNames = uSheetDatas.sheets.Keys.ToList(); foreach (var sheetName in sheetNames) { - List> rows = new(); var first = uSheetDatas.sheets[sheetName].cellData[0]; @@ -165,5 +162,4 @@ public static class ChannelServiceHelpers return ImportPreviews; } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelRuntimeService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelRuntimeService.cs index 18d673c7e..5cf0918cf 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelRuntimeService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelRuntimeService.cs @@ -32,7 +32,6 @@ public interface IChannelRuntimeService /// 重启 Task BatchSaveChannelAsync(List input, ItemChangedType type, bool restart); - /// /// 批量修改 /// diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs index 06fc09d0c..22f178f95 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs @@ -92,7 +92,6 @@ internal interface IChannelService /// 保存类型 Task BatchSaveAsync(List input, ItemChangedType type); - void SetChannelData(HashSet? dataScope, Dictionary channelDicts, Dictionary ImportPreviews, string sheetName, IEnumerable> rows); /// diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceRuntimeService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceRuntimeService.cs index 045b7c87a..b11fd21de 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceRuntimeService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceRuntimeService.cs @@ -29,7 +29,6 @@ public class DeviceRuntimeService : IDeviceRuntimeService private WaitLock WaitLock { get; set; } = new WaitLock(nameof(DeviceRuntimeService)); - public async Task CopyAsync(Dictionary> devices, bool restart, CancellationToken cancellationToken) { try @@ -43,13 +42,11 @@ public class DeviceRuntimeService : IDeviceRuntimeService await RuntimeServiceHelper.InitAsync(newDeviceRuntimes, _logger).ConfigureAwait(false); - //根据条件重启通道线程 if (restart) { await RuntimeServiceHelper.RestartDeviceAsync(newDeviceRuntimes).ConfigureAwait(false); await RuntimeServiceHelper.ChangedDriverAsync(_logger, cancellationToken).ConfigureAwait(false); - } return true; @@ -101,7 +98,6 @@ public class DeviceRuntimeService : IDeviceRuntimeService { await WaitLock.WaitAsync(cancellationToken).ConfigureAwait(false); - var devids = ids.ToHashSet(); var result = await GlobalData.DeviceService.DeleteDeviceAsync(devids).ConfigureAwait(false); @@ -116,11 +112,9 @@ public class DeviceRuntimeService : IDeviceRuntimeService await RuntimeServiceHelper.RemoveDeviceAsync(deviceRuntimes).ConfigureAwait(false); await RuntimeServiceHelper.ChangedDriverAsync(changedDriver, _logger, cancellationToken).ConfigureAwait(false); - } return true; - } finally { @@ -128,14 +122,11 @@ public class DeviceRuntimeService : IDeviceRuntimeService } } - - public Task> ExportDeviceAsync(ExportFilter exportFilter) => GlobalData.DeviceService.ExportDeviceAsync(exportFilter); public Task> PreviewAsync(IBrowserFile browserFile) => GlobalData.DeviceService.PreviewAsync(browserFile); public Task ExportMemoryStream(List data, string channelName, string plugin) => GlobalData.DeviceService.ExportMemoryStream(data, channelName, plugin); - public async Task ImportDeviceAsync(Dictionary input, bool restart) { try @@ -148,10 +139,8 @@ public class DeviceRuntimeService : IDeviceRuntimeService if (restart) { - var newDeciceIds = newDeviceRuntimes.Select(a => a.Id).ToHashSet(); await RuntimeServiceHelper.RemoveDeviceAsync(newDeciceIds).ConfigureAwait(false); - } //批量修改之后,需要重新加载通道 @@ -160,36 +149,27 @@ public class DeviceRuntimeService : IDeviceRuntimeService //根据条件重启通道线程 if (restart) { - await RuntimeServiceHelper.RestartDeviceAsync(newDeviceRuntimes).ConfigureAwait(false); - } - - } finally { WaitLock.Release(); } - } public async Task SaveDeviceAsync(Device input, ItemChangedType type, bool restart) { try { - await WaitLock.WaitAsync().ConfigureAwait(false); var result = await GlobalData.DeviceService.SaveDeviceAsync(input, type).ConfigureAwait(false); var newDeviceRuntimes = await RuntimeServiceHelper.GetNewDeviceRuntimesAsync(new HashSet() { input.Id }).ConfigureAwait(false); - - RuntimeServiceHelper.Init(newDeviceRuntimes); - if (restart) { //根据条件重启通道线程 @@ -204,13 +184,10 @@ public class DeviceRuntimeService : IDeviceRuntimeService } } - public async Task BatchSaveDeviceAsync(List input, ItemChangedType type, bool restart) { - try { - await WaitLock.WaitAsync().ConfigureAwait(false); var result = await GlobalData.DeviceService.BatchSaveDeviceAsync(input, type).ConfigureAwait(false); @@ -232,5 +209,4 @@ public class DeviceRuntimeService : IDeviceRuntimeService WaitLock.Release(); } } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs index 8bd60e06a..9e924bbdf 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs @@ -40,7 +40,6 @@ internal sealed class DeviceService : BaseService, IDeviceService _pluginService = App.RootServices.GetRequiredService(); } - /// [OperDesc("CopyDevice", localizerType: typeof(Device), isRecordPar: false)] public async Task CopyAsync(Dictionary> devices) @@ -50,8 +49,6 @@ internal sealed class DeviceService : BaseService, IDeviceService //事务 var result = await db.UseTranAsync(async () => { - - var device = devices.Keys.ToList(); ManageHelper.CheckDeviceCount(device.Count); @@ -61,8 +58,6 @@ internal sealed class DeviceService : BaseService, IDeviceService ManageHelper.CheckVariableCount(variable.Count); await db.Insertable(variable).ExecuteCommandAsync().ConfigureAwait(false); - - }).ConfigureAwait(false); if (result.IsSuccess)//如果成功了 { @@ -75,10 +70,8 @@ internal sealed class DeviceService : BaseService, IDeviceService //写日志 throw new(result.ErrorMessage, result.ErrorException); } - } - public async Task UpdateLogAsync(long channelId, LogLevel logLevel) { using var db = GetDB(); @@ -89,7 +82,6 @@ internal sealed class DeviceService : BaseService, IDeviceService //更新数据库 await db.Updateable().SetColumns(it => new Device() { LogLevel = logLevel }).Where(a => a.Id == channelId).ExecuteCommandAsync().ConfigureAwait(false); - }).ConfigureAwait(false); if (result.IsSuccess)//如果成功了 { @@ -224,7 +216,6 @@ internal sealed class DeviceService : BaseService, IDeviceService return await QueryAsync(exportFilter.QueryPageOptions, whereQuery , exportFilter.FilterKeyValueAction).ConfigureAwait(false); - } private async Task, ISugarQueryable>> GetWhereQueryFunc(ExportFilter exportFilter) { @@ -270,7 +261,6 @@ internal sealed class DeviceService : BaseService, IDeviceService return whereQuery; } - /// /// 保存设备 /// @@ -302,7 +292,6 @@ internal sealed class DeviceService : BaseService, IDeviceService [OperDesc("SaveDevice", localizerType: typeof(Device), isRecordPar: false)] public async Task BatchSaveDeviceAsync(List input, ItemChangedType type) { - if (type == ItemChangedType.Update) await GlobalData.SysUserService.CheckApiDataScopeAsync(input.Select(a => a.CreateOrgId), input.Select(a => a.CreateUserId)).ConfigureAwait(false); else @@ -314,11 +303,8 @@ internal sealed class DeviceService : BaseService, IDeviceService return true; } return false; - } - - #region 导出 /// @@ -348,7 +334,7 @@ internal sealed class DeviceService : BaseService, IDeviceService private async Task> GetAsyncEnumerableData(ExportFilter exportFilter) { var whereQuery = await GetEnumerableData(exportFilter).ConfigureAwait(false); - return whereQuery.GetAsyncEnumerable(); + return whereQuery.ToAsyncEnumerable(); } private async Task> GetEnumerableData(ExportFilter exportFilter) { @@ -356,7 +342,6 @@ internal sealed class DeviceService : BaseService, IDeviceService var whereQuery = await GetWhereQueryFunc(exportFilter).ConfigureAwait(false); return GetQuery(db, exportFilter.QueryPageOptions, whereQuery, exportFilter.FilterKeyValueAction); - } /// @@ -381,9 +366,6 @@ internal sealed class DeviceService : BaseService, IDeviceService return memoryStream; } - - - #endregion 导出 #region 导入 @@ -392,13 +374,13 @@ internal sealed class DeviceService : BaseService, IDeviceService [OperDesc("ImportDevice", isRecordPar: false, localizerType: typeof(Device))] public async Task> ImportDeviceAsync(Dictionary input) { - var devices = new List(); + IEnumerable? devices = new List(); foreach (var item in input) { if (item.Key == ExportString.DeviceName) { var deviceImports = ((ImportPreviewOutput)item.Value).Data; - devices = deviceImports.Select(a => a.Value).ToList(); + devices = deviceImports.Select(a => a.Value); break; } } @@ -649,8 +631,6 @@ internal sealed class DeviceService : BaseService, IDeviceService { try { - - // 获取驱动插件实例 var driver = _pluginService.GetDriver(driverPluginType.FullName); var type = driver.DriverProperties.GetType(); @@ -670,7 +650,6 @@ internal sealed class DeviceService : BaseService, IDeviceService } catch { - } } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceServiceHelpers.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceServiceHelpers.cs index 8e9b2a8a0..38fdc066e 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceServiceHelpers.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceServiceHelpers.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using BootstrapBlazor.Components; using System.Collections.Concurrent; @@ -20,7 +19,6 @@ namespace ThingsGateway.Gateway.Application; public static class DeviceServiceHelpers { - public static async Task ExportDeviceAsync(IEnumerable models) { var deviceDicts = (await GlobalData.DeviceService.GetAllAsync().ConfigureAwait(false)).ToDictionary(a => a.Id); @@ -33,10 +31,8 @@ public static class DeviceServiceHelpers }).ToHashSet(); var data = ExportSheets(models, deviceDicts, channelDicts, pluginSheetNames); // IEnumerable 延迟执行 return USheetDataHelpers.GetUSheetDatas(data); - } - public static Dictionary ExportSheets( IEnumerable? data, Dictionary? deviceDicts, @@ -47,12 +43,10 @@ HashSet pluginSheetNames, if (data?.Any() != true) data = new List(); - var result = new Dictionary(); result.Add(ExportString.DeviceName, GetDeviceSheets(data, deviceDicts, channelDicts, channelName)); ConcurrentDictionary)> propertysDict = new(); - foreach (var plugin in pluginSheetNames) { var filtered = FilterPluginDevices(data, plugin, channelDicts); @@ -63,7 +57,6 @@ HashSet pluginSheetNames, return result; } - public static Dictionary ExportSheets( IAsyncEnumerable? data1, IAsyncEnumerable? data2, @@ -79,7 +72,6 @@ string? channelName = null) result.Add(ExportString.DeviceName, GetDeviceSheets(data1, deviceDicts, channelDicts, channelName)); ConcurrentDictionary)> propertysDict = new(); - foreach (var plugin in pluginSheetNames) { var filtered = FilterPluginDevices(data2, plugin, channelDicts); @@ -145,17 +137,14 @@ Dictionary? deviceDicts, foreach (var device in data) { yield return GetDeviceRows(device, propertyInfos, type, deviceDicts, channelDicts, channelName); - } } - static IEnumerable> GetPluginSheets( IEnumerable data, ConcurrentDictionary)> propertysDict, string? plugin) { - foreach (var device in data) { var row = GetPluginRows(device, plugin, propertysDict); @@ -163,12 +152,9 @@ Dictionary? deviceDicts, { yield return row; } - } } - - static async IAsyncEnumerable> GetDeviceSheets( IAsyncEnumerable data, Dictionary? deviceDicts, @@ -191,22 +177,17 @@ Dictionary? deviceDicts, { var device = enumerator.Current; yield return GetDeviceRows(device, propertyInfos, type, deviceDicts, channelDicts, channelName); - - } } - static async IAsyncEnumerable> GetPluginSheets( IAsyncEnumerable data, ConcurrentDictionary)> propertysDict, string? plugin) { - var enumerator = data.GetAsyncEnumerator(); while (await enumerator.MoveNextAsync().ConfigureAwait(false)) { - var device = enumerator.Current; var row = GetPluginRows(device, plugin, propertysDict); if (row != null) @@ -224,7 +205,6 @@ Dictionary? deviceDicts, Dictionary? channelDicts, string? channelName) { - Dictionary devExport = new(); deviceDicts.TryGetValue(device.RedundantDeviceId ?? 0, out var redundantDevice); channelDicts.TryGetValue(device.ChannelId, out var channel); @@ -246,7 +226,6 @@ string? channelName) static Dictionary GetPluginRows(Device device, string? plugin, ConcurrentDictionary)> propertysDict) { - Dictionary driverInfo = new(); var propDict = device.DevicePropertys; if (!propertysDict.TryGetValue(plugin, out var propertys)) @@ -260,19 +239,14 @@ string? channelName) .Where(a => a.GetCustomAttribute() != null) .ToDictionary(a => driverPropertyType.GetPropertyDisplayName(a.Name, a => a.GetCustomAttribute(true)?.Description), a => a); propertysDict.TryAdd(plugin, propertys); - } catch { - } - } if (propertys.Item2 != null) { - - if (propertys.Item2.Count > 0) { //没有包含设备名称,手动插入 @@ -292,11 +266,8 @@ string? channelName) } } - - if (driverInfo.Count > 0) return driverInfo; - } return null; } @@ -323,11 +294,9 @@ string? channelName) var driverPluginNameDict = GlobalData.PluginService.GetList().DistinctBy(a => a.Name).ToDictionary(a => a.Name); ConcurrentDictionary, Dictionary)> propertysDict = new(); - var sheetNames = uSheetDatas.sheets.Keys.ToList(); foreach (var sheetName in sheetNames) { - List> rows = new(); var first = uSheetDatas.sheets[sheetName].cellData[0]; @@ -352,8 +321,5 @@ string? channelName) } } return ImportPreviews; - - } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs index aa7f69eb4..a9d70a2ea 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs @@ -121,10 +121,8 @@ internal interface IDeviceService void SetDeviceData(HashSet? dataScope, Dictionary deviceDicts, Dictionary channelDicts, Dictionary ImportPreviews, ref ImportPreviewOutput deviceImportPreview, Dictionary driverPluginNameDict, ConcurrentDictionary, Dictionary)> propertysDict, string sheetName, IEnumerable> rows); - /// /// 保存是否输出日志和日志等级 /// Task UpdateLogAsync(long deviceId, TouchSocket.Core.LogLevel logLevel); - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs index 4a5bc66ef..eb9a950c3 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs @@ -74,7 +74,6 @@ public class RpcLogPageInput : ITableSearchModel /// public DateTimeRangeValue? SearchDate { get; set; } - /// public IEnumerable GetSearches() { diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/AlarmManage/AlarmTask.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/AlarmManage/AlarmTask.cs index 5c919beeb..7099c334f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/AlarmManage/AlarmTask.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/AlarmManage/AlarmTask.cs @@ -47,7 +47,6 @@ internal sealed class AlarmTask : IDisposable scheduledTask?.TryDispose(); } - #region 核心实现 /// @@ -164,7 +163,6 @@ internal sealed class AlarmTask : IDisposable return AlarmTypeEnum.H; // 返回高报警类型枚举 } - // 检查是否启用了低低报警功能,并且变量的值小于低低报警的限制值 if (tag.LLAlarmEnable && tag.Value.ToDecimal() < tag.LLAlarmCode.ToDecimal()) { @@ -174,7 +172,6 @@ internal sealed class AlarmTask : IDisposable return AlarmTypeEnum.LL; // 返回低低报警类型枚举 } - // 检查是否启用了低报警功能,并且变量的值小于低报警的限制值 if (tag.LAlarmEnable && tag.Value.ToDecimal() < tag.LAlarmCode.ToDecimal()) { @@ -331,7 +328,6 @@ internal sealed class AlarmTask : IDisposable item.PrepareEventTime = null; changed = true; } - } else { @@ -352,8 +348,6 @@ internal sealed class AlarmTask : IDisposable item.AlarmText = text; changed = true; } - - } else if (eventEnum == EventTypeEnum.Finish) { @@ -392,7 +386,6 @@ internal sealed class AlarmTask : IDisposable } GlobalData.AlarmChange(item.AdaptAlarmVariable()); } - } public void ConfirmAlarm(long variableId) @@ -416,7 +409,6 @@ internal sealed class AlarmTask : IDisposable /// 取消任务的 CancellationToken private void DoWork(object? state, CancellationToken cancellation) { - try { if (!GlobalData.StartBusinessChannelEnable) @@ -445,8 +437,6 @@ internal sealed class AlarmTask : IDisposable // 对该变量进行报警分析 AlarmAnalysis(item); - - } }); } @@ -471,6 +461,4 @@ internal sealed class AlarmTask : IDisposable - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/ChannelManage/ChannelThreadManage.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/ChannelManage/ChannelThreadManage.cs index 232a899e3..77e6a2a1e 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/ChannelManage/ChannelThreadManage.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/ChannelManage/ChannelThreadManage.cs @@ -37,7 +37,6 @@ internal sealed class ChannelThreadManage : IChannelThreadManage /// 要移除的通道ID private async Task PrivateRemoveChannelsAsync(IList channelIds) { - await channelIds.ParallelForEachAsync(async (channelId, token) => { try @@ -45,14 +44,12 @@ internal sealed class ChannelThreadManage : IChannelThreadManage if (!DeviceThreadManages.TryRemove(channelId, out var deviceThreadManage)) return; await deviceThreadManage.DisposeAsync().ConfigureAwait(false); - } catch (Exception ex) { _logger.LogWarning(ex, nameof(PrivateRemoveChannelsAsync)); } }).ConfigureAwait(false); - } /// @@ -70,7 +67,6 @@ internal sealed class ChannelThreadManage : IChannelThreadManage finally { NewChannelLock.Release(); - } } @@ -89,12 +85,9 @@ internal sealed class ChannelThreadManage : IChannelThreadManage finally { NewChannelLock.Release(); - } } - - private async Task PrivateRestartChannelAsync(IList channelRuntimes) { await PrivateRemoveChannelsAsync(channelRuntimes.Select(a => a.Id).ToArray()).ConfigureAwait(false); @@ -135,16 +128,12 @@ internal sealed class ChannelThreadManage : IChannelThreadManage deviceThreadManage.ChannelThreadManage = this; await deviceThreadManage.RestartDeviceAsync(channelRuntime.DeviceRuntimes.Select(a => a.Value).ToList(), false).ConfigureAwait(false); - } catch (Exception ex) { _logger.LogWarning(ex, nameof(PrivateRestartChannelAsync)); } - }).ConfigureAwait(false); - - } /// @@ -168,7 +157,6 @@ internal sealed class ChannelThreadManage : IChannelThreadManage /// public async Task RestartChannelAsync(IList channelRuntimes) { - try { await NewChannelLock.WaitAsync(App.HostApplicationLifetime.ApplicationStopping).ConfigureAwait(false); @@ -187,5 +175,4 @@ internal sealed class ChannelThreadManage : IChannelThreadManage #endregion - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/DeviceManage/DeviceThreadManage.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/DeviceManage/DeviceThreadManage.cs index c3dfa223d..06883d5cc 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/DeviceManage/DeviceThreadManage.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/DeviceManage/DeviceThreadManage.cs @@ -28,7 +28,6 @@ namespace ThingsGateway.Gateway.Application; /// internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage { - Microsoft.Extensions.Logging.ILogger? _logger; /// @@ -37,7 +36,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage /// 通道表 public DeviceThreadManage(ChannelRuntime channelRuntime) { - var config = new TouchSocketConfig(); LogMessage = new LoggerGroup() { LogLevel = TouchSocket.Core.LogLevel.Warning };//不显示调试日志 // 配置容器中注册日志记录器实例 @@ -53,7 +51,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage // 根据配置获取通道实例 Channel = channelRuntime.GetChannel(config); - //初始设置输出文本日志 SetLog(CurrentChannel.LogLevel); @@ -98,7 +95,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage } SetLog(CurrentChannel.LogLevel); - } catch (Exception ex) { @@ -124,7 +120,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage TextLogger.LogLevel = logLevel ?? TouchSocket.Core.LogLevel.Trace; // 将文件日志记录器添加到日志消息组中 LogMessage?.AddLogger(TextLogger); - } private TextFileLogger? TextLogger; @@ -133,7 +128,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage public string LogPath => CurrentChannel?.LogPath; - #endregion #region 属性 @@ -194,7 +188,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage /// public async Task RestartDeviceAsync(IList deviceRuntimes, bool deleteCache) { - try { await NewDeviceLock.WaitAsync(App.HostApplicationLifetime.ApplicationStopping).ConfigureAwait(false); @@ -210,7 +203,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage { try { - await PrivateRemoveDevicesAsync(deviceRuntimes.Select(a => a.Id).ToArray()).ConfigureAwait(false); if (Disposed) @@ -236,10 +228,8 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage } catch { } } - } - var idSet = GlobalData.GetRedundantDeviceIds(); await deviceRuntimes.ParallelForEachAsync(async (deviceRuntime, cancellationToken) => @@ -322,7 +312,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage // 初始化驱动程序对象,并加载源读取 await driver.InitChannelAsync(Channel, token).ConfigureAwait(false); - } catch (Exception ex) { @@ -347,10 +336,7 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage CancellationTokenSources.TryAdd(driver.DeviceId, cts); _ = Task.Factory.StartNew((state) => DriverStart(state, token), driver, token); - }).ConfigureAwait(false); - - } catch (Exception ex) { @@ -373,7 +359,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage finally { NewDeviceLock.Release(); - } } @@ -392,7 +377,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage finally { NewDeviceLock.Release(); - } } @@ -424,8 +408,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage } } - - // 取消驱动程序的操作 if (CancellationTokenSources.TryRemove(deviceId, out var token)) { @@ -437,15 +419,12 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage } } - if (DriverTasks.TryRemove(deviceId, out var task)) { task.Stop(); } - }); - await Task.Delay(100).ConfigureAwait(false); // 如果是采集通道,更新变量初始值 @@ -510,7 +489,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage DriverTasks.TryAdd(driver.DeviceId, driverTask); driverTask.Start(); - } } catch (OperationCanceledException) @@ -521,22 +499,18 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage { return; } - } - #endregion #region 设备冗余切换 - private void GlobalData_DeviceStatusChangeEvent(DeviceRuntime deviceRuntime, DeviceBasicData deviceData) { if (deviceRuntime.DeviceStatus != DeviceStatusEnum.OffLine) return; if (deviceRuntime.ChannelId != ChannelId) return; try { - if (GlobalData.IsRedundant(deviceRuntime.Id) && deviceRuntime.Driver != null) { if (deviceRuntime.RedundantSwitchType == RedundantSwitchTypeEnum.OffLine) @@ -561,14 +535,10 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage } }, CancellationToken); } - } - - } catch { - } } @@ -596,7 +566,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage //注意切换后需要刷新业务设备的变量和采集设备集合 await RemoveDeviceAsync(deviceRuntime.Id).ConfigureAwait(false); - //获取主设备 var devices = await GlobalData.DeviceService.GetAllAsync().ConfigureAwait(false);//获取设备属性 @@ -639,13 +608,11 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage else { SetRedundantDevice(deviceRuntime, newDeviceRuntime); - } } if (newDeviceRuntime == null) return; - deviceRuntime.RedundantType = RedundantTypeEnum.Standby; newDeviceRuntime.RedundantType = RedundantTypeEnum.Primary; if (newDeviceRuntime.Id != deviceRuntime.Id) @@ -676,7 +643,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage { LogMessage?.LogWarning(ex); } - } }, cancellationToken).ConfigureAwait(false); } @@ -747,14 +713,10 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage { try { - - //检测设备线程假死 await Task.Delay(ManageHelper.ChannelThreadOptions.CheckInterval, cancellationToken).ConfigureAwait(false); if (Disposed) return; - - var num = Drivers.Count; foreach (var driver in Drivers.Select(a => a.Value).Where(a => a != null).ToList()) { @@ -832,7 +794,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage LogMessage?.LogInformation(string.Format(AppResource.ChannelDispose, CurrentChannel?.Name ?? string.Empty)); LogMessage?.Logs?.ForEach(a => a.TryDispose()); - } finally { @@ -840,8 +801,6 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage } } - - #endregion 外部获取 } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/GatewayMonitorHostedService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/GatewayMonitorHostedService.cs index 5cdafc7b5..5f17731fd 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/GatewayMonitorHostedService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/GatewayMonitorHostedService.cs @@ -31,7 +31,6 @@ internal sealed class GatewayMonitorHostedService : BackgroundService, IGatewayM private IStringLocalizer Localizer { get; } - private IChannelThreadManage ChannelThreadManage { get; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) @@ -39,7 +38,6 @@ internal sealed class GatewayMonitorHostedService : BackgroundService, IGatewayM await Task.Yield(); try { - //网关启动时,获取所有通道 var channelRuntimes = (await GlobalData.ChannelService.GetAllAsync().ConfigureAwait(false)).AdaptListChannelRuntime(); var deviceRuntimes = (await GlobalData.DeviceService.GetAllAsync().ConfigureAwait(false)).AdaptListDeviceRuntime(); @@ -58,13 +56,8 @@ internal sealed class GatewayMonitorHostedService : BackgroundService, IGatewayM var varRuntimes = variableRuntimes.Where(x => x.DeviceId == item.Id).ToArray(); - varRuntimes.ParallelForEach(varItem => - { - varItem.Init(item); - }); - + varRuntimes.ParallelForEach(varItem => varItem.Init(item)); } - } catch (Exception ex) { @@ -76,15 +69,11 @@ internal sealed class GatewayMonitorHostedService : BackgroundService, IGatewayM GlobalData.VariableRuntimeDispatchService.Dispatch(null); await ChannelThreadManage.RestartChannelAsync(channelRuntimes).ConfigureAwait(false); - - } catch (Exception ex) { Logger.LogWarning(ex, "Start error"); } - - } public override async Task StopAsync(CancellationToken cancellationToken) diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/IGatewayRedundantSerivce.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/IGatewayRedundantSerivce.cs index 265a3adb0..b0c007d50 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/IGatewayRedundantSerivce.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayMonitor/IGatewayRedundantSerivce.cs @@ -24,5 +24,4 @@ public interface IGatewayRedundantSerivce /// 业务通道是否可用 /// public bool StartBusinessChannelEnable { get; } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/ManageHelper.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/ManageHelper.cs index 2c1cd40f1..ed8f8b86e 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/ManageHelper.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/ManageHelper.cs @@ -14,13 +14,11 @@ namespace ThingsGateway.Gateway.Application; internal static class ManageHelper { - /// /// 线程最大等待间隔时间 /// public static volatile ChannelThreadOptions ChannelThreadOptions = App.GetOptions(); - public static void CheckChannelCount(int addCount) { var data = GlobalData.IdChannels.Count + addCount; @@ -50,5 +48,4 @@ internal static class ManageHelper throw new Exception($"The number of variables exceeds the limit {Math.Min(ManageHelper.ChannelThreadOptions.MaxVariableCount, authorizeInfo?.MaxVariableCount ?? 0)}"); } } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/IRedundancyHostedService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/IRedundancyHostedService.cs index 1bf7626df..79e5b2fff 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/IRedundancyHostedService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/IRedundancyHostedService.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using Microsoft.Extensions.Hosting; namespace ThingsGateway.Management; diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyHostedService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyHostedService.cs index e4aa23a62..9ea28afd5 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyHostedService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyHostedService.cs @@ -38,11 +38,9 @@ internal sealed class RedundancyHostedService : BackgroundService, IRedundancyHo public Task ForcedSync(CancellationToken cancellationToken = default) => RedundancyTask.ForcedSync(cancellationToken); - public override async Task StopAsync(CancellationToken cancellationToken) { await RedundancyTask.DisposeAsync().ConfigureAwait(false); await base.StopAsync(cancellationToken).ConfigureAwait(false); } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyService.cs index 32643bf3d..390971fdf 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyService.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using ThingsGateway.NewLife.Extension; namespace ThingsGateway.Management; @@ -87,6 +86,4 @@ internal sealed class RedundancyService : BaseService, IRedundancyServi } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyTask.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyTask.cs index 46d0ddc19..e878df7ad 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyTask.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/RedundancyTask.cs @@ -42,7 +42,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable TextLogger.LogLevel = TouchSocket.Core.LogLevel.Trace; } - public ILog LogMessage { get; set; } public TextFileLogger TextLogger { get; } public string LogPath { get; } @@ -72,7 +71,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable /// private async Task DoMasterWork(object? state, CancellationToken stoppingToken) { - try { bool online = false; @@ -88,17 +86,14 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable // 如果 online 为 true,表示设备在线 if (online) { - int batchSize = 50; var deviceRunTimes = GlobalData.ReadOnlyIdDevices.Where(a => a.Value.IsCollect == true).Select(a => a.Value).Batch(batchSize); - foreach (var item in _tcpDmtpService.Clients) { foreach (var deviceDataWithValues in deviceRunTimes) { - // 将 GlobalData.CollectDevices 和 GlobalData.Variables 同步到从站 await item.GetDmtpRpcActor().InvokeAsync( nameof(ReverseCallbackServer.UpData), null, waitInvoke, deviceDataWithValues.AdaptListDeviceDataWithValue()).ConfigureAwait(false); @@ -164,7 +159,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable } } - // 如果设备不在线 if (!online) { @@ -190,11 +184,8 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable } } - private WaitLock _switchLock = new(nameof(RedundancyTask)); - - private bool first; private async Task StandbyAsync() { @@ -286,7 +277,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable scheduledTask.Start(); } - } public async Task StopTaskAsync() { @@ -316,7 +306,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable { } } - } public async ValueTask DisposeAsync() @@ -329,7 +318,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable _tcpDmtpClient?.TryDispose(); _tcpDmtpService = null; _tcpDmtpClient = null; - } #region @@ -348,10 +336,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable .ConfigureContainer(a => { a.AddLogger(LogMessage); - a.AddRpcStore(store => - { - store.RegisterServer(new ReverseCallbackServer(this)); - }); + a.AddRpcStore(store => store.RegisterServer(new ReverseCallbackServer(this))); }) .ConfigurePlugins(a => { @@ -360,8 +345,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable .SetTick(TimeSpan.FromMilliseconds(redundancy.HeartbeatInterval)) .SetMaxFailCount(redundancy.MaxErrorCount); - - }); await tcpDmtpClient.SetupAsync(config).ConfigureAwait(false); @@ -382,10 +365,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable .ConfigureContainer(a => { a.AddLogger(LogMessage); - a.AddRpcStore(store => - { - store.RegisterServer(new ReverseCallbackServer(this)); - }); + a.AddRpcStore(store => store.RegisterServer(new ReverseCallbackServer(this))); }) .ConfigurePlugins(a => { @@ -411,7 +391,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable } private RedundancyOptions RedundancyOptions; - #endregion #region ForcedSync @@ -422,7 +401,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable await ForcedSyncWaitLock.WaitAsync(cancellationToken).ConfigureAwait(false); try { - if (!RedundancyOptions.IsMaster) return; @@ -460,7 +438,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable { LogMessage?.LogWarning(ex, "ForcedSync data error"); } - } finally { @@ -500,7 +477,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable deviceBatch.Remove(device); } } - } // 发送最后剩余的一批 @@ -510,7 +486,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable } LogMessage?.LogTrace($"ForcedSync data success"); - } #endregion @@ -589,7 +564,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable Dictionary> deviceDatas, DmtpInvokeOption invokeOption) { - return await _tcpDmtpClient.GetDmtpRpcActor() .InvokeTAsync>>>( nameof(ReverseCallbackServer.Rpc), invokeOption, deviceDatas) @@ -647,11 +621,8 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable } } } - - } - private static Dictionary>> NoOnline(Dictionary>> dataResult, Dictionary> deviceDatas) { foreach (var item in deviceDatas) @@ -664,7 +635,6 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable } } return dataResult; - } /// @@ -696,9 +666,5 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable } } - - - - #endregion } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/ReverseCallbackServer.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/ReverseCallbackServer.cs index 1c4de2846..c7e8f0ee0 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/ReverseCallbackServer.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/ReverseCallbackServer.cs @@ -28,7 +28,6 @@ internal sealed partial class ReverseCallbackServer : SingletonRpcServer [DmtpRpc(MethodInvoke = true)] public void UpData(ICallContext callContext, List deviceDatas) { - foreach (var deviceData in deviceDatas) { if (GlobalData.ReadOnlyDevices.TryGetValue(deviceData.Name, out var device)) @@ -36,7 +35,6 @@ internal sealed partial class ReverseCallbackServer : SingletonRpcServer device.RpcDriver = RedundancyTask; device.Tag = callContext.Caller is IIdClient idClient ? idClient.Id : string.Empty; - device.SetDeviceStatus(deviceData.ActiveTime, deviceData.DeviceStatus == DeviceStatusEnum.OnLine ? false : true, lastErrorMessage: deviceData.LastErrorMessage); foreach (var variableData in deviceData.ReadOnlyVariableRuntimes) @@ -47,7 +45,6 @@ internal sealed partial class ReverseCallbackServer : SingletonRpcServer value.SetErrorMessage(variableData.Value.LastErrorMessage); } } - } } RedundancyTask.LogMessage?.Trace("RpcServer Update data success"); @@ -56,7 +53,6 @@ internal sealed partial class ReverseCallbackServer : SingletonRpcServer [DmtpRpc(MethodInvoke = true)] public async Task SyncData(List channels, List devices, List variables) { - List addChannels = new(); List addDevices = new(); List addVariables = new(); @@ -90,7 +86,6 @@ internal sealed partial class ReverseCallbackServer : SingletonRpcServer { if (GlobalData.ReadOnlyDevices.TryGetValue(device.Name, out var deviceRuntime)) { - deviceNewId.TryAdd(device.Id, deviceRuntime.Id); device.Id = deviceRuntime.Id; @@ -145,12 +140,10 @@ internal sealed partial class ReverseCallbackServer : SingletonRpcServer } } - await GlobalData.ChannelRuntimeService.InsertAsync(addChannels, addDevices, addVariables, true, default).ConfigureAwait(false); await GlobalData.ChannelRuntimeService.UpdateAsync(upChannels, upDevices, upVariables, true, default).ConfigureAwait(false); RedundancyTask.LogMessage?.LogTrace($"Sync data success"); - } [DmtpRpc(MethodInvoke = true)] diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Model/DeviceDataWithValue.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Model/DeviceDataWithValue.cs index 0320b8c43..c93081d2c 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Model/DeviceDataWithValue.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Model/DeviceDataWithValue.cs @@ -33,6 +33,3 @@ public class DeviceDataWithValue /// public Dictionary ReadOnlyVariableRuntimes { get; set; } } - - - diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Update/Services/UpdateZipFileHostedService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Update/Services/UpdateZipFileHostedService.cs index ea7b52aec..2f4bdbd9d 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Update/Services/UpdateZipFileHostedService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Update/Services/UpdateZipFileHostedService.cs @@ -27,7 +27,6 @@ using TouchSocket.Sockets; namespace ThingsGateway.Management; - internal sealed class UpdateZipFileHostedService : BackgroundService, IUpdateZipFileHostedService { public UpdateZipFileHostedService(ILogger logger, INoticeService noticeService, IVerificatInfoService verificatInfoService) @@ -103,8 +102,6 @@ internal sealed class UpdateZipFileHostedService : BackgroundService, IUpdateZip } } - - private INoticeService NoticeService { get; set; } private IVerificatInfoService VerificatInfoService { get; set; } @@ -117,7 +114,6 @@ internal sealed class UpdateZipFileHostedService : BackgroundService, IUpdateZip public TextFileLogger TextLogger { get; } public string LogPath { get; } - /// /// 传输限速 /// @@ -172,7 +168,6 @@ internal sealed class UpdateZipFileHostedService : BackgroundService, IUpdateZip } try { - await WaitLock.WaitAsync().ConfigureAwait(false); RestartServerHelper.DeleteAndBackup(); @@ -195,7 +190,6 @@ internal sealed class UpdateZipFileHostedService : BackgroundService, IUpdateZip catch (Exception ex) { _log.LogWarning(ex); - } finally { @@ -281,7 +275,6 @@ internal sealed class UpdateZipFileHostedService : BackgroundService, IUpdateZip var result = await client.GetDmtpFileTransferActor().PushFileAsync(fileOperator).ConfigureAwait(false); client.Logger.Info(result.ToString()); - } /// @@ -307,10 +300,7 @@ internal sealed class UpdateZipFileHostedService : BackgroundService, IUpdateZip }) .ConfigureContainer(a => { - a.AddRpcStore(store => - { - store.RegisterServer(); - }); + a.AddRpcStore(store => store.RegisterServer()); a.AddLogger(_log); a.AddDmtpRouteService();//添加路由策略 }) diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Update/Util/RestartServerHelper.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Update/Util/RestartServerHelper.cs index 475896c17..1e9a90c31 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Update/Util/RestartServerHelper.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Update/Util/RestartServerHelper.cs @@ -90,7 +90,6 @@ public static class RestartServerHelper } } - var cmd = $"#!/bin/bash{Environment.NewLine}{stringBuilder}"; Process.Start(new ProcessStartInfo() { @@ -172,7 +171,6 @@ public static class RestartServerHelper } catch { - } } @@ -222,7 +220,6 @@ public static class RestartServerHelper } catch { - } } } @@ -231,22 +228,17 @@ public static class RestartServerHelper di.Delete(true); } - private static void Backup() { try { - //备份原数据 var backupDir = new DirectoryInfo(AppContext.BaseDirectory); backupDir.CopyTo(FileConst.BackupDirPath, allSub: true); FileConst.BackupDirPath.AsDirectory().Compress(FileConst.BackupPath); - } catch { - } } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs index 3f96e4d5b..2a21691e1 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs @@ -47,7 +47,6 @@ public interface IPluginService /// List GetList(PluginTypeEnum? pluginType = null); - /// /// 获取变量属性 /// @@ -79,5 +78,4 @@ public interface IPluginService /// /// void SetDriverProperties(IDriver driver, Dictionary deviceProperties); - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs index da0fffa27..10265bb2f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs @@ -57,7 +57,6 @@ internal sealed class PluginService : IPluginService DeleteBackup(DirName); DeleteBackup(AppContext.BaseDirectory); - } /// @@ -88,7 +87,6 @@ internal sealed class PluginService : IPluginService return driver?.DriverVariableAddressUIType; } - /// /// 根据插件名称获取对应的驱动程序。 /// @@ -218,8 +216,6 @@ internal sealed class PluginService : IPluginService } } - - /// /// 获取指定插件的属性类型及其信息,将其缓存在内存中 /// @@ -320,7 +316,6 @@ internal sealed class PluginService : IPluginService } } - /// /// 分页显示插件 /// @@ -438,8 +433,6 @@ internal sealed class PluginService : IPluginService assembly = null; - - if (isDefaultDriver) { // 将主程序集保存到文件 @@ -449,7 +442,6 @@ internal sealed class PluginService : IPluginService { await MarkSave(fullDir.CombinePathWithOs(item.Name), item.MemoryStream).ConfigureAwait(false); } - } else { @@ -467,7 +459,6 @@ internal sealed class PluginService : IPluginService await item.MemoryStream.DisposeAsync().ConfigureAwait(false); } } - } finally { @@ -483,7 +474,6 @@ internal sealed class PluginService : IPluginService } catch { - } } } @@ -589,10 +579,7 @@ internal sealed class PluginService : IPluginService { NewLife.Log.XTrace.WriteException(ex); } - _ = Task.Run(() => - { - _dispatchService.Dispatch(null); - }); + _ = Task.Run(() => _dispatchService.Dispatch(null)); } } @@ -624,7 +611,6 @@ internal sealed class PluginService : IPluginService { try { - Assembly assembly = null; //全部程序集路径 List paths = new(); @@ -650,7 +636,6 @@ internal sealed class PluginService : IPluginService _logger?.LogInformation(string.Format(AppResource.AddPluginFile, path)); } return assembly; - } catch { diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs index 18aac4073..6ad6e631b 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs @@ -205,5 +205,4 @@ public static class PluginServiceUtil } } } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs index fa63fcc22..6c2e74341 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs @@ -36,7 +36,6 @@ internal sealed class RpcService : IRpcService Localizer = localizer; Task.Factory.StartNew(RpcLogInsertAsync, TaskCreationOptions.LongRunning); _rpcLogOptions = App.GetOptions(); - } private IStringLocalizer Localizer { get; } @@ -108,7 +107,6 @@ internal sealed class RpcService : IRpcService continue; } - JToken tagValue = JTokenUtil.GetJTokenFromString(item.Value); bool isOtherMethodEmpty = string.IsNullOrEmpty(tag.OtherMethod); var collection = isOtherMethodEmpty ? writeVariables : writeMethods; @@ -122,7 +120,6 @@ internal sealed class RpcService : IRpcService collection[collect].Add(tag, tagValue); } } - } var writeVariableArrays = writeVariables.ToArray(); // 使用并行方式写入变量 @@ -137,11 +134,8 @@ internal sealed class RpcService : IRpcService // 写入日志 foreach (var resultItem in result) { - - foreach (var variableResult in resultItem.Value) { - string operObj = variableResult.Key; string parJson = deviceDatas[resultItem.Key][variableResult.Key]; @@ -202,7 +196,6 @@ internal sealed class RpcService : IRpcService // 写入日志 foreach (var resultItem in result) { - foreach (var variableResult in resultItem.Value) { string operObj = variableResult.Key; @@ -236,10 +229,8 @@ internal sealed class RpcService : IRpcService } } - results[resultItem.Key].AddRange(resultItem.Value.ToDictionary(a => a.Key, a => a.Value)); } - } catch (Exception ex) { diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Attributes/ModelValue.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Attributes/ModelValue.cs index 9bf734efa..a66b7ef6d 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Attributes/ModelValue.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Attributes/ModelValue.cs @@ -2,5 +2,4 @@ public sealed class ModelValue : Attribute { - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Entity/Rules.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Entity/Rules.cs index 7a470b1c9..a348eaff9 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Entity/Rules.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Entity/Rules.cs @@ -30,7 +30,6 @@ public class Rules : BaseDataEntity [IgnoreExcel] [AutoGenerateColumn(Ignore = true)] public RulesJson RulesJson { get; set; } = new(); - } public class RulesJson { diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Helps/RuleHelpers.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Helps/RuleHelpers.cs index 698ccb2a8..1fb4b5dd2 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Helps/RuleHelpers.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Helps/RuleHelpers.cs @@ -71,10 +71,8 @@ public static class RuleHelpers { node.AddPort(PortAlignment.Top); node.AddPort(PortAlignment.Bottom); - } return node; - } else { @@ -107,7 +105,6 @@ public static class RuleHelpers } } - public static NodeModel OnNodeJson(Diagram blazorDiagram, string draggedType, string id, Point point) { NodeModel node = RuleHelpers.GetNodeModel(draggedType, id, point); @@ -153,7 +150,6 @@ public static class RuleHelpers var nodeModel = OnNodeJson(blazorDiagram, item.DraggedType, item.Id, item.Point); SetModelValue(nodeModel, item.CValues); - } foreach (var item in rules.LinkJsons) { @@ -164,10 +160,8 @@ public static class RuleHelpers if (linkModel == null) continue; blazorDiagram.Links.Add(linkModel); - } blazorDiagram.Refresh(); } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Actuator/ExecuteScriptNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Actuator/ExecuteScriptNode.cs index 746a429cc..7739a8b65 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Actuator/ExecuteScriptNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Actuator/ExecuteScriptNode.cs @@ -1,5 +1,4 @@  - using ThingsGateway.Blazor.Diagrams.Core.Geometry; using ThingsGateway.NewLife; @@ -72,7 +71,6 @@ public class ExecuteScriptNode : TextNode, IActuatorNode, IExexcuteExpressionsBa """; - } private string text; @@ -95,7 +93,6 @@ public class ExecuteScriptNode : TextNode, IActuatorNode, IExexcuteExpressionsBa } catch { - } CSharpScriptEngineExtension.Remove(text); } @@ -123,8 +120,6 @@ public class ExecuteScriptNode : TextNode, IActuatorNode, IExexcuteExpressionsBa Logger?.LogWarning(ex); return new OperResult(ex); } - - } public void Dispose() @@ -138,7 +133,6 @@ public class ExecuteScriptNode : TextNode, IActuatorNode, IExexcuteExpressionsBa } catch { - } CSharpScriptEngineExtension.Remove(text); } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Actuator/VariableRpcNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Actuator/VariableRpcNode.cs index 6c2d22d1a..f6d2fcdc3 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Actuator/VariableRpcNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Actuator/VariableRpcNode.cs @@ -8,7 +8,6 @@ namespace ThingsGateway.Gateway.Application; [CategoryNode(Category = "Actuator", ImgUrl = "_content/ThingsGateway.Gateway.Razor/img/Rpc.svg", Desc = nameof(VariableRpcNode), LocalizerType = typeof(ThingsGateway.Gateway.Application.DefaultDiagram), WidgetType = "ThingsGateway.Gateway.Razor.VariableWidget,ThingsGateway.Gateway.Razor")] public class VariableRpcNode : VariableNode, IActuatorNode { - public VariableRpcNode(string id, Point? position = null) : base(id, position) { Title = "VariableRpcNode"; } @@ -16,7 +15,6 @@ public class VariableRpcNode : VariableNode, IActuatorNode { try { - if ((!DeviceText.IsNullOrWhiteSpace()) && GlobalData.ReadOnlyDevices.TryGetValue(DeviceText, out var device)) { if (device.ReadOnlyVariableRuntimes.TryGetValue(Text, out var value)) @@ -39,6 +37,4 @@ public class VariableRpcNode : VariableNode, IActuatorNode return new OperResult(ex); } } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/BaseNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/BaseNode.cs index 97bf84615..b275ff9c1 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/BaseNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/BaseNode.cs @@ -10,7 +10,6 @@ public abstract class BaseNode : NodeModel, INode { public BaseNode(string id, Point? position = null) : base(id, position) { - } public string RulesEngineName { get; set; } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/ConditionNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/ConditionNode.cs index adfd71031..4307457d6 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/ConditionNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/ConditionNode.cs @@ -5,8 +5,6 @@ using ThingsGateway.NewLife.Extension; using TouchSocket.Core; - - namespace ThingsGateway.Gateway.Application; [CategoryNode(Category = "Expression", ImgUrl = "_content/ThingsGateway.Gateway.Razor/img/CSharpScript.svg", Desc = nameof(ConditionNode), LocalizerType = typeof(ThingsGateway.Gateway.Application.DefaultDiagram), WidgetType = "ThingsGateway.Gateway.Razor.CSharpScriptWidget,ThingsGateway.Gateway.Razor")] @@ -18,9 +16,6 @@ public class ConditionNode : TextNode, IConditionNode Text = "return true;"; } - - - Task IConditionNode.ExecuteAsync(NodeInput input, CancellationToken cancellationToken) { var value = Text.GetExpressionsResult(input.Value, Logger); @@ -28,5 +23,4 @@ public class ConditionNode : TextNode, IConditionNode Logger?.Trace($"Condition result: {next}"); return Task.FromResult(next); } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/DataNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/DataNode.cs index 61501bb48..026d51a9f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/DataNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/DataNode.cs @@ -13,7 +13,6 @@ public class DataNode : TextNode, IExpressionNode { Title = "DataNode"; Placeholder = "DataNode.Placeholder"; Text = "return 1;"; - } Task> IExpressionNode.ExecuteAsync(NodeInput input, CancellationToken cancellationToken) @@ -31,6 +30,5 @@ public class DataNode : TextNode, IExpressionNode Logger?.LogWarning(ex); return Task.FromResult(new OperResult(ex)); } - } } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/DelayNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/DelayNode.cs index 8192c9861..0082bf285 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/DelayNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Expression/DelayNode.cs @@ -23,9 +23,5 @@ public class DelayNode : NumberNode, IExpressionNode Logger?.LogWarning(ex); return new OperResult(ex); } - } - } - - diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/INode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/INode.cs index 5859a6ecf..1b2d74703 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/INode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/INode.cs @@ -32,4 +32,3 @@ public interface IExexcuteExpressions : IExexcuteExpressionsBase public TouchSocket.Core.ILog Logger { get; set; } Task ExecuteAsync(NodeInput input, CancellationToken cancellationToken); } - diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/NumberNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/NumberNode.cs index d7749fe79..eed6ac867 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/NumberNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/NumberNode.cs @@ -3,12 +3,9 @@ namespace ThingsGateway.Gateway.Application; public abstract class NumberNode : PlaceholderNode { - public NumberNode(string id, Point? position = null) : base(id, position) { } [ModelValue] public int? Number { get; set; } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/PlaceholderNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/PlaceholderNode.cs index b8bb57c6c..68bf8c5bc 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/PlaceholderNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/PlaceholderNode.cs @@ -4,7 +4,6 @@ namespace ThingsGateway.Gateway.Application; public abstract class PlaceholderNode : BaseNode { - protected PlaceholderNode(string id, Point? position = null) : base(id, position) { } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Start/StartNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Start/StartNode.cs index 22201e7a7..bc0700393 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Start/StartNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Start/StartNode.cs @@ -6,9 +6,6 @@ namespace ThingsGateway.Gateway.Application; [CategoryNode(Category = "Start/End", ImgUrl = "_content/ThingsGateway.Gateway.Razor/img/Start.svg", Desc = nameof(StartNode), LocalizerType = typeof(ThingsGateway.Gateway.Application.DefaultDiagram), WidgetType = "ThingsGateway.Gateway.Razor.DefaultWidget,ThingsGateway.Gateway.Razor")] public class StartNode : BaseNode, IStartNode { - public StartNode(string id, Point? position = null) : base(id, position) { Title = "Start"; } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/TextNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/TextNode.cs index 90e35e831..7a6b7cd75 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/TextNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/TextNode.cs @@ -4,7 +4,6 @@ namespace ThingsGateway.Gateway.Application; public abstract class TextNode : PlaceholderNode { - public TextNode(string id, Point? position = null) : base(id, position) { } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/AlarmChangedTriggerNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/AlarmChangedTriggerNode.cs index 7bf0b9cca..e753bf618 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/AlarmChangedTriggerNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/AlarmChangedTriggerNode.cs @@ -13,7 +13,6 @@ public class AlarmChangedTriggerNode : VariableNode, ITriggerNode, IDisposable { public AlarmChangedTriggerNode(string id, Point? position = null) : base(id, position) { Title = "AlarmChangedTriggerNode"; } - private Func Func { get; set; } Task ITriggerNode.StartAsync(Func func, CancellationToken cancellationToken) { @@ -21,7 +20,6 @@ public class AlarmChangedTriggerNode : VariableNode, ITriggerNode, IDisposable FuncDict.TryAdd(this, func); if (AlarmChangedTriggerNodeDict.TryGetValue(DeviceText, out var deviceVariableDict)) { - if (deviceVariableDict.TryGetValue(Text, out var alarmChangedTriggerNodes)) { alarmChangedTriggerNodes.Add(this); @@ -37,7 +35,6 @@ public class AlarmChangedTriggerNode : VariableNode, ITriggerNode, IDisposable AlarmChangedTriggerNodeDict.TryAdd(DeviceText, new()); AlarmChangedTriggerNodeDict[DeviceText].TryAdd(Text, new()); AlarmChangedTriggerNodeDict[DeviceText][Text].Add(this); - } return Task.CompletedTask; } @@ -51,10 +48,7 @@ public class AlarmChangedTriggerNode : VariableNode, ITriggerNode, IDisposable { Task.Factory.StartNew(RunAsync); GlobalData.AlarmChangedEvent -= AlarmHostedService_OnAlarmChanged; - GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => - { - AlarmHostedService_OnAlarmChanged(a.Value); - }); + GlobalData.ReadOnlyRealAlarmIdVariables?.ForEach(a => AlarmHostedService_OnAlarmChanged(a.Value)); GlobalData.AlarmChangedEvent += AlarmHostedService_OnAlarmChanged; } private static void AlarmHostedService_OnAlarmChanged(AlarmVariable alarmVariable) @@ -98,7 +92,6 @@ public class AlarmChangedTriggerNode : VariableNode, ITriggerNode, IDisposable } }, token).ConfigureAwait(false); } - }), default); } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/DeviceChangedTriggerNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/DeviceChangedTriggerNode.cs index f9a1da833..b53569e56 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/DeviceChangedTriggerNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/DeviceChangedTriggerNode.cs @@ -13,7 +13,6 @@ public class DeviceChangedTriggerNode : TextNode, ITriggerNode, IDisposable { public DeviceChangedTriggerNode(string id, Point? position = null) : base(id, position) { Title = "DeviceChangedTriggerNode"; Placeholder = "Device.Placeholder"; } - private Func Func { get; set; } Task ITriggerNode.StartAsync(Func func, CancellationToken cancellationToken) { @@ -62,7 +61,6 @@ public class DeviceChangedTriggerNode : TextNode, ITriggerNode, IDisposable { return DeviceDatas.GetConsumingEnumerable().ParallelForEachStreamedAsync((async (deviceDatas, token) => { - if (DeviceChangedTriggerNodeDict.TryGetValue(deviceDatas.Name ?? string.Empty, out var valueChangedTriggerNodes)) { await valueChangedTriggerNodes.ParallelForEachAsync(async (item, token) => @@ -73,7 +71,6 @@ public class DeviceChangedTriggerNode : TextNode, ITriggerNode, IDisposable { item.Logger?.Trace($"Device changed: {item.Text}"); await func.Invoke(new NodeOutput() { Value = deviceDatas }, token).ConfigureAwait(false); - } } catch (Exception ex) @@ -85,7 +82,6 @@ public class DeviceChangedTriggerNode : TextNode, ITriggerNode, IDisposable }), default); } - public void Dispose() { FuncDict.Remove(this); @@ -95,4 +91,3 @@ public class DeviceChangedTriggerNode : TextNode, ITriggerNode, IDisposable } } } - diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/TimeIntervalTriggerNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/TimeIntervalTriggerNode.cs index d3ffbf900..9cc978dcd 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/TimeIntervalTriggerNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/TimeIntervalTriggerNode.cs @@ -44,7 +44,6 @@ public class TimeIntervalTriggerNode : TextNode, ITriggerNode, IDisposable } } - public void Dispose() { _task?.Stop(); diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/ValueChangedTriggerNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/ValueChangedTriggerNode.cs index 0b812a7e4..bc57b6194 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/ValueChangedTriggerNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/Trigger/ValueChangedTriggerNode.cs @@ -20,7 +20,6 @@ public class ValueChangedTriggerNode : VariableNode, ITriggerNode, IDisposable FuncDict.TryAdd(this, func); if (ValueChangedTriggerNodeDict.TryGetValue(DeviceText, out var deviceVariableDict)) { - if (deviceVariableDict.TryGetValue(Text, out var valueChangedTriggerNodes)) { valueChangedTriggerNodes.Add(this); @@ -36,7 +35,6 @@ public class ValueChangedTriggerNode : VariableNode, ITriggerNode, IDisposable ValueChangedTriggerNodeDict.TryAdd(DeviceText, new()); ValueChangedTriggerNodeDict[DeviceText].TryAdd(Text, new()); ValueChangedTriggerNodeDict[DeviceText][Text].Add(this); - } return Task.CompletedTask; } @@ -71,7 +69,6 @@ public class ValueChangedTriggerNode : VariableNode, ITriggerNode, IDisposable { return VariableBasicDatas.GetConsumingEnumerable().ParallelForEachStreamedAsync((async (variableBasicData, token) => { - if (ValueChangedTriggerNodeDict.TryGetValue(variableBasicData.DeviceName, out var valueNodeDict) && valueNodeDict.TryGetValue(variableBasicData.Name, out var valueChangedTriggerNodes)) { @@ -83,7 +80,6 @@ public class ValueChangedTriggerNode : VariableNode, ITriggerNode, IDisposable { item.Logger?.Trace($"Variable changed: {item.Text}"); await func.Invoke(new NodeOutput() { Value = variableBasicData }, token).ConfigureAwait(false); - } } catch (Exception ex) @@ -92,9 +88,7 @@ public class ValueChangedTriggerNode : VariableNode, ITriggerNode, IDisposable } }, token).ConfigureAwait(false); } - }), default); - } public void Dispose() diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/VariableNode.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/VariableNode.cs index 08cbb711c..f72db773f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/VariableNode.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Node/VariableNode.cs @@ -4,7 +4,6 @@ namespace ThingsGateway.Gateway.Application; public abstract class VariableNode : TextNode { - public VariableNode(string id, Point? position = null) : base(id, position) { Placeholder = "Variable.Placeholder"; diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/DefaultDiagram.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/DefaultDiagram.cs index f816333b9..8a6bdbd8e 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/DefaultDiagram.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/DefaultDiagram.cs @@ -11,5 +11,4 @@ internal class DefaultDiagram : Diagram { Options = new(); } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/IRulesService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/IRulesService.cs index 46b6c6b70..1355dc00f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/IRulesService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/IRulesService.cs @@ -12,10 +12,8 @@ using BootstrapBlazor.Components; namespace ThingsGateway.Gateway.Application; - public interface IRulesService { - /// /// 清除所有规则 /// diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/RulesEngineHostedService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/RulesEngineHostedService.cs index ac6489a62..7d9ff3d63 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/RulesEngineHostedService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/RulesEngineHostedService.cs @@ -150,7 +150,6 @@ internal sealed class RulesEngineHostedService : BackgroundService, IRulesEngine await Analysis((link.Target.Model as PortModel)?.Parent, new NodeInput() { Value = nodeOutput.Content.Value, }, rulesLog, cancellationToken).ConfigureAwait(false); } } - } else if (targetNode is IActuatorNode actuatorNode) { @@ -165,7 +164,6 @@ internal sealed class RulesEngineHostedService : BackgroundService, IRulesEngine } else if (targetNode is ITriggerNode triggerNode) { - Func func = (async (a, token) => { foreach (var link in targetNode.PortLinks.Where(a => ((a.Target.Model as PortModel)?.Parent) != targetNode)) @@ -174,9 +172,7 @@ internal sealed class RulesEngineHostedService : BackgroundService, IRulesEngine } }); await triggerNode.StartAsync(func, cancellationToken).ConfigureAwait(false); - } - } catch (TaskCanceledException) { } catch (OperationCanceledException) { } @@ -186,7 +182,6 @@ internal sealed class RulesEngineHostedService : BackgroundService, IRulesEngine } } - #region worker服务 private CancellationTokenSource? TokenSource { get; set; } @@ -274,6 +269,5 @@ internal sealed class RulesEngineHostedService : BackgroundService, IRulesEngine } } - #endregion worker服务 } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/RulesService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/RulesService.cs index 5c1bb57f5..9f6ff940f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/RulesService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RulesEngine/Services/RulesService.cs @@ -20,7 +20,6 @@ namespace ThingsGateway.Gateway.Application; internal sealed class RulesService : BaseService, IRulesService { - private IRulesEngineHostedService _rulesEngineHostedService; private IRulesEngineHostedService RulesEngineHostedService { @@ -48,7 +47,6 @@ internal sealed class RulesService : BaseService, IRulesService DeleteRulesFromCache(); await RulesEngineHostedService.Delete(data).ConfigureAwait(false); - } [OperDesc("DeleteRules", localizerType: typeof(Rules))] @@ -65,7 +63,6 @@ internal sealed class RulesService : BaseService, IRulesService DeleteRulesFromCache(); await RulesEngineHostedService.Delete(ids).ConfigureAwait(false); return true; - } private const string cacheKey = "ThingsGateway:Cache_RulesEngines:List"; /// @@ -113,7 +110,6 @@ internal sealed class RulesService : BaseService, IRulesService [OperDesc("SaveRules", localizerType: typeof(Rules))] public async Task SaveRulesAsync(Rules input, ItemChangedType type) { - //验证 CheckInput(input); if (type == ItemChangedType.Update) @@ -130,8 +126,5 @@ internal sealed class RulesService : BaseService, IRulesService private static void CheckInput(Rules input) { - } - } - diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/RuntimeServiceHelper.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/RuntimeServiceHelper.cs index 2413da738..42c389900 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/RuntimeServiceHelper.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/RuntimeServiceHelper.cs @@ -8,7 +8,6 @@ // QQ群:605534569 // ------------------------------------------------------------------------------ - using BootstrapBlazor.Components; using Microsoft.Extensions.Logging; @@ -20,12 +19,10 @@ using ThingsGateway.NewLife.DictionaryExtensions; using TouchSocket.Core; - namespace ThingsGateway.Gateway.Application; internal static class RuntimeServiceHelper { - public static async Task InitAsync(List newChannelRuntimes, List newDeviceRuntimes, ILogger logger) { //批量修改之后,需要重新加载通道 @@ -40,10 +37,7 @@ internal static class RuntimeServiceHelper var newVariableRuntimes = (await GlobalData.VariableService.GetAllAsync(newDeviceRuntime.Id).ConfigureAwait(false)).AdaptListVariableRuntime(); - newVariableRuntimes.ParallelForEach(item => - { - item.Init(newDeviceRuntime); - }); + newVariableRuntimes.ParallelForEach(item => item.Init(newDeviceRuntime)); } } catch (Exception ex) @@ -53,7 +47,6 @@ internal static class RuntimeServiceHelper } GlobalData.ChannelDeviceRuntimeDispatchService.Dispatch(null); GlobalData.VariableRuntimeDispatchService.Dispatch(null); - } public static void Init(List newChannelRuntimes) @@ -71,32 +64,24 @@ internal static class RuntimeServiceHelper else { newChannelRuntime.Init(); - } - } GlobalData.ChannelDeviceRuntimeDispatchService.Dispatch(null); } - public static async Task InitAsync(List newDeviceRuntimes, ILogger logger) { foreach (var newDeviceRuntime in newDeviceRuntimes) { try { - - if (GlobalData.IdChannels.TryGetValue(newDeviceRuntime.ChannelId, out var newChannelRuntime)) { newDeviceRuntime.Init(newChannelRuntime); var newVariableRuntimes = (await GlobalData.VariableService.GetAllAsync(newDeviceRuntime.Id).ConfigureAwait(false)).AdaptListVariableRuntime(); - newVariableRuntimes.ParallelForEach(item => - { - item.Init(newDeviceRuntime); - }); + newVariableRuntimes.ParallelForEach(item => item.Init(newDeviceRuntime)); } else { @@ -111,7 +96,6 @@ internal static class RuntimeServiceHelper GlobalData.ChannelDeviceRuntimeDispatchService.Dispatch(null); GlobalData.VariableRuntimeDispatchService.Dispatch(null); - } public static void Init(List newDeviceRuntimes) @@ -136,7 +120,6 @@ internal static class RuntimeServiceHelper GlobalData.ChannelDeviceRuntimeDispatchService.Dispatch(null); GlobalData.VariableRuntimeDispatchService.Dispatch(null); - } public static void Init(List newVariableRuntimes) { @@ -154,7 +137,6 @@ internal static class RuntimeServiceHelper GlobalData.VariableRuntimeDispatchService.Dispatch(null); } - public static void RemoveOldChannelRuntimes(IEnumerable oldChannelRuntimes) { var devs = oldChannelRuntimes.SelectMany(a => a.DeviceRuntimes).Select(a => a.Value).ToArray(); @@ -164,7 +146,6 @@ internal static class RuntimeServiceHelper GlobalData.ChannelDeviceRuntimeDispatchService.Dispatch(null); GlobalData.VariableRuntimeDispatchService.Dispatch(null); - } public static async Task> GetNewChannelRuntimesAsync(HashSet ids) @@ -189,7 +170,6 @@ internal static class RuntimeServiceHelper var vars = deviceRuntime.VariableRuntimes.Select(a => a.Value).ToArray(); vars.ParallelForEach(v => { - //需要重启业务线程 var deviceRuntimes = GlobalData.IdDevices.Where(a => GlobalData.ContainsVariable(a.Key, v)).Select(a => a.Value); foreach (var deviceRuntime in deviceRuntimes) @@ -237,20 +217,14 @@ internal static class RuntimeServiceHelper } } - v.Dispose(); - - } )); a.Dispose(); - })); } - } - GlobalData.ChannelDeviceRuntimeDispatchService.Dispatch(null); GlobalData.VariableRuntimeDispatchService.Dispatch(null); @@ -282,7 +256,6 @@ internal static class RuntimeServiceHelper } } - public static async Task ChangedDriverAsync(ILogger logger, CancellationToken cancellationToken) { var channelDevice = GlobalData.IdDevices.Where(a => a.Value.Driver?.DriverProperties is IBusinessPropertyAllVariableBase property && property.IsAllVariable).Select(a => a.Value).ToArray(); @@ -323,7 +296,6 @@ internal static class RuntimeServiceHelper foreach (var group in data) { - //这里改动的可能是旧绑定设备 //需要改动DeviceRuntim的变量字典 foreach (var item in group) @@ -341,7 +313,6 @@ internal static class RuntimeServiceHelper changedDriver.TryAdd(deviceRuntime.Driver); } } - } if (group.Key != null) { @@ -354,10 +325,8 @@ internal static class RuntimeServiceHelper } public static void VariableRuntimesDispose(IEnumerable variableIds) { - foreach (var variableId in variableIds) { - if (GlobalData.IdVariables.TryGetValue(variableId, out var variableRuntime)) { variableRuntime.Dispose(); @@ -367,7 +336,6 @@ internal static class RuntimeServiceHelper GlobalData.VariableRuntimeDispatchService.Dispatch(null); } - public static void AddCollectChangedDriver(IEnumerable newVariableRuntimes, ConcurrentHashSet changedDriver) { //批量修改之后,需要重新加载 @@ -385,5 +353,4 @@ internal static class RuntimeServiceHelper } GlobalData.VariableRuntimeDispatchService.Dispatch(null); } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableRuntimeService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableRuntimeService.cs index 6c2af6c14..50f670a08 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableRuntimeService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableRuntimeService.cs @@ -24,7 +24,6 @@ namespace ThingsGateway.Gateway.Application Task ImportVariableAsync(Dictionary input, bool restart, CancellationToken cancellationToken); Task InsertTestDataAsync(int testVariableCount, int testDeviceCount, string slaveUrl, bool businessEnable, bool restart, CancellationToken cancellationToken); - Task BatchSaveVariableAsync(List input, ItemChangedType type, bool restart, CancellationToken cancellationToken); Task> PreviewAsync(IBrowserFile browserFile); diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs index 5f5aeab37..485be4966 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs @@ -99,14 +99,11 @@ internal interface IVariableService /// 变量变化类型。 Task SaveVariableAsync(Variable input, ItemChangedType type); - - /// /// 保存初始值 /// Task UpdateInitValueAsync(List variables); - Task> GetByDeviceIdAsync(List deviceIds); void DeleteVariableCache(); ImportPreviewOutput> SetVariableData(HashSet? dataScope, Dictionary deviceDicts, Dictionary ImportPreviews, ImportPreviewOutput> deviceImportPreview, Dictionary driverPluginNameDict, ConcurrentDictionary, Dictionary)> propertysDict, string sheetName, IEnumerable> rows); diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableRuntimeService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableRuntimeService.cs index efde3d53a..abf21bd20 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableRuntimeService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableRuntimeService.cs @@ -26,8 +26,6 @@ public class VariableRuntimeService : IVariableRuntimeService _logger = logger; } - - public async Task BatchSaveVariableAsync(List input, ItemChangedType type, bool restart, CancellationToken cancellationToken) { try @@ -45,7 +43,6 @@ public class VariableRuntimeService : IVariableRuntimeService RuntimeServiceHelper.AddCollectChangedDriver(newVariableRuntimes, changedDriver); RuntimeServiceHelper.AddBusinessChangedDriver(variableIds, changedDriver); - if (restart) { //根据条件重启通道线程 @@ -65,7 +62,6 @@ public class VariableRuntimeService : IVariableRuntimeService { // await WaitLock.WaitAsync().ConfigureAwait(false); - var result = await GlobalData.VariableService.BatchEditAsync(models, oldModel, model).ConfigureAwait(false); using var db = DbContext.GetDB(); @@ -88,7 +84,6 @@ public class VariableRuntimeService : IVariableRuntimeService } return true; - } finally { @@ -106,7 +101,6 @@ public class VariableRuntimeService : IVariableRuntimeService var result = await GlobalData.VariableService.DeleteVariableAsync(variableIds).ConfigureAwait(false); - ConcurrentHashSet changedDriver = new(); RuntimeServiceHelper.AddBusinessChangedDriver(variableIds, changedDriver); @@ -123,8 +117,6 @@ public class VariableRuntimeService : IVariableRuntimeService { //WaitLock.Release(); } - - } public async Task ClearVariableAsync(bool restart, CancellationToken cancellationToken) @@ -133,7 +125,6 @@ public class VariableRuntimeService : IVariableRuntimeService { // await WaitLock.WaitAsync().ConfigureAwait(false); - var result = await GlobalData.VariableService.DeleteVariableAsync(null).ConfigureAwait(false); ConcurrentHashSet changedDriver = new(); @@ -143,7 +134,6 @@ public class VariableRuntimeService : IVariableRuntimeService if (restart) { - await RuntimeServiceHelper.ChangedDriverAsync(changedDriver, _logger, cancellationToken).ConfigureAwait(false); } @@ -153,23 +143,18 @@ public class VariableRuntimeService : IVariableRuntimeService { //WaitLock.Release(); } - - } - public Task> ExportVariableAsync(ExportFilter exportFilter) => GlobalData.VariableService.ExportVariableAsync(exportFilter); public async Task ImportVariableAsync(Dictionary input, bool restart, CancellationToken cancellationToken) { - try { // await WaitLock.WaitAsync().ConfigureAwait(false); var result = await GlobalData.VariableService.ImportVariableAsync(input).ConfigureAwait(false); - using var db = DbContext.GetDB(); var newVariableRuntimes = (await db.Queryable().Where(a => result.Contains(a.Id)).ToListAsync(cancellationToken).ConfigureAwait(false)).AdaptListVariableRuntime(); @@ -186,14 +171,11 @@ public class VariableRuntimeService : IVariableRuntimeService await RuntimeServiceHelper.ChangedDriverAsync(changedDriver, _logger, cancellationToken).ConfigureAwait(false); } - - } finally { //WaitLock.Release(); } - } public async Task InsertTestDataAsync(int testVariableCount, int testDeviceCount, string slaveUrl, bool businessEnable, bool restart, CancellationToken cancellationToken) @@ -202,8 +184,6 @@ public class VariableRuntimeService : IVariableRuntimeService { // await WaitLock.WaitAsync().ConfigureAwait(false); - - var datas = await GlobalData.VariableService.InsertTestDataAsync(testVariableCount, testDeviceCount, slaveUrl, businessEnable).ConfigureAwait(false); { @@ -213,16 +193,13 @@ public class VariableRuntimeService : IVariableRuntimeService RuntimeServiceHelper.Init(newChannelRuntimes); { - var newDeviceRuntimes = datas.Item2.AdaptListDeviceRuntime(); RuntimeServiceHelper.Init(newDeviceRuntimes); - } { var newVariableRuntimes = datas.Item3.AdaptListVariableRuntime(); RuntimeServiceHelper.Init(newVariableRuntimes); - } //根据条件重启通道线程 @@ -232,18 +209,14 @@ public class VariableRuntimeService : IVariableRuntimeService await RuntimeServiceHelper.ChangedDriverAsync(_logger, cancellationToken).ConfigureAwait(false); } - } } finally { //WaitLock.Release(); } - } - - public Task> PreviewAsync(IBrowserFile browserFile) { return GlobalData.VariableService.PreviewAsync(browserFile); @@ -255,11 +228,8 @@ public class VariableRuntimeService : IVariableRuntimeService { // await WaitLock.WaitAsync().ConfigureAwait(false); - - var result = await GlobalData.VariableService.SaveVariableAsync(input, type).ConfigureAwait(false); - using var db = DbContext.GetDB(); var newVariableRuntimes = (await db.Queryable().Where(a => a.Id == input.Id).ToListAsync(cancellationToken).ConfigureAwait(false)).AdaptListVariableRuntime(); @@ -277,7 +247,6 @@ public class VariableRuntimeService : IVariableRuntimeService await RuntimeServiceHelper.ChangedDriverAsync(changedDriver, _logger, cancellationToken).ConfigureAwait(false); } - return true; } finally @@ -286,9 +255,6 @@ public class VariableRuntimeService : IVariableRuntimeService } } - public Task ExportMemoryStream(List data, string deviceName) => GlobalData.VariableService.ExportMemoryStream(data, deviceName); - - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs index c041cb4d7..5e608f8ab 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs @@ -114,10 +114,8 @@ internal sealed class VariableService : BaseService, IVariableService } } - if (businessEnable) { - Channel serviceChannel = new Channel(); Device serviceDevice = new Device(); @@ -175,7 +173,6 @@ internal sealed class VariableService : BaseService, IVariableService }; newDevices.Add(mqttDevice); } - } //Channel opcuaChannel = new Channel(); @@ -224,7 +221,6 @@ internal sealed class VariableService : BaseService, IVariableService await db.BulkCopyAsync(newDevices, 10000).ConfigureAwait(false); await db.BulkCopyAsync(newVariables, 10000).ConfigureAwait(false); } - }).ConfigureAwait(false); if (result.IsSuccess)//如果成功了 { @@ -241,7 +237,6 @@ internal sealed class VariableService : BaseService, IVariableService #endregion 测试 - /// /// 保存初始值 /// @@ -258,28 +253,22 @@ internal sealed class VariableService : BaseService, IVariableService [OperDesc("SaveVariable", isRecordPar: false, localizerType: typeof(Variable))] public async Task BatchSaveVariableAsync(List input, ItemChangedType type) { - - if (type == ItemChangedType.Add) { - ManageHelper.CheckVariableCount(input.Count); using var db = GetDB(); - var result = await db.Insertable(input).ExecuteCommandAsync().ConfigureAwait(false); if (result > 0) { DeleteVariableCache(); return true; - } } else { - using var db = GetDB(); var result = await db.Updateable(input).ExecuteCommandAsync().ConfigureAwait(false); @@ -401,7 +390,6 @@ internal sealed class VariableService : BaseService, IVariableService .WhereIF(dataScope != null && dataScope?.Count > 0, u => dataScope.Contains(u.CreateOrgId))//在指定机构列表查询 .WhereIF(dataScope?.Count == 0, u => u.CreateUserId == UserManager.UserId) - .WhereIF(exportFilter.PluginType == PluginTypeEnum.Business, u => SqlFunc.JsonLike(u.VariablePropertys, exportFilter.DeviceId.ToString())); return whereQuery; } @@ -427,7 +415,6 @@ internal sealed class VariableService : BaseService, IVariableService .WhereIF(dataScope != null && dataScope?.Count > 0, u => dataScope.Contains(u.CreateOrgId))//在指定机构列表查询 .WhereIF(dataScope?.Count == 0, u => u.CreateUserId == UserManager.UserId) - .WhereIF(exportFilter.PluginType == PluginTypeEnum.Business, u => SqlFunc.JsonLike(u.VariablePropertys, exportFilter.DeviceId.ToString())); return whereQuery; } @@ -458,12 +445,11 @@ internal sealed class VariableService : BaseService, IVariableService App.CacheService.Remove(ThingsGatewayCacheConst.Cache_Variable); } - public List GetAllVariableRuntime() { using (var db = DbContext.GetDB()) { - var deviceVariables = db.Queryable().OrderBy(a => a.Id).GetEnumerable(); + var deviceVariables = db.Queryable().OrderBy(a => a.Id).ToEnumerable(); return deviceVariables.AdaptListVariableRuntime(); } } @@ -503,7 +489,6 @@ internal sealed class VariableService : BaseService, IVariableService { if (GlobalData.HardwareJob.HardwareInfo.MachineInfo.AvailableMemory < 4 * 1024 * 1024) { - var whereQuery = await GetWhereEnumerableFunc(exportFilter).ConfigureAwait(false); //导出 var variables = GlobalData.IdVariables.Select(a => a.Value).GetQuery(exportFilter.QueryPageOptions, whereQuery, exportFilter.FilterKeyValueAction); @@ -524,7 +509,6 @@ internal sealed class VariableService : BaseService, IVariableService var sheets = VariableServiceHelpers.ExportSheets(variables, deviceDicts, channelDicts, pluginSheetNames); // IEnumerable 延迟执行 return sheets; - } else { @@ -532,12 +516,11 @@ internal sealed class VariableService : BaseService, IVariableService var sheets = await VariableServiceHelpers.ExportCoreAsync(data.Items, sortName: exportFilter.QueryPageOptions.SortName, sortOrder: exportFilter.QueryPageOptions.SortOrder).ConfigureAwait(false); return sheets; } - } private async Task> GetAsyncEnumerableData(ExportFilter exportFilter) { var whereQuery = await GetEnumerableData(exportFilter).ConfigureAwait(false); - return whereQuery.GetAsyncEnumerable(); + return whereQuery.ToAsyncEnumerable(); } private async Task> GetEnumerableData(ExportFilter exportFilter) { @@ -545,10 +528,8 @@ internal sealed class VariableService : BaseService, IVariableService var whereQuery = await GetWhereQueryFunc(exportFilter).ConfigureAwait(false); return GetQuery(db, exportFilter.QueryPageOptions, whereQuery, exportFilter.FilterKeyValueAction); - } - #endregion 导出 #region 导入 @@ -557,13 +538,13 @@ internal sealed class VariableService : BaseService, IVariableService [OperDesc("ImportVariable", isRecordPar: false, localizerType: typeof(Variable))] public async Task> ImportVariableAsync(Dictionary input) { - var variables = new List(); + IEnumerable? variables = new List(); foreach (var item in input) { if (item.Key == ExportString.VariableName) { var variableImports = ((ImportPreviewOutput>)item.Value).Data; - variables = variableImports.SelectMany(a => a.Value.Select(a => a.Value)).ToList(); + variables = variableImports.SelectMany(a => a.Value.Select(a => a.Value)); break; } } @@ -585,8 +566,6 @@ internal sealed class VariableService : BaseService, IVariableService return variables.Select(a => a.Id).ToHashSet(); } - - public async Task> PreviewAsync(IBrowserFile browserFile) { // 上传文件并获取文件路径 @@ -758,8 +737,6 @@ internal sealed class VariableService : BaseService, IVariableService { try { - - var variableProperty = ((BusinessBase)_pluginService.GetDriver(driverPluginType.FullName)).VariablePropertys; var variablePropertyType = variableProperty.GetType(); propertys.Item1 = variablePropertyType; @@ -776,7 +753,6 @@ internal sealed class VariableService : BaseService, IVariableService } catch { - } } @@ -891,6 +867,5 @@ internal sealed class VariableService : BaseService, IVariableService return deviceImportPreview; } - #endregion 导入 } diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableServiceHelpers.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableServiceHelpers.cs index ff3d9835e..91b3b6e13 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableServiceHelpers.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableServiceHelpers.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - using BootstrapBlazor.Components; using System.Collections.Concurrent; @@ -22,7 +21,6 @@ namespace ThingsGateway.Gateway.Application; public static class VariableServiceHelpers { - public static async Task ExportVariableAsync(IEnumerable variables, string sortName = nameof(Variable.Id), SortOrder sortOrder = SortOrder.Asc) { var deviceDicts = (await GlobalData.DeviceService.GetAllAsync().ConfigureAwait(false)).ToDictionary(a => a.Id); @@ -88,7 +86,6 @@ Dictionary channelDicts) }); } - public static Dictionary ExportSheets( IEnumerable data, Dictionary deviceDicts, @@ -381,7 +378,6 @@ Dictionary channelDicts) #region 插件sheet if (variable.VariablePropertys != null) { - foreach (var item in variable.VariablePropertys) { //插件属性 @@ -406,7 +402,6 @@ Dictionary channelDicts) { try { - var variableProperty = ((BusinessBase)GlobalData.PluginService.GetDriver(channel.PluginName))?.VariablePropertys; propertys.Item1 = variableProperty; var variablePropertyType = variableProperty.GetType(); @@ -415,11 +410,9 @@ Dictionary channelDicts) .ToDictionary(a => variablePropertyType.GetPropertyDisplayName(a.Name, a => a.GetCustomAttribute(true)?.Description)); propertysDict.TryAdd(channel.PluginName, propertys); - } catch { - } } if (propertys.Item2?.Count == null) @@ -465,7 +458,6 @@ Dictionary channelDicts) if (driverInfo.Count > 0) devicePropertys.TryAdd(pluginName.Item2, new() { driverInfo }); } - } } } @@ -527,7 +519,6 @@ Dictionary channelDicts) var sheetNames = uSheetDatas.sheets.Keys.ToList(); foreach (var sheetName in sheetNames) { - List> rows = new(); var first = uSheetDatas.sheets[sheetName].cellData[0]; @@ -553,7 +544,5 @@ Dictionary channelDicts) } return ImportPreviews; - } - } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs b/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs index 67a67d56d..3a8a2b089 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs @@ -90,7 +90,6 @@ public class Startup : AppStartup if (configId.Count() > 1) throw new($"Sqlsugar connect configId: {configId.Key} Duplicate!"); } - //遍历配置 DbContext.DbConfigs?.ForEach(it => { @@ -100,7 +99,6 @@ public class Startup : AppStartup connection.DbMaintenance.CreateDatabase();//创建数据库,如果存在则不创建 }); - //兼容变量名称唯一键处理 try { @@ -115,8 +113,6 @@ public class Startup : AppStartup var fullName = Assembly.GetExecutingAssembly().FullName;//获取程序集全名 CodeFirstUtils.CodeFirst(fullName!);//CodeFirst - - //10.4.9 删除logenable try { @@ -142,7 +138,6 @@ public class Startup : AppStartup using var db = DbContext.GetDB(); if (db.CurrentConnectionConfig.DbType == SqlSugar.DbType.Sqlite) { - if (!db.DbMaintenance.IsAnyIndex("idx_backendlog_logtime_date")) { var indexsql = "CREATE INDEX idx_backendlog_logtime_date ON backend_log(strftime('%Y-%m-%d', LogTime));"; @@ -157,7 +152,6 @@ public class Startup : AppStartup using var db = DbContext.GetDB(); if (db.CurrentConnectionConfig.DbType == SqlSugar.DbType.Sqlite) { - if (!db.DbMaintenance.IsAnyIndex("idx_rpclog_logtime_date")) { var indexsql = "CREATE INDEX idx_rpclog_logtime_date ON rpc_log(strftime('%Y-%m-%d', LogTime));"; @@ -167,14 +161,8 @@ public class Startup : AppStartup } catch { } - serviceProvider.GetService().ApplicationStarted.Register(() => - { - serviceProvider.GetService().CreateLogger(nameof(ThingsGateway)).LogInformation("ThingsGateway is started..."); - }); - serviceProvider.GetService().ApplicationStopping.Register(() => - { - serviceProvider.GetService().CreateLogger(nameof(ThingsGateway)).LogInformation("ThingsGateway is stopping..."); - }); + serviceProvider.GetService().ApplicationStarted.Register(() => serviceProvider.GetService().CreateLogger(nameof(ThingsGateway)).LogInformation("ThingsGateway is started...")); + serviceProvider.GetService().ApplicationStopping.Register(() => serviceProvider.GetService().CreateLogger(nameof(ThingsGateway)).LogInformation("ThingsGateway is stopping...")); } /// /// 删除指定表上的索引(自动根据数据库类型生成正确的 DROP INDEX SQL) @@ -201,9 +189,5 @@ public class Startup : AppStartup break; } db.Ado.ExecuteCommand(dropIndexSql); - } } - - - diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/GatewayAbout.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Components/GatewayAbout.razor.cs index 49d31efa9..ec41b3bd7 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Components/GatewayAbout.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Components/GatewayAbout.razor.cs @@ -24,6 +24,4 @@ public partial class GatewayAbout [Inject] [NotNull] private IOptions? WebsiteOption { get; set; } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs index aad861f54..a14478c13 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs @@ -57,7 +57,6 @@ public partial class QuickActions #region 配置 - [Parameter] public bool AutoRestartThread { get; set; } = true; [Parameter] @@ -74,7 +73,6 @@ public partial class QuickActions private List AutoRestartThreadBoolItems; - private static async Task Restart() { await Task.Run(async () => diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/TcpServiceComponent.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Components/TcpServiceComponent.razor.cs index a9f951df8..34bc5088a 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Components/TcpServiceComponent.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Components/TcpServiceComponent.razor.cs @@ -86,4 +86,3 @@ public partial class TcpServiceComponent : IDriverUIBase public ITcpServiceChannel? TcpServiceChannel => (((DriverBase)Driver)?.Channel as ITcpServiceChannel); } - diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/USheet.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Components/USheet.razor.cs index 1d50f27e0..1d8a72bd4 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Components/USheet.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Components/USheet.razor.cs @@ -14,7 +14,6 @@ namespace ThingsGateway.Gateway.Razor; public partial class USheet { - private UniverSheet? _sheetExcel = null; private Task OnReadyAsync() => OnPushExcelData(); diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Mapper/GatewayMapper.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Mapper/GatewayMapper.cs index 47e64a11b..4964ea7b7 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Mapper/GatewayMapper.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Mapper/GatewayMapper.cs @@ -17,7 +17,4 @@ namespace ThingsGateway.Gateway.Razor; public static partial class GatewayMapper { public static partial List AdaptListTcpSessionClientDto(this List src); - } - - diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelCopyComponent.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelCopyComponent.razor.cs index b2ac01b62..8b19cc99b 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelCopyComponent.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelCopyComponent.razor.cs @@ -21,7 +21,6 @@ public partial class ChannelCopyComponent [EditorRequired] public Channel Model { get; set; } - [Parameter] [EditorRequired] public Dictionary> Devices { get; set; } @@ -73,7 +72,6 @@ public partial class ChannelCopyComponent } channels.Add(channel); - } if (OnSave != null) @@ -87,6 +85,4 @@ public partial class ChannelCopyComponent await ToastService.Warn(ex); } } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo.razor.cs index b7a452fc5..c58f34b67 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo.razor.cs @@ -14,5 +14,4 @@ public partial class ChannelRuntimeInfo { [Parameter, EditorRequired] public ChannelRuntime ChannelRuntime { get; set; } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo1.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo1.razor.cs index c154c8f2a..12e4ec9b0 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo1.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo1.razor.cs @@ -27,7 +27,6 @@ public partial class ChannelRuntimeInfo1 : IDisposable await Task.Run(() => GlobalData.ChannelThreadManage.RestartChannelAsync(ChannelRuntime)); } - protected override void OnInitialized() { _ = RunTimerAsync(); diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelTable.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelTable.razor.cs index dd5d211d0..72364d358 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelTable.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelTable.razor.cs @@ -41,7 +41,6 @@ public partial class ChannelTable : IDisposable base.OnInitialized(); } - private SmartTriggerScheduler scheduler; private IEnumerable? _previousItemsRef; protected override void OnParametersSet() @@ -102,7 +101,6 @@ public partial class ChannelTable : IDisposable #region 修改 private async Task Copy(IEnumerable channels) { - if (!channels.Any()) { await ToastService.Warning(null, RazorLocalizer["PleaseSelect"]); @@ -117,7 +115,6 @@ public partial class ChannelTable : IDisposable deviceDict = channelRuntime.ReadDeviceRuntimes.ToDictionary(a => a.Value.AdaptDevice(), a => a.Value.ReadOnlyVariableRuntimes.Select(a => a.Value).AdaptListVariable()); - var op = new DialogOption() { IsScrolling = false, @@ -132,10 +129,8 @@ public partial class ChannelTable : IDisposable { {nameof(ChannelCopyComponent.OnSave), async (List channels,Dictionary> devices) => { - await Task.Run(() =>GlobalData.ChannelRuntimeService.CopyAsync(channels,devices,AutoRestartThread, default)); await InvokeAsync(table.QueryAsync); - }}, {nameof(ChannelCopyComponent.Model),oneModel }, {nameof(ChannelCopyComponent.Devices),deviceDict }, @@ -143,13 +138,10 @@ public partial class ChannelTable : IDisposable await DialogService.Show(op); - - } private async Task BatchEdit(IEnumerable changedModels) { - var oldModel = changedModels.FirstOrDefault();//默认值显示第一个 if (oldModel == null) { @@ -177,7 +169,6 @@ public partial class ChannelTable : IDisposable await Task.Run(() => GlobalData.ChannelRuntimeService.BatchEditAsync(changedModels, oldModel, oneModel,AutoRestartThread)); await InvokeAsync(table.QueryAsync); - } }, {nameof(ChannelEditComponent.Model),oneModel }, {nameof(ChannelEditComponent.ValidateEnable),true }, @@ -186,26 +177,17 @@ public partial class ChannelTable : IDisposable await DialogService.Show(op); - - } - private async Task Delete(IEnumerable channels) { try { - return await Task.Run(async () => - { - return await GlobalData.ChannelRuntimeService.DeleteChannelAsync(channels.Select(a => a.Id), AutoRestartThread, default); - }); + return await Task.Run(async () => await GlobalData.ChannelRuntimeService.DeleteChannelAsync(channels.Select(a => a.Id), AutoRestartThread, default)); } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); return false; } } @@ -263,7 +245,6 @@ public partial class ChannelTable : IDisposable break; } - } // 返回 true 时自动弹出提示框 @@ -273,7 +254,6 @@ public partial class ChannelTable : IDisposable async Task ExcelChannelAsync(ITableExportContext tableExportContext) { - var op = new DialogOption() { IsScrolling = false, @@ -312,23 +292,17 @@ finally { await InvokeAsync( async ()=> { - await table.QueryAsync(); StateHasChanged(); }); } - - }}, {nameof(USheet.Model),uSheetDatas }, }); await DialogService.Show(op); - } - - private async Task ExcelImportAsync(ITableExportContext tableExportContext) { var op = new DialogOption() @@ -339,10 +313,7 @@ finally Title = GatewayLocalizer["ImportChannel"], ShowFooter = false, ShowCloseButton = false, - OnCloseAsync = async () => - { - await InvokeAsync(table.QueryAsync); - }, + OnCloseAsync = async () => await InvokeAsync(table.QueryAsync), }; Func>> preview = (a => GlobalData.ChannelRuntimeService.PreviewAsync(a)); @@ -353,7 +324,6 @@ finally {nameof(ImportExcel.Preview),preview }, }); await DialogService.Show(op); - } #endregion 导出 @@ -366,7 +336,6 @@ finally { await Task.Run(async () => { - await GlobalData.ChannelRuntimeService.DeleteChannelAsync(Items.Select(a => a.Id), AutoRestartThread, default); await InvokeAsync(async () => { @@ -377,12 +346,8 @@ finally } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } - } #endregion diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceHelpers.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceHelpers.cs index 0d664ceb7..df8f4de4e 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceHelpers.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceHelpers.cs @@ -12,7 +12,6 @@ namespace ThingsGateway.Gateway.Razor { internal static class ChannelDeviceHelpers { - internal static Channel GetChannelModel(ItemChangedType itemChangedType, ChannelDeviceTreeItem channelDeviceTreeItem) { Channel oneModel = null; @@ -81,8 +80,6 @@ namespace ThingsGateway.Gateway.Razor return pluginTypeEnum; } - - internal static async Task ShowCopy(Channel oneModel, Dictionary> deviceDict, string text, bool autoRestart, Func onsave, DialogService dialogService) { var op = new DialogOption() @@ -99,11 +96,9 @@ namespace ThingsGateway.Gateway.Razor { {nameof(ChannelCopyComponent.OnSave), async (List channels,Dictionary> devices) => { - await Task.Run(() =>GlobalData.ChannelRuntimeService.CopyAsync(channels,devices,autoRestart, default)); if(onsave!=null) await onsave(); - }}, {nameof(ChannelCopyComponent.Model),oneModel }, {nameof(ChannelCopyComponent.Devices),deviceDict }, @@ -115,7 +110,5 @@ namespace ThingsGateway.Gateway.Razor - - } } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceTree.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceTree.razor.cs index b08f65a2e..4e9d5ccca 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceTree.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceTree.razor.cs @@ -63,7 +63,6 @@ public partial class ChannelDeviceTree if (item.TryGetChannelRuntime(out var channelRuntime)) { return channelRuntime.DeviceThreadManage != null ? "enable--text" : "disabled--text"; - } else if (item.TryGetDeviceRuntime(out var deviceRuntime)) { @@ -92,8 +91,6 @@ public partial class ChannelDeviceTree [Inject] WinBoxService WinBoxService { get; set; } - - [Inject] [NotNull] private IGatewayExportService? GatewayExportService { get; set; } @@ -133,7 +130,6 @@ public partial class ChannelDeviceTree }); await DialogService.Show(op); - } Task CopyChannel(ContextMenuItem item, object value) @@ -143,7 +139,6 @@ public partial class ChannelDeviceTree async Task CopyChannel(string text, ChannelDeviceTreeItem channelDeviceTreeItem) { - Channel oneModel = null; Dictionary> deviceDict = new(); @@ -159,7 +154,6 @@ public partial class ChannelDeviceTree return; } - var op = new DialogOption() { IsScrolling = false, @@ -174,7 +168,6 @@ public partial class ChannelDeviceTree { {nameof(ChannelCopyComponent.OnSave), async (List channels,Dictionary> devices) => { - await Task.Run(() =>GlobalData.ChannelRuntimeService.CopyAsync(channels,devices,AutoRestartThread, default)); //await Notify(); @@ -184,8 +177,6 @@ public partial class ChannelDeviceTree }); await DialogService.Show(op); - - } Task BatchEditChannel(ContextMenuItem item, object value) @@ -214,7 +205,6 @@ public partial class ChannelDeviceTree oldModel = models.FirstOrDefault(); changedModels = models; oneModel = oldModel.AdaptChannel(); - } else if (channelDeviceTreeItem.TryGetPluginType(out var pluginType)) { @@ -225,8 +215,6 @@ public partial class ChannelDeviceTree oldModel = models.FirstOrDefault(); changedModels = models; oneModel = oldModel.AdaptChannel(); - - } else { @@ -253,12 +241,7 @@ public partial class ChannelDeviceTree await Task.Run(() => GlobalData.ChannelRuntimeService.BatchEditAsync(changedModels, oldModel, oneModel,AutoRestartThread)); //await Notify(); - await InvokeAsync(() => - { - - Spinner.SetRun(false); - }); - + await InvokeAsync(() => Spinner.SetRun(false)); } }, {nameof(ChannelEditComponent.Model),oneModel }, {nameof(ChannelEditComponent.ValidateEnable),true }, @@ -266,8 +249,6 @@ public partial class ChannelDeviceTree }); await DialogService.Show(op); - - } Task ExcelChannel(ContextMenuItem item, object value) @@ -276,7 +257,6 @@ public partial class ChannelDeviceTree } async Task ExcelChannel(string text) { - var op = new DialogOption() { IsScrolling = false, @@ -308,20 +288,13 @@ public partial class ChannelDeviceTree finally { //await Notify(); - await InvokeAsync( ()=> - { - - Spinner.SetRun(false); - }); + await InvokeAsync( ()=> Spinner.SetRun(false)); } - - }}, {nameof(USheet.Model),uSheetDatas }, }); await DialogService.Show(op); - } Task DeleteChannel(ContextMenuItem item, object value) @@ -367,7 +340,6 @@ finally builder.CloseElement(); }); - } await DialogService.Show(op); @@ -385,7 +357,6 @@ finally //插件名称 var data = await GlobalData.GetCurrentUserChannels().ConfigureAwait(false); modelIds = data.Where(a => a.PluginName == pluginName); - } else if (channelDeviceTreeItem.TryGetPluginType(out var pluginType)) { @@ -393,19 +364,16 @@ finally var data = await GlobalData.GetCurrentUserChannels().ConfigureAwait(false); modelIds = data.Where(a => a.PluginType == pluginType); - } else { return; - } try { var op = new SwalOption() { - Title = GatewayLocalizer["DeleteConfirmTitle"], BodyTemplate = (__builder) => { @@ -424,26 +392,17 @@ finally var ret = await SwalService.ShowModal(op); if (ret) { - Spinner.SetRun(true); await Task.Run(() => GlobalData.ChannelRuntimeService.DeleteChannelAsync(modelIds.Select(a => a.Id), AutoRestartThread, default)); //await Notify(); - await InvokeAsync(() => - { - Spinner.SetRun(false); - }); + await InvokeAsync(() => Spinner.SetRun(false)); } - } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } - } async Task DeleteAllChannel() { @@ -473,21 +432,13 @@ finally var key = await GlobalData.GetCurrentUserChannels().ConfigureAwait(false); await Task.Run(() => GlobalData.ChannelRuntimeService.DeleteChannelAsync(key.Select(a => a.Id), AutoRestartThread, default)); //await Notify(); - await InvokeAsync(() => - { - Spinner.SetRun(false); - }); + await InvokeAsync(() => Spinner.SetRun(false)); } - } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } - } Task ExportChannel(ContextMenuItem item, object value) @@ -533,7 +484,6 @@ EventCallback.Factory.Create(this, async e => builder.CloseElement(); }); - } await DialogService.Show(op); @@ -574,7 +524,6 @@ EventCallback.Factory.Create(this, async e => await ToastService.Default(); } - Task ImportChannel(ContextMenuItem item, object value) { return ImportChannel(item.Text); @@ -599,18 +548,10 @@ EventCallback.Factory.Create(this, async e => Func>> preview = (a => GlobalData.ChannelRuntimeService.PreviewAsync(a)); Func, Task> import = (async value => { - await InvokeAsync(() => - { - Spinner.SetRun(true); - - }); + await InvokeAsync(() => Spinner.SetRun(true)); await Task.Run(() => GlobalData.ChannelRuntimeService.ImportChannelAsync(value, AutoRestartThread)); //await Notify(); - await InvokeAsync(() => - { - Spinner.SetRun(false); - }); - + await InvokeAsync(() => Spinner.SetRun(false)); }); op.Component = BootstrapDynamicComponent.CreateComponent(new Dictionary { @@ -622,7 +563,6 @@ EventCallback.Factory.Create(this, async e => //await InvokeAsync(table.QueryAsync); } - #endregion #region 设备 @@ -658,7 +598,6 @@ EventCallback.Factory.Create(this, async e => { {nameof(DeviceCopyComponent.OnSave), async (Dictionary> devices) => { - await Task.Run(() =>GlobalData.DeviceRuntimeService.CopyAsync(devices,AutoRestartThread, default)); //await Notify(); @@ -668,10 +607,8 @@ EventCallback.Factory.Create(this, async e => }); await DialogService.Show(op); - } - Task EditDevice(ContextMenuItem item, object value, ItemChangedType itemChangedType) { return EditDevice(item.Text, value as ChannelDeviceTreeItem, itemChangedType); @@ -722,12 +659,10 @@ EventCallback.Factory.Create(this, async e => }); await DialogService.Show(op); - } async Task BatchEditDevice(ContextMenuItem item, object value) { - var op = new DialogOption() { IsScrolling = true, @@ -768,7 +703,6 @@ EventCallback.Factory.Create(this, async e => oldModel = models.FirstOrDefault(); changedModels = models; oneModel = oldModel.AdaptDevice(); - } else if (channelDeviceTreeItem.TryGetPluginType(out var pluginType)) { @@ -779,8 +713,6 @@ EventCallback.Factory.Create(this, async e => oldModel = models.FirstOrDefault(); changedModels = models; oneModel = oldModel.AdaptDevice(); - - } else { @@ -793,17 +725,10 @@ EventCallback.Factory.Create(this, async e => { {nameof(DeviceEditComponent.OnValidSubmit), async () => { - await InvokeAsync( () => - { - Spinner.SetRun(true); - - }); + await InvokeAsync( () => Spinner.SetRun(true)); await Task.Run(() =>GlobalData.DeviceRuntimeService.BatchEditAsync(changedModels,oldModel,oneModel,AutoRestartThread)); //await Notify(); - await InvokeAsync(() => - { - Spinner.SetRun(false); - }); + await InvokeAsync(() => Spinner.SetRun(false)); }}, {nameof(DeviceEditComponent.Model),oneModel }, {nameof(DeviceEditComponent.AutoRestartThread),AutoRestartThread }, @@ -812,12 +737,10 @@ EventCallback.Factory.Create(this, async e => }); await DialogService.Show(op); - } async Task ExcelDevice(ContextMenuItem item, object value) { - var op = new DialogOption() { IsScrolling = false, @@ -849,23 +772,15 @@ EventCallback.Factory.Create(this, async e => finally { //await Notify(); - await InvokeAsync( ()=> - { - - Spinner.SetRun(false); - }); + await InvokeAsync( ()=> Spinner.SetRun(false)); } - - }}, {nameof(USheet.Model),uSheetDatas }, }); await DialogService.Show(op); - } - Task DeleteDevice(ContextMenuItem item, object value) { return DeleteDevice(value as ChannelDeviceTreeItem); @@ -910,13 +825,11 @@ EventCallback.Factory.Create(this, async e => builder.CloseElement(); }); - } await DialogService.Show(op); } - async Task DeleteCurrentDevice(ChannelDeviceTreeItem channelDeviceTreeItem) { IEnumerable modelIds = null; @@ -935,7 +848,6 @@ EventCallback.Factory.Create(this, async e => //插件名称 var data = await GlobalData.GetCurrentUserDevices().ConfigureAwait(false); modelIds = data.Where(a => a.PluginName == pluginName); - } else if (channelDeviceTreeItem.TryGetPluginType(out var pluginType)) { @@ -946,7 +858,6 @@ EventCallback.Factory.Create(this, async e => else { return; - } try @@ -971,26 +882,17 @@ EventCallback.Factory.Create(this, async e => var ret = await SwalService.ShowModal(op); if (ret) { - Spinner.SetRun(true); await Task.Run(() => GlobalData.DeviceRuntimeService.DeleteDeviceAsync(modelIds.Select(a => a.Id), AutoRestartThread, default)); //await Notify(); - await InvokeAsync(() => - { - Spinner.SetRun(false); - }); + await InvokeAsync(() => Spinner.SetRun(false)); } - } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } - } async Task DeleteAllDevice() @@ -1016,31 +918,21 @@ EventCallback.Factory.Create(this, async e => var ret = await SwalService.ShowModal(op); if (ret) { - Spinner.SetRun(true); var data = await GlobalData.GetCurrentUserDevices().ConfigureAwait(false); await Task.Run(() => GlobalData.DeviceRuntimeService.DeleteDeviceAsync(data.Select(a => a.Id), AutoRestartThread, default)); //await Notify(); - await InvokeAsync(() => - { - Spinner.SetRun(false); - }); + await InvokeAsync(() => Spinner.SetRun(false)); } - } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } - } - async Task ExportDevice(ContextMenuItem item, object value) { var op = new DialogOption(); @@ -1080,13 +972,11 @@ EventCallback.Factory.Create(this, async e => builder.CloseElement(); }); - } await DialogService.Show(op); } - async Task ExportCurrentDevice(ContextMenuItem item, object value) { bool ret; @@ -1139,29 +1029,17 @@ EventCallback.Factory.Create(this, async e => Title = item.Text, ShowFooter = false, ShowCloseButton = false, - OnCloseAsync = async () => - { - await InvokeAsync(StateHasChanged); - }, + OnCloseAsync = async () => await InvokeAsync(StateHasChanged), }; Func>> preview = (a => GlobalData.DeviceRuntimeService.PreviewAsync(a)); Func, Task> import = (async value => { - await InvokeAsync(() => - { - - Spinner.SetRun(true); - - }); + await InvokeAsync(() => Spinner.SetRun(true)); await Task.Run(() => GlobalData.DeviceRuntimeService.ImportDeviceAsync(value, AutoRestartThread)); //await Notify(); - await InvokeAsync(() => - { - Spinner.SetRun(false); - }); - + await InvokeAsync(() => Spinner.SetRun(false)); }); op.Component = BootstrapDynamicComponent.CreateComponent(new Dictionary { @@ -1173,11 +1051,8 @@ EventCallback.Factory.Create(this, async e => //await InvokeAsync(table.QueryAsync); } - #endregion - - [Inject] SwalService SwalService { get; set; } [Inject] @@ -1219,12 +1094,10 @@ EventCallback.Factory.Create(this, async e => { Value = item.Value; } - } private List> ZItem; - private ChannelDeviceTreeItem CollectItem = new() { ChannelDevicePluginType = ChannelDevicePluginTypeEnum.PluginType, PluginType = PluginTypeEnum.Collect }; private ChannelDeviceTreeItem BusinessItem = new() { ChannelDevicePluginType = ChannelDevicePluginTypeEnum.PluginType, PluginType = PluginTypeEnum.Business }; private ChannelDeviceTreeItem UnknownItem = new() { ChannelDevicePluginType = ChannelDevicePluginTypeEnum.PluginType, PluginType = null }; @@ -1234,8 +1107,6 @@ EventCallback.Factory.Create(this, async e => SmartTriggerScheduler? scheduler; protected override async Task OnInitializedAsync() { - - UnknownTreeViewItem = new TreeViewItem(UnknownItem) { Text = GatewayLocalizer["Unknown"], @@ -1265,13 +1136,11 @@ EventCallback.Factory.Create(this, async e => UnknownTreeViewItem.Items = item2; if (ZItem.Count >= 3) { - } else { ZItem.Add(UnknownTreeViewItem); } - } else { @@ -1296,7 +1165,6 @@ EventCallback.Factory.Create(this, async e => } catch { - } finally { @@ -1308,7 +1176,6 @@ EventCallback.Factory.Create(this, async e => await base.OnInitializedAsync(); } - private async Task Notify(CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) return; @@ -1321,8 +1188,6 @@ EventCallback.Factory.Create(this, async e => await ChannelDeviceChanged.Invoke(Value); } await InvokeAsync(StateHasChanged); - - } private static ChannelDeviceTreeItem GetValue(ChannelDeviceTreeItem channelDeviceTreeItem) @@ -1349,8 +1214,6 @@ EventCallback.Factory.Create(this, async e => } } - - private Task Refresh(DispatchEntry entry) { scheduler.Trigger(); @@ -1380,13 +1243,11 @@ EventCallback.Factory.Create(this, async e => UnknownTreeViewItem.Items = item2; if (ZItem.Count >= 3) { - } else { ZItem.Add(UnknownTreeViewItem); } - } else { @@ -1416,7 +1277,6 @@ EventCallback.Factory.Create(this, async e => businessChannelDevices.Add(item, new()); else otherChannelDevices.Add(item, new()); - } foreach (var item in deviceItems.Where(a => a.IsCollect == true)) { @@ -1460,13 +1320,11 @@ EventCallback.Factory.Create(this, async e => UnknownTreeViewItem.Items = item2; if (ZItem.Count >= 3) { - } else { ZItem.Add(UnknownTreeViewItem); } - } else { @@ -1479,7 +1337,6 @@ EventCallback.Factory.Create(this, async e => Items = ZItem.AdaptListTreeViewItemChannelDeviceTreeItem(); return Items; } - } private static bool ModelEqualityComparer(ChannelDeviceTreeItem x, ChannelDeviceTreeItem y) @@ -1523,5 +1380,4 @@ EventCallback.Factory.Create(this, async e => } return Task.CompletedTask; } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceTreeItem.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceTreeItem.cs index 38b6a8aec..42bc05182 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceTreeItem.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/ChannelDeviceTreeItem.cs @@ -18,15 +18,11 @@ public enum ChannelDevicePluginTypeEnum } public class ChannelDeviceTreeItem : IEqualityComparer { - public long Id { get; set; } public ChannelDevicePluginTypeEnum ChannelDevicePluginType { get; set; } - - public long DeviceRuntimeId { get; set; } - public long ChannelRuntimeId { get; set; } public string PluginName { get; set; } public PluginTypeEnum? PluginType { get; set; } @@ -53,7 +49,6 @@ public class ChannelDeviceTreeItem : IEqualityComparer } } return false; - } public override int GetHashCode() @@ -114,7 +109,6 @@ public class ChannelDeviceTreeItem : IEqualityComparer return false; } - public override string ToString() { if (ChannelDevicePluginType == ChannelDevicePluginTypeEnum.Device) diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceCopyComponent.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceCopyComponent.razor.cs index 85298df54..2191688c3 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceCopyComponent.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceCopyComponent.razor.cs @@ -21,7 +21,6 @@ public partial class DeviceCopyComponent [EditorRequired] public Device Model { get; set; } - [Parameter] [EditorRequired] public List Variables { get; set; } @@ -71,6 +70,4 @@ public partial class DeviceCopyComponent await ToastService.Warn(ex); } } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceEditComponent.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceEditComponent.razor.cs index 4ee6a5832..beedc1aaf 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceEditComponent.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceEditComponent.razor.cs @@ -154,6 +154,4 @@ public partial class DeviceEditComponent await ToastService.Warn(ex); } } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceRuntimeInfo.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceRuntimeInfo.razor.cs index 539d3f755..2beda43b4 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceRuntimeInfo.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceRuntimeInfo.razor.cs @@ -14,5 +14,4 @@ public partial class DeviceRuntimeInfo { [Parameter, EditorRequired] public DeviceRuntime DeviceRuntime { get; set; } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceRuntimeInfo1.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceRuntimeInfo1.razor.cs index 4da68931c..0586d2d30 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceRuntimeInfo1.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceRuntimeInfo1.razor.cs @@ -32,8 +32,6 @@ public partial class DeviceRuntimeInfo1 : IDisposable base.OnParametersSet(); } - - private async Task ShowDriverUI() { var driver = DeviceRuntime.Driver?.DriverUIType; @@ -86,10 +84,7 @@ public partial class DeviceRuntimeInfo1 : IDisposable try { OnParametersSet(); - await InvokeAsync(() => - { - StateHasChanged(); - }); + await InvokeAsync(() => StateHasChanged()); } catch (Exception ex) { diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceTable.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceTable.razor.cs index f71d8d975..71ca2ed99 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceTable.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/DeviceTable.razor.cs @@ -102,7 +102,6 @@ public partial class DeviceTable : IDisposable #region 修改 private async Task Copy(IEnumerable devices) { - if (!devices.Any()) { await ToastService.Warning(null, RazorLocalizer["PleaseSelect"]); @@ -117,7 +116,6 @@ public partial class DeviceTable : IDisposable variables = deviceRuntime.ReadOnlyVariableRuntimes.Select(a => a.Value).AdaptListVariable(); - var op = new DialogOption() { IsScrolling = false, @@ -132,10 +130,8 @@ public partial class DeviceTable : IDisposable { {nameof(DeviceCopyComponent.OnSave), async (Dictionary> devices) => { - await Task.Run(() =>GlobalData.DeviceRuntimeService.CopyAsync(devices,AutoRestartThread, default)); await InvokeAsync(table.QueryAsync); - }}, {nameof(DeviceCopyComponent.Model),oneModel }, {nameof(DeviceCopyComponent.Variables),variables }, @@ -143,8 +139,6 @@ public partial class DeviceTable : IDisposable await DialogService.Show(op); - - } private async Task BatchEdit(IEnumerable changedModels) @@ -176,7 +170,6 @@ public partial class DeviceTable : IDisposable await Task.Run(() => GlobalData.DeviceRuntimeService.BatchEditAsync(changedModels, oldModel, oneModel,AutoRestartThread)); await InvokeAsync(table.QueryAsync); - } }, {nameof(DeviceEditComponent.Model),oneModel }, {nameof(DeviceEditComponent.ValidateEnable),true }, @@ -185,26 +178,17 @@ public partial class DeviceTable : IDisposable await DialogService.Show(op); - - } - private async Task Delete(IEnumerable devices) { try { - return await Task.Run(async () => - { - return await GlobalData.DeviceRuntimeService.DeleteDeviceAsync(devices.Select(a => a.Id), AutoRestartThread, default); - }); + return await Task.Run(async () => await GlobalData.DeviceRuntimeService.DeleteDeviceAsync(devices.Select(a => a.Id), AutoRestartThread, default)); } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); return false; } } @@ -231,7 +215,6 @@ public partial class DeviceTable : IDisposable return Task.FromResult(ChannelDeviceHelpers.GetDeviceModel(ItemChangedType.Add, SelectModel).AdaptDeviceRuntime()); } - #region 导出 [Inject] @@ -264,7 +247,6 @@ public partial class DeviceTable : IDisposable break; } - } // 返回 true 时自动弹出提示框 @@ -274,7 +256,6 @@ public partial class DeviceTable : IDisposable async Task ExcelDeviceAsync(ITableExportContext tableExportContext) { - var op = new DialogOption() { IsScrolling = false, @@ -313,23 +294,17 @@ finally { await InvokeAsync( async ()=> { - await table.QueryAsync(); StateHasChanged(); }); } - - }}, {nameof(USheet.Model),uSheetDatas }, }); await DialogService.Show(op); - } - - private async Task ExcelImportAsync(ITableExportContext tableExportContext) { var op = new DialogOption() @@ -340,10 +315,7 @@ finally Title = GatewayLocalizer["ImportDevice"], ShowFooter = false, ShowCloseButton = false, - OnCloseAsync = async () => - { - await InvokeAsync(table.QueryAsync); - }, + OnCloseAsync = async () => await InvokeAsync(table.QueryAsync), }; Func>> preview = (a => GlobalData.DeviceRuntimeService.PreviewAsync(a)); @@ -354,7 +326,6 @@ finally {nameof(ImportExcel.Preview),preview }, }); await DialogService.Show(op); - } #endregion 导出 @@ -367,7 +338,6 @@ finally { await Task.Run(async () => { - await GlobalData.DeviceRuntimeService.DeleteDeviceAsync(Items.Select(a => a.Id), AutoRestartThread, default); await InvokeAsync(async () => { @@ -378,12 +348,8 @@ finally } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } - } #endregion diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/PropertyComponent.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/PropertyComponent.razor.cs index 17a12a614..6aaeba863 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/PropertyComponent.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/PropertyComponent.razor.cs @@ -44,7 +44,6 @@ public partial class PropertyComponent : IPropertyUIBase else if (pname == nameof(BusinessPropertyWithCacheIntervalScript.BigTextScriptVariableModel)) { script = businessProperty.BigTextScriptVariableModel; - } else if (pname == nameof(BusinessPropertyWithCacheIntervalScript.BigTextScriptDeviceModel)) { @@ -90,6 +89,7 @@ public partial class PropertyComponent : IPropertyUIBase { public IEnumerable GetList(IEnumerable datas) { + if(datas==null) return null; List deviceObjs = new List(); foreach (var v in datas) { @@ -129,7 +129,7 @@ public partial class PropertyComponent : IPropertyUIBase { public IEnumerable GetList(IEnumerable datas) { - + if(datas==null) return null; List deviceObjs = new List(); //按设备名称分组 var groups = datas.Where(a => !string.IsNullOrEmpty(((VariableBasicData)a).DeviceName)).GroupBy(a => ((VariableBasicData)a).DeviceName, a => ((VariableBasicData)a)); @@ -174,7 +174,7 @@ public partial class PropertyComponent : IPropertyUIBase { public IEnumerable GetList(IEnumerable datas) { - + if(datas==null) return null; List deviceObjs = new List(); //按设备名称分组 var groups = datas.Where(a => !string.IsNullOrEmpty(((AlarmVariable)a).DeviceName)).GroupBy(a => ((AlarmVariable)a).DeviceName, a => ((AlarmVariable)a)); @@ -223,7 +223,6 @@ public partial class PropertyComponent : IPropertyUIBase if (pname == nameof(BusinessPropertyWithCacheIntervalScript.BigTextScriptAlarmModel)) { businessProperty.BigTextScriptAlarmModel=v; - } else if (pname == nameof(BusinessPropertyWithCacheIntervalScript.BigTextScriptVariableModel)) { @@ -233,19 +232,11 @@ public partial class PropertyComponent : IPropertyUIBase { businessProperty.BigTextScriptDeviceModel=v; } - }) }, - }); await dialogService.Show(op); - } - [Inject] private DialogService DialogService { get; set; } } - - - - diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/ScriptCheck.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/ScriptCheck.razor.cs index 7f18e5158..4f1505c3d 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/ScriptCheck.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Device/ScriptCheck.razor.cs @@ -25,7 +25,6 @@ public partial class ScriptCheck Script = script; if (ScriptChanged.HasDelegate) await ScriptChanged.InvokeAsync(script); - } [Parameter] @@ -35,19 +34,15 @@ public partial class ScriptCheck { try { - if (GetResult != null) { Output = await GetResult(Input, Script).ConfigureAwait(false); } - } - catch (Exception ex) { Output = ex.ToString(); } - } [Inject] private IStringLocalizer Localizer { get; set; } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/GatewayInfo.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/GatewayInfo.razor.cs index d01a4040e..ac75f95dd 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/GatewayInfo.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/GatewayInfo.razor.cs @@ -31,5 +31,4 @@ public partial class GatewayInfo public ShowTypeEnum? ShowType { get; set; } [Parameter] public bool AutoRestartThread { get; set; } = true; - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/GatewayMonitorPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/GatewayMonitorPage.razor.cs index 2b7013dfb..a5b29a816 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/GatewayMonitorPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/GatewayMonitorPage.razor.cs @@ -16,7 +16,6 @@ public partial class GatewayMonitorPage #region 查询 - private async Task TreeChangedAsync(ChannelDeviceTreeItem channelDeviceTreeItem) { ShowChannelRuntime = 0; @@ -67,7 +66,6 @@ public partial class GatewayMonitorPage VariableRuntimes = channels.Where(a => a.PluginName == pluginName).SelectMany(a => a.ReadDeviceRuntimes).Where(a => a.Value.Driver?.IdVariableRuntimes != null).SelectMany(a => a.Value.Driver?.IdVariableRuntimes).Select(a => a.Value); } - ChannelRuntimes = channels.Where(a => a.PluginName == pluginName); DeviceRuntimes = devices.Where(a => a.PluginName == pluginName); } @@ -86,7 +84,6 @@ public partial class GatewayMonitorPage { ChannelRuntimes = channels; DeviceRuntimes = devices; - } } } @@ -105,11 +102,8 @@ public partial class GatewayMonitorPage public IEnumerable ChannelRuntimes { get; set; } = Enumerable.Empty(); public IEnumerable DeviceRuntimes { get; set; } = Enumerable.Empty(); - private long ShowChannelRuntime { get; set; } private long ShowDeviceRuntime { get; set; } public ShowTypeEnum? ShowType { get; set; } private bool AutoRestartThread { get; set; } = true; - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/ValueTransformConfig.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/ValueTransformConfig.cs index f1f841e22..7634649a3 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/ValueTransformConfig.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/ValueTransformConfig.cs @@ -17,7 +17,6 @@ public class ValueTransformConfig /// public int DecimalPlaces { get; set; } = 2; - /// /// 限制范围 /// @@ -41,8 +40,6 @@ public class ValueTransformConfig /// 实际高 /// public decimal ActualMax { get; set; } - - } public enum ValueTransformType diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/ValueTransformConfigPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/ValueTransformConfigPage.razor.cs index 8247734c6..9279b919c 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/ValueTransformConfigPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/ValueTransformConfigPage.razor.cs @@ -27,7 +27,6 @@ public partial class ValueTransformConfigPage [Parameter] public string Expressions { get; set; } - [Parameter] public EventCallback ExpressionsChanged { get; set; } @@ -167,8 +166,6 @@ public partial class ValueTransformConfigPage } } - - protected override void OnParametersSet() { if (!Expressions.IsNullOrWhiteSpace()) @@ -185,8 +182,6 @@ public partial class ValueTransformConfigPage [CascadingParameter] private Func? OnCloseAsync { get; set; } - - private async Task OnSave(EditContext editContext) { try diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableCopyComponent.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableCopyComponent.razor.cs index 5467436b6..8758893e4 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableCopyComponent.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableCopyComponent.razor.cs @@ -47,7 +47,6 @@ public partial class VariableCopyComponent item.Name = $"{CopyVariableNamePrefix}{CopyVariableNameSuffixNumber + i}"; variables.Add(item); } - } if (OnSave != null) @@ -61,6 +60,4 @@ public partial class VariableCopyComponent await ToastService.Warn(ex); } } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableEditComponent.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableEditComponent.razor.cs index eaf55352f..e5c0b6df2 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableEditComponent.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableEditComponent.razor.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.Gateway.Razor; public partial class VariableEditComponent { - /// /// IntFormatter /// @@ -68,7 +67,6 @@ public partial class VariableEditComponent [Parameter] public Func OnValidSubmit { get; set; } - [Parameter] public bool ValidateEnable { get; set; } @@ -135,7 +133,6 @@ public partial class VariableEditComponent private async Task ShowAddressUI() { - if (AddressUIType != null) { AddressDynamicComponent = new BootstrapDynamicComponent(AddressUIType, new Dictionary @@ -143,10 +140,7 @@ public partial class VariableEditComponent [nameof(IAddressUIBase.Model)] = Model.RegisterAddress, [nameof(IAddressUIBase.ModelChanged)] = - (string address) => - { - Model.RegisterAddress = address; - } + (string address) => Model.RegisterAddress = address }); } else diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableRuntimeInfo.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableRuntimeInfo.razor.cs index 42ce90f2e..4b4c9238e 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableRuntimeInfo.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableRuntimeInfo.razor.cs @@ -20,7 +20,6 @@ namespace ThingsGateway.Gateway.Razor; public partial class VariableRuntimeInfo : IDisposable { - private static void BeforeShowEditDialogCallback(ITableEditDialogOption tableEditDialogOption) { tableEditDialogOption.Model = tableEditDialogOption.Model.AdaptVariableRuntime(); @@ -77,7 +76,6 @@ public partial class VariableRuntimeInfo : IDisposable private IDispatchService VariableRuntimeDispatchService { get; set; } private SmartTriggerScheduler scheduler; - private Task Refresh(DispatchEntry entry) { scheduler.Trigger(); @@ -92,7 +90,6 @@ public partial class VariableRuntimeInfo : IDisposable await InvokeAsync(table.QueryAsync); } - private async Task RunTimerAsync() { while (!Disposed) @@ -155,11 +152,8 @@ public partial class VariableRuntimeInfo : IDisposable #endregion 写入变量 - - #region 编辑 - private int TestVariableCount { get; set; } private int TestDeviceCount { get; set; } @@ -187,16 +181,13 @@ public partial class VariableRuntimeInfo : IDisposable { {nameof(VariableCopyComponent.OnSave), async (List variables1) => { - await Task.Run(() =>GlobalData.VariableRuntimeService.BatchSaveVariableAsync(variables1,ItemChangedType.Add,AutoRestartThread,default)); await InvokeAsync(table.QueryAsync); - }}, {nameof(VariableCopyComponent.Model),variables }, }); await DialogService.Show(op); - } private async Task BatchEdit(IEnumerable variables) @@ -235,23 +226,15 @@ public partial class VariableRuntimeInfo : IDisposable await DialogService.Show(op); } - private async Task Delete(IEnumerable variables) { try { - return await Task.Run(async () => - { - return await GlobalData.VariableRuntimeService.DeleteVariableAsync(variables.Select(a => a.Id), AutoRestartThread, default); - }); - + return await Task.Run(async () => await GlobalData.VariableRuntimeService.DeleteVariableAsync(variables.Select(a => a.Id), AutoRestartThread, default)); } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); return false; } } @@ -323,7 +306,6 @@ public partial class VariableRuntimeInfo : IDisposable break; } - } // 返回 true 时自动弹出提示框 @@ -333,7 +315,6 @@ public partial class VariableRuntimeInfo : IDisposable async Task ExcelVariableAsync(ITableExportContext tableExportContext) { - var op = new DialogOption() { IsScrolling = false, @@ -369,23 +350,17 @@ finally { await InvokeAsync( async ()=> { - await table.QueryAsync(); StateHasChanged(); }); } - - }}, {nameof(USheet.Model),uSheetDatas }, }); await DialogService.Show(op); - } - - private async Task ExcelImportAsync(ITableExportContext tableExportContext) { var op = new DialogOption() @@ -396,10 +371,7 @@ finally Title = GatewayLocalizer["ImportVariable"], ShowFooter = false, ShowCloseButton = false, - OnCloseAsync = async () => - { - await InvokeAsync(table.QueryAsync); - }, + OnCloseAsync = async () => await InvokeAsync(table.QueryAsync), }; Func>> preview = (a => GlobalData.VariableRuntimeService.PreviewAsync(a)); @@ -410,7 +382,6 @@ finally {nameof(ImportExcel.Preview),preview }, }); await DialogService.Show(op); - } #endregion 导出 @@ -423,7 +394,6 @@ finally { await Task.Run(async () => { - await GlobalData.VariableRuntimeService.ClearVariableAsync(AutoRestartThread, default); await InvokeAsync(async () => { @@ -434,12 +404,8 @@ finally } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } - } #endregion @@ -447,7 +413,6 @@ finally { try { - try { await Task.Run(() => GlobalData.VariableRuntimeService.InsertTestDataAsync(TestVariableCount, TestDeviceCount, SlaveUrl, BusinessEnable, AutoRestartThread, default)); @@ -461,16 +426,11 @@ finally StateHasChanged(); }); } - } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } - } [Parameter] diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/LogPage/BackendLogPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/LogPage/BackendLogPage.razor.cs index c66c2fc8a..c0909d0ed 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/LogPage/BackendLogPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/LogPage/BackendLogPage.razor.cs @@ -82,7 +82,6 @@ public partial class BackendLogPage var data = await BackendLogService.PageAsync(options); return data; }); - } #endregion 查询 diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/LogPage/RpcLogPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/LogPage/RpcLogPage.razor.cs index 9c72ff201..6cac8a6e7 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/LogPage/RpcLogPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/LogPage/RpcLogPage.razor.cs @@ -68,7 +68,6 @@ public partial class RpcLogPage var data = await RpcLogService.PageAsync(options); return data; }); - } #endregion 查询 diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/Authentication.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/Authentication.razor.cs index 7833b798a..5f28a0fb2 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/Authentication.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/Authentication.razor.cs @@ -60,5 +60,4 @@ public partial class Authentication await InvokeAsync(StateHasChanged); } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/RedundancyOptionsHeader.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/RedundancyOptionsHeader.razor.cs index 1f610fe96..2f280673c 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/RedundancyOptionsHeader.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/RedundancyOptionsHeader.razor.cs @@ -8,14 +8,11 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - #pragma warning disable CA2007 // 考虑对等待的任务调用 ConfigureAwait namespace ThingsGateway.Management; public partial class RedundancyOptionsHeader : IDisposable { - - [Inject] [NotNull] private IStringLocalizer? RedundancyLocalizer { get; set; } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/RedundancyOptionsPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/RedundancyOptionsPage.razor.cs index 6352b9149..a92f29db0 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/RedundancyOptionsPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/RedundancyOptionsPage.razor.cs @@ -18,7 +18,6 @@ namespace ThingsGateway.Management; public partial class RedundancyOptionsPage { - [Inject] [NotNull] private IStringLocalizer? RedundancyLocalizer { get; set; } @@ -70,7 +69,6 @@ public partial class RedundancyOptionsPage }); if (ret) { - await RedundancyService.EditRedundancyOptionAsync(Model); await ToastService.Success(RedundancyLocalizer[nameof(RedundancyOptions)], $"{RazorLocalizer["Save"]}{RazorLocalizer["Success"]}"); @@ -78,11 +76,8 @@ public partial class RedundancyOptionsPage await RedundancyHostedService.StartTaskAsync(CancellationToken.None); await ToastService.Success(RedundancyLocalizer[nameof(RedundancyOptions)], $"{RazorLocalizer["Success"]}"); - - await InvokeAsync(StateHasChanged); } - } catch (Exception ex) { @@ -90,7 +85,6 @@ public partial class RedundancyOptionsPage } } - private async Task ForcedSync(MouseEventArgs args) { var ret = await SwalService.ShowModal(new SwalOption() diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/SystemConfigPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/SystemConfigPage.razor.cs index 2fafe74c3..be541e35d 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/SystemConfigPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/SystemConfigPage.razor.cs @@ -15,7 +15,6 @@ namespace ThingsGateway.Management; public partial class SystemConfigPage { - [Inject] [NotNull] private IStringLocalizer? RedundancyLocalizer { get; set; } @@ -63,9 +62,7 @@ public partial class SystemConfigPage } } - [Parameter] [SupplyParameterFromQuery] public int? Tab { get; set; } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/UpdateZipFileInfo.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/UpdateZipFileInfo.razor.cs index 5d53ca080..683ef8f65 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/UpdateZipFileInfo.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/UpdateZipFileInfo.razor.cs @@ -18,7 +18,6 @@ namespace ThingsGateway.Upgrade; /// public partial class UpdateZipFileInfo { - [Parameter] public string ClassString { get; set; } @@ -80,6 +79,4 @@ public partial class UpdateZipFileInfo } }); } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/UpdateZipFilePage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/UpdateZipFilePage.razor.cs index 6a25259bf..3a8dc8d0f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/UpdateZipFilePage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Management/UpdateZipFilePage.razor.cs @@ -8,7 +8,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - #pragma warning disable CA2007 // 考虑对等待的任务调用 ConfigureAwait using ThingsGateway.Management; @@ -40,7 +39,6 @@ public partial class UpdateZipFilePage { return new QueryData(); } - } #endregion 查询 @@ -61,12 +59,9 @@ public partial class UpdateZipFilePage [nameof(UpdateZipFileInfo.Logger)] = UpdateZipFileHostedService.TextLogger, [nameof(UpdateZipFileInfo.LogPath)] = UpdateZipFileHostedService.LogPath, [nameof(UpdateZipFileInfo.Model)] = updateZipFile, - }).Render(), }; await DialogService.Show(op); } - - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/PluginPage/PluginDebugPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/PluginPage/PluginDebugPage.razor.cs index dc3d14767..59b391431 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/PluginPage/PluginDebugPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/PluginPage/PluginDebugPage.razor.cs @@ -111,7 +111,6 @@ public partial class PluginDebugPage }; await WinBoxService.Show(option); } - } } @@ -131,7 +130,6 @@ public partial class PluginDebugPage }); } } - } private TreeViewItem active; diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/PluginPage/PluginPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/PluginPage/PluginPage.razor.cs index 93f314b12..d6d8e3383 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/PluginPage/PluginPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/PluginPage/PluginPage.razor.cs @@ -65,10 +65,7 @@ public partial class PluginPage Title = PluginAddInputLoaclozer["SavePlugin"], ShowFooter = false, ShowCloseButton = false, - OnCloseAsync = async () => - { - await InvokeAsync(table.QueryAsync); - }, + OnCloseAsync = async () => await InvokeAsync(table.QueryAsync), }; op.Component = BootstrapDynamicComponent.CreateComponent(new Dictionary { diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/Component/CSharpScriptWidget.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/Component/CSharpScriptWidget.razor.cs index 2d0326d98..ab4ff3eb5 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/Component/CSharpScriptWidget.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/Component/CSharpScriptWidget.razor.cs @@ -23,10 +23,8 @@ namespace ThingsGateway.Gateway.Razor [Parameter] public TextNode Node { get; set; } - private async Task CheckScript() { - var op = new DialogOption() { IsScrolling = true, @@ -40,7 +38,6 @@ namespace ThingsGateway.Gateway.Razor op.Component = BootstrapDynamicComponent.CreateComponent(new Dictionary { {nameof(ScriptEdit.OnCheckScript), new Func>(async a=>{ - if(Node is IConditionNode conditionNode) return (await conditionNode.ExecuteAsync(new NodeInput(){Value=a==null?a:JToken.Parse(a??string.Empty) },default).ConfigureAwait(false)).ToString(); if(Node is IExpressionNode expressionNode) @@ -58,15 +55,9 @@ namespace ThingsGateway.Gateway.Razor return string.Empty; }) }, {nameof(ScriptEdit.Script),Node.Text }, - {nameof(ScriptEdit.ScriptChanged),EventCallback.Factory.Create(this, v => - { - Node.Text=v; - - })}, - + {nameof(ScriptEdit.ScriptChanged),EventCallback.Factory.Create(this, v => Node.Text=v)}, }); await DialogService.Show(op); - } [Inject] diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/Component/VariableWidget.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/Component/VariableWidget.razor.cs index e6a2f2fe4..431a8899d 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/Component/VariableWidget.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/Component/VariableWidget.razor.cs @@ -71,7 +71,5 @@ namespace ThingsGateway.Gateway.Razor return ret; } } - - } } \ No newline at end of file diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/DragAndDrop.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/DragAndDrop.razor.cs index 5b330f510..34d604941 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/DragAndDrop.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/DragAndDrop.razor.cs @@ -9,7 +9,6 @@ using ThingsGateway.Blazor.Diagrams.Core.Models; using ThingsGateway.Blazor.Diagrams.Options; using ThingsGateway.NewLife.Json.Extension; - namespace ThingsGateway.Gateway.Razor; public partial class DragAndDrop @@ -23,8 +22,6 @@ public partial class DragAndDrop [Inject] IStringLocalizer Localizer { get; set; } - - protected override void OnInitialized() { base.OnInitialized(); @@ -41,7 +38,6 @@ public partial class DragAndDrop } } - private Task OnDragStart(string key) { _draggedType = key; @@ -120,15 +116,12 @@ public partial class DragAndDrop { try { - var data = RuleHelpers.Save(_blazorDiagram); await DownloadService.DownloadFromStreamAsync("RulesJson.json", new MemoryStream(Encoding.UTF8.GetBytes(data.ToSystemTextJsonString()))); - } catch (Exception ex) { await ToastService.Warn(ex); } } - } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/RulesPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/RulesPage.razor.cs index 40b943911..63909fa26 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/RulesPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/RulesPage.razor.cs @@ -43,7 +43,6 @@ public partial class RulesPage private string DiagramsCSS => $"{Id}DiagramsCSS"; private string DiagramsJS => $"{Id}DiagramsJS"; - [Inject] ToastService ToastService { get; set; } @@ -85,19 +84,14 @@ public partial class RulesPage var result = await RulesService.DeleteRulesAsync(ruless.Select(a => a.Id)); return result; }); - } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); return false; } } - private async Task Save(Rules rules, ItemChangedType itemChangedType) { try @@ -107,10 +101,7 @@ public partial class RulesPage } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); return false; } } @@ -128,7 +119,6 @@ public partial class RulesPage { await Task.Run(async () => { - await RulesService.ClearRulesAsync(); await InvokeAsync(async () => { @@ -139,17 +129,11 @@ public partial class RulesPage } catch (Exception ex) { - await InvokeAsync(async () => - { - await ToastService.Warn(ex); - }); + await InvokeAsync(async () => await ToastService.Warn(ex)); } - } #endregion - - #region status [Inject] @@ -172,7 +156,6 @@ public partial class RulesPage await InvokeAsync(StateHasChanged); } - private async Task Notify(DispatchEntry entry) { await Notify(); diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Services/GatewayExport/GatewayExportService.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Services/GatewayExport/GatewayExportService.cs index b6a8e21c1..0018d69c6 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Services/GatewayExport/GatewayExportService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Services/GatewayExport/GatewayExportService.cs @@ -30,12 +30,10 @@ internal sealed class GatewayExportService : IGatewayExportService { try { - await using var ajaxJS = await JSRuntime.InvokeAsync("import", $"/_content/ThingsGateway.Razor/js/downloadFile.js"); string url = "api/gatewayExport/channel"; string fileName = $"{DateTime.Now.ToFileDateTimeFormat()}.xlsx"; return await ajaxJS.InvokeAsync("postJson_downloadFile", url, fileName, exportFilter.ToJsonString()); - } catch { @@ -47,8 +45,6 @@ internal sealed class GatewayExportService : IGatewayExportService { try { - - await using var ajaxJS = await JSRuntime.InvokeAsync("import", $"/_content/ThingsGateway.Razor/js/downloadFile.js"); string url = "api/gatewayExport/device"; string fileName = $"{DateTime.Now.ToFileDateTimeFormat()}.xlsx"; @@ -73,6 +69,5 @@ internal sealed class GatewayExportService : IGatewayExportService { return false; } - } } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Services/GatewayExport/HybridGatewayExportService.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Services/GatewayExport/HybridGatewayExportService.cs index a457a3a38..bbe173957 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Services/GatewayExport/HybridGatewayExportService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Services/GatewayExport/HybridGatewayExportService.cs @@ -14,13 +14,11 @@ namespace ThingsGateway.Gateway.Razor; public sealed class HybridGatewayExportService : IGatewayExportService { - private readonly IChannelRuntimeService _channelService; private readonly IDeviceRuntimeService _deviceService; private readonly IVariableRuntimeService _variableService; private readonly IImportExportService _importExportService; - public HybridGatewayExportService( IChannelRuntimeService channelService, IDeviceRuntimeService deviceService, @@ -32,15 +30,12 @@ public sealed class HybridGatewayExportService : IGatewayExportService _deviceService = deviceService; _variableService = variableService; _importExportService = importExportService; - } public async Task OnChannelExport(ExportFilter exportFilter) { try { - - exportFilter.QueryPageOptions.IsPage = false; exportFilter.QueryPageOptions.IsVirtualScroll = false; @@ -49,11 +44,9 @@ public sealed class HybridGatewayExportService : IGatewayExportService Open(path); return true; - } catch { - return false; } } @@ -62,7 +55,6 @@ public sealed class HybridGatewayExportService : IGatewayExportService { path = System.IO.Path.GetDirectoryName(path); // Ensure the path is absolute - if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows)) { System.Diagnostics.Process.Start("explorer.exe", path); @@ -83,7 +75,6 @@ public sealed class HybridGatewayExportService : IGatewayExportService { try { - exportFilter.QueryPageOptions.IsPage = false; exportFilter.QueryPageOptions.IsVirtualScroll = false; var sheets = await _deviceService.ExportDeviceAsync(exportFilter).ConfigureAwait(false); @@ -91,11 +82,9 @@ public sealed class HybridGatewayExportService : IGatewayExportService Open(path); return true; - } catch { - return false; } } @@ -104,7 +93,6 @@ public sealed class HybridGatewayExportService : IGatewayExportService { try { - exportFilter.QueryPageOptions.IsPage = false; exportFilter.QueryPageOptions.IsVirtualScroll = false; var sheets = await _variableService.ExportVariableAsync(exportFilter).ConfigureAwait(false); @@ -114,7 +102,6 @@ public sealed class HybridGatewayExportService : IGatewayExportService } catch { - return false; } } diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Util/ResourceUtil.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Util/ResourceUtil.cs index 32f0072d3..5e9acaecb 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Util/ResourceUtil.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Util/ResourceUtil.cs @@ -80,7 +80,6 @@ public static class ResourceUtil return trees; } - /// /// 构建树节点,传入的列表已经是树结构 /// @@ -90,8 +89,6 @@ public static class ResourceUtil items ??= new(); var trees = new List>(); - - //筛选插件名称 foreach (var pluginName in channelRuntimes.Select(a => a.PluginName).ToHashSet()) { @@ -112,8 +109,6 @@ public static class ResourceUtil pluginItem.Items.Clear(); foreach (var channelRuntime in channelRuntimes.Where(a => a.PluginName == pluginName)) { - - var channelRuntimeTreeItem = new ChannelDeviceTreeItem() { ChannelDevicePluginType = ChannelDevicePluginTypeEnum.Channel, ChannelRuntimeId = channelRuntime.Id, Id = channelRuntime.Id }; var channelTreeItemItem = channelOldItems.FirstOrDefault(a => a.Value.Equals(channelRuntimeTreeItem)); @@ -130,8 +125,6 @@ public static class ResourceUtil }; } - - var deviceOldItems = channelTreeItemItem.Items.ToList(); channelTreeItemItem.Items.Clear(); @@ -167,7 +160,6 @@ public static class ResourceUtil return trees; } - /// /// 构建树节点,传入的列表已经是树结构 /// @@ -183,7 +175,6 @@ public static class ResourceUtil { var pluginItemValue = new ChannelDeviceTreeItem() { ChannelDevicePluginType = ChannelDevicePluginTypeEnum.PluginName, PluginName = pluginName }; - var pluginItem = items.FirstOrDefault(a => a.Value.Equals(pluginItemValue)); if (pluginItem == null) @@ -202,7 +193,6 @@ public static class ResourceUtil { var channelRuntimeTreeItem = new ChannelDeviceTreeItem() { ChannelDevicePluginType = ChannelDevicePluginTypeEnum.Channel, ChannelRuntimeId = channelRuntime.Key.Id, Id = channelRuntime.Key.Id }; - var channelTreeItemItem = channelOldItems.FirstOrDefault(a => a.Value.Equals(channelRuntimeTreeItem)); if (channelTreeItemItem == null) @@ -224,8 +214,6 @@ public static class ResourceUtil { var deviceRuntimeTreeItem = new ChannelDeviceTreeItem() { ChannelDevicePluginType = ChannelDevicePluginTypeEnum.Device, DeviceRuntimeId = deviceRuntime.Id, Id = deviceRuntime.Id }; - - var deviceTreeItemItem = deviceOldItems.FirstOrDefault(a => a.Value.Equals(deviceRuntimeTreeItem)); if (deviceTreeItemItem == null) @@ -253,5 +241,4 @@ public static class ResourceUtil return trees; } - } diff --git a/src/Plugin/ThingsGateway.Debug.Photino/Program.cs b/src/Plugin/ThingsGateway.Debug.Photino/Program.cs index c69ead970..eb1e9b7c6 100644 --- a/src/Plugin/ThingsGateway.Debug.Photino/Program.cs +++ b/src/Plugin/ThingsGateway.Debug.Photino/Program.cs @@ -21,7 +21,6 @@ namespace ThingsGateway.Debug; internal sealed class Program { - [STAThread] private static void Main(string[] args) { @@ -80,7 +79,6 @@ internal sealed class Program hybridApp.MainWindow.SetTitle("ThingsGateway.Debug.Photino"); hybridApp.MainWindow.SetIconFile("favicon.ico"); - AppDomain.CurrentDomain.UnhandledException += (sender, error) => { }; @@ -93,6 +91,4 @@ internal sealed class Program hybridApp.Run(); Thread.Sleep(3000); } - - } diff --git a/src/Plugin/ThingsGateway.Debug.Photino/SingleFilePublish.cs b/src/Plugin/ThingsGateway.Debug.Photino/SingleFilePublish.cs index d34869e3b..1436282f9 100644 --- a/src/Plugin/ThingsGateway.Debug.Photino/SingleFilePublish.cs +++ b/src/Plugin/ThingsGateway.Debug.Photino/SingleFilePublish.cs @@ -47,4 +47,3 @@ public class SingleFilePublish : ISingleFilePublish ]; } } - diff --git a/src/Plugin/ThingsGateway.Foundation.Dlt645/Dlt645/Core/Dlt645_2007Message.cs b/src/Plugin/ThingsGateway.Foundation.Dlt645/Dlt645/Core/Dlt645_2007Message.cs index 7e55e0fc6..f4ea83cf5 100644 --- a/src/Plugin/ThingsGateway.Foundation.Dlt645/Dlt645/Core/Dlt645_2007Message.cs +++ b/src/Plugin/ThingsGateway.Foundation.Dlt645/Dlt645/Core/Dlt645_2007Message.cs @@ -59,9 +59,6 @@ public class Dlt645_2007Message : MessageBase, IResultMessage } Response.Station = byteBlock.Span.Slice(HeadCodeIndex + 1, 6).ToArray(); - - - var controlCode = byteBlock[HeadCodeIndex + 8]; if ((controlCode & 0x40) == 0x40)//控制码bit6为1时,返回错误 { @@ -72,7 +69,6 @@ public class Dlt645_2007Message : MessageBase, IResultMessage return FilterResult.Success; } - if (Dlt645_2007Send != null) { if (!Response.Station.SequenceEqual(Request.Station))//设备地址不符合时,返回错误 @@ -135,7 +131,6 @@ public class Dlt645_2007Message : MessageBase, IResultMessage BodyLength = byteBlock[HeadCodeIndex + 9] + 2; return true; - } public override void SendInfo(ISendMessage sendMessage, ref ValueByteBlock byteBlock) { diff --git a/src/Plugin/ThingsGateway.Foundation.Dlt645/Dlt645/Dlt645_2007Master.cs b/src/Plugin/ThingsGateway.Foundation.Dlt645/Dlt645/Dlt645_2007Master.cs index 1bd4137fc..48d2d3dd5 100644 --- a/src/Plugin/ThingsGateway.Foundation.Dlt645/Dlt645/Dlt645_2007Master.cs +++ b/src/Plugin/ThingsGateway.Foundation.Dlt645/Dlt645/Dlt645_2007Master.cs @@ -64,19 +64,13 @@ public class Dlt645_2007Master : DtuServiceDeviceBase /// public ValueTask> Dlt645RequestAsync(Dlt645_2007Address dAddress, ControlCode controlCode, string feHead, byte[] codes = default, string[] datas = default, CancellationToken cancellationToken = default) { - return SendThenReturnAsync(GetSendMessage(dAddress, controlCode, feHead, codes, datas), cancellationToken); - } /// public ValueTask Dlt645SendAsync(Dlt645_2007Address dAddress, ControlCode controlCode, string feHead, byte[] codes = default, string[] datas = default, CancellationToken cancellationToken = default) { - - return SendAsync(GetSendMessage(dAddress, controlCode, feHead, codes, datas), cancellationToken); - - } /// @@ -153,7 +147,6 @@ public class Dlt645_2007Master : DtuServiceDeviceBase } public override ValueTask> ReadAsync(object state, CancellationToken cancellationToken = default) { - if (state is Dlt645_2007Address dlt645_2007Address) { return Dlt645RequestAsync(dlt645_2007Address, ControlCode.Read, FEHead, cancellationToken: cancellationToken); @@ -162,7 +155,6 @@ public class Dlt645_2007Master : DtuServiceDeviceBase { return EasyValueTask.FromResult(new OperResult(new ArgumentException("State must be of type Dlt645_2007Address", nameof(state)))); } - } /// /// 读取通信地址 @@ -386,6 +378,4 @@ public class Dlt645_2007Master : DtuServiceDeviceBase { return new Dlt645_2007Send(dAddress, read, feHead.HexStringToBytes(), codes, datas); } - - } diff --git a/src/Plugin/ThingsGateway.Foundation.Dlt645/Locales/DltResource.cs b/src/Plugin/ThingsGateway.Foundation.Dlt645/Locales/DltResource.cs index 7fbdaebfa..dba9eeeea 100644 --- a/src/Plugin/ThingsGateway.Foundation.Dlt645/Locales/DltResource.cs +++ b/src/Plugin/ThingsGateway.Foundation.Dlt645/Locales/DltResource.cs @@ -12,7 +12,6 @@ namespace ThingsGateway.Foundation.Dlt645; public static class AppResource { - public static string Error1 => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.Error1 : EnglishResource.Error1; public static string Error2 => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.Error2 : EnglishResource.Error2; public static string Error3 => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.Error3 : EnglishResource.Error3; @@ -30,7 +29,6 @@ public static class AppResource public static string CountError => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.CountError : EnglishResource.CountError; public static string DataIdError => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.DataIdError : EnglishResource.DataIdError; public static string BaudRateError => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.BaudRateError : EnglishResource.BaudRateError; - } public static class ChineseResource @@ -57,7 +55,6 @@ public static class ChineseResource 00010000 (当前)正向有功总电能 """; - public const string SumError = "和校验错误"; public const string StationNotSame = "站号不一致"; public const string FunctionError = "异常控制码:{0},错误信息:{1}"; @@ -67,8 +64,6 @@ public static class ChineseResource public const string DataIdError = "变量寄存器地址错误"; public const string BaudRateError = "不支持此波特率 {0}"; - - } public static class EnglishResource diff --git a/src/Plugin/ThingsGateway.Foundation.Modbus/Locales/ModbusResource.cs b/src/Plugin/ThingsGateway.Foundation.Modbus/Locales/ModbusResource.cs index f2fa3dedf..da84c0dc2 100644 --- a/src/Plugin/ThingsGateway.Foundation.Modbus/Locales/ModbusResource.cs +++ b/src/Plugin/ThingsGateway.Foundation.Modbus/Locales/ModbusResource.cs @@ -10,7 +10,6 @@ namespace ThingsGateway.Foundation.Modbus; - public static class AppResource { public static string CrcError => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.CrcError : EnglishResource.CrcError; @@ -28,13 +27,10 @@ public static class AppResource public static string StationNotSame => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.StationNotSame : EnglishResource.StationNotSame; public static string AddressDes => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.AddressDes : EnglishResource.AddressDes; public static string ValueOverlimit => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.ValueOverlimit : EnglishResource.ValueOverlimit; - } - public static class ChineseResource { - public const string CrcError = "Crc校验失败"; public const string FunctionError = "功能码错误"; public const string FunctionNotSame = "功能码不一致,请求功能码 {0},返回功能码 {1}"; @@ -59,11 +55,8 @@ public static class ChineseResource 写入功能码 ,比如40001;w=16; ,代表保持寄存器第一个寄存器,写入值时采用0x10功能码 """; public const string ValueOverlimit = "{0} 不能超过 {1}"; - } - - public static class EnglishResource { public const string CrcError = "CRC check failed"; diff --git a/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusRtuSend.cs b/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusRtuSend.cs index 5790faccf..319b5217b 100644 --- a/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusRtuSend.cs +++ b/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusRtuSend.cs @@ -44,13 +44,11 @@ public class ModbusRtuSend : ISendMessage var wf = ModbusAddress.WriteFunctionCode; - if (ModbusAddress.FunctionCode > 0x30 && ModbusAddress.WriteFunctionCode < 0x30) { ModbusAddress.WriteFunctionCode += 0x30; } - if (Read) { byteBlock.WriteByte(ModbusAddress.Station); diff --git a/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusTcpMessage.cs b/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusTcpMessage.cs index d76cb52e5..0de83df19 100644 --- a/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusTcpMessage.cs +++ b/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusTcpMessage.cs @@ -22,7 +22,6 @@ public class ModbusTcpMessage : MessageBase, IResultMessage public override FilterResult CheckBody(ref TByteBlock byteBlock) { - var f = Response.FunctionCode > 0x30 ? Response.FunctionCode - 0x30 : Response.FunctionCode; if (error) { @@ -98,6 +97,5 @@ public class ModbusTcpMessage : MessageBase, IResultMessage error = true; } return true; - } } diff --git a/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusTcpSend.cs b/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusTcpSend.cs index 042b02f82..51c9cf190 100644 --- a/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusTcpSend.cs +++ b/src/Plugin/ThingsGateway.Foundation.Modbus/Master/Core/ModbusTcpSend.cs @@ -58,7 +58,6 @@ public class ModbusTcpSend : ISendMessage var wf = ModbusAddress.WriteFunctionCode; - if (ModbusAddress.FunctionCode > 0x30 && ModbusAddress.WriteFunctionCode < 0x30) { ModbusAddress.WriteFunctionCode += 0x30; diff --git a/src/Plugin/ThingsGateway.Foundation.Modbus/Master/ModbusMaster.cs b/src/Plugin/ThingsGateway.Foundation.Modbus/Master/ModbusMaster.cs index 70645fd34..62326894a 100644 --- a/src/Plugin/ThingsGateway.Foundation.Modbus/Master/ModbusMaster.cs +++ b/src/Plugin/ThingsGateway.Foundation.Modbus/Master/ModbusMaster.cs @@ -13,7 +13,6 @@ namespace ThingsGateway.Foundation.Modbus; /// public partial class ModbusMaster : DtuServiceDeviceBase, IModbusAddress { - public override void InitChannel(IChannel channel, ILog? deviceLog = null) { base.InitChannel(channel, deviceLog); @@ -135,7 +134,6 @@ public partial class ModbusMaster : DtuServiceDeviceBase, IModbusAddress } } - public ValueTask> ModbusRequestAsync(ModbusAddress mAddress, bool read, CancellationToken cancellationToken = default) { try @@ -164,8 +162,6 @@ public partial class ModbusMaster : DtuServiceDeviceBase, IModbusAddress } } - - /// public override async ValueTask WriteAsync(string address, byte[] value, DataTypeEnum dataType, CancellationToken cancellationToken = default) { diff --git a/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/Core/ModbusRtuSlaveMessage.cs b/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/Core/ModbusRtuSlaveMessage.cs index eb9594241..5f4407c5e 100644 --- a/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/Core/ModbusRtuSlaveMessage.cs +++ b/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/Core/ModbusRtuSlaveMessage.cs @@ -25,7 +25,6 @@ public class ModbusRtuSlaveMessage : MessageBase, IResultMessage public ModbusRequest Request { get; set; } = new(); - /// public override bool CheckHead(ref TByteBlock byteBlock) { @@ -102,6 +101,4 @@ public class ModbusRtuSlaveMessage : MessageBase, IResultMessage return FilterResult.GoOn; } - - } diff --git a/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/Core/ModbusTcpSlaveMessage.cs b/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/Core/ModbusTcpSlaveMessage.cs index aa8f34fdd..06fba35b4 100644 --- a/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/Core/ModbusTcpSlaveMessage.cs +++ b/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/Core/ModbusTcpSlaveMessage.cs @@ -69,7 +69,6 @@ public class ModbusTcpSlaveMessage : MessageBase, IResultMessage return false; } - public override FilterResult CheckBody(ref TByteBlock byteBlock) { var pos = byteBlock.Position - HeaderLength; @@ -91,5 +90,4 @@ public class ModbusTcpSlaveMessage : MessageBase, IResultMessage OperCode = 0; return FilterResult.Success; } - } diff --git a/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/ModbusSlave.cs b/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/ModbusSlave.cs index e0a10f2fc..2dbe71290 100644 --- a/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/ModbusSlave.cs +++ b/src/Plugin/ThingsGateway.Foundation.Modbus/Slave/ModbusSlave.cs @@ -43,7 +43,6 @@ public class ModbusSlave : DeviceBase, IModbusAddress /// private ConcurrentDictionary ModbusServer04ByteBlocks = new(); - /// public override void InitChannel(IChannel channel, ILog? deviceLog = null) { @@ -114,7 +113,6 @@ public class ModbusSlave : DeviceBase, IModbusAddress { CacheTimeout = TimeSpan.FromMilliseconds(Channel.ChannelOptions.CacheTimeout), IsSingleThread = false, - }; case ChannelTypeEnum.UdpSession: diff --git a/src/Plugin/ThingsGateway.Foundation.OpcDa/OpcDaMaster/OpcDaMaster.cs b/src/Plugin/ThingsGateway.Foundation.OpcDa/OpcDaMaster/OpcDaMaster.cs index a05c4a878..7d7f432ee 100644 --- a/src/Plugin/ThingsGateway.Foundation.OpcDa/OpcDaMaster/OpcDaMaster.cs +++ b/src/Plugin/ThingsGateway.Foundation.OpcDa/OpcDaMaster/OpcDaMaster.cs @@ -162,7 +162,6 @@ public class OpcDaMaster : IDisposable { lock (this) { - int i = ItemDicts.Count; var addItems = items.ConvertAll(o => new OpcItem(o)).ChunkTrivialBetter(OpcDaProperty.GroupSize).ToDictionary(a => "default" + (i++)); diff --git a/src/Plugin/ThingsGateway.Foundation.OpcUa/OpcUaMaster/OpcUaMaster.cs b/src/Plugin/ThingsGateway.Foundation.OpcUa/OpcUaMaster/OpcUaMaster.cs index 8cdfbf288..5144e4224 100644 --- a/src/Plugin/ThingsGateway.Foundation.OpcUa/OpcUaMaster/OpcUaMaster.cs +++ b/src/Plugin/ThingsGateway.Foundation.OpcUa/OpcUaMaster/OpcUaMaster.cs @@ -154,9 +154,7 @@ public class OpcUaMaster : IDisposable { DefaultSessionTimeout = 60000, MinSubscriptionLifetime = 10000, - }, - }; certificateValidator.Update(m_configuration); @@ -310,7 +308,6 @@ public class OpcUaMaster : IDisposable if (_subscriptionDicts.TryAdd(subscriptionName, m_subscription)) { - } else if (_subscriptionDicts.TryGetValue(subscriptionName, out var existingSubscription)) { @@ -406,7 +403,6 @@ public class OpcUaMaster : IDisposable { m_session = null; } - } /// @@ -732,7 +728,6 @@ public class OpcUaMaster : IDisposable /// 组名称 public async Task RemoveSubscriptionAsync(string subscriptionName) { - if (_subscriptionDicts.TryGetValue(subscriptionName, out var subscription)) { // remove @@ -741,7 +736,6 @@ public class OpcUaMaster : IDisposable try { subscription.Dispose(); } catch { } _subscriptionDicts.TryRemove(subscriptionName, out _); } - } /// @@ -866,7 +860,6 @@ public class OpcUaMaster : IDisposable } try { - await waitLock.WaitAsync(cancellationToken).ConfigureAwait(false); if (m_session != null) { @@ -917,13 +910,10 @@ public class OpcUaMaster : IDisposable typeSystem = new ComplexTypeSystem(m_session); - // raise an event. DoConnectComplete(true); Log(2, null, "Connected"); - - } finally { @@ -1014,7 +1004,6 @@ public class OpcUaMaster : IDisposable } NodeId nodeToRead = new(nodeIdStr); - uint[] attributes = new uint[] { Attributes.NodeId, Attributes.DataType }; // build list of values to read. @@ -1063,7 +1052,6 @@ public class OpcUaMaster : IDisposable NodeId nodeToRead = new(nodeIdStr); - uint[] attributes = new uint[] { Attributes.NodeId, Attributes.DataType }; // build list of values to read. @@ -1098,7 +1086,6 @@ public class OpcUaMaster : IDisposable return variableNode; } - private List GetVariableNodes(ReadValueIdCollection itemsToRead, DataValueCollection values, DiagnosticInfoCollection diagnosticInfos, ResponseHeader responseHeader, int count = 1) { ClientBase.ValidateResponse(values, itemsToRead); @@ -1106,7 +1093,6 @@ public class OpcUaMaster : IDisposable List variableNodes = new(); for (int i = 0; i < count; i++) { - VariableNode variableNode = new VariableNode(); DataValue value = values[1 + 2 * i]; @@ -1158,7 +1144,6 @@ public class OpcUaMaster : IDisposable ReadValueIdCollection itemsToRead = new ReadValueIdCollection(); foreach (var item in items) { - foreach (uint attributeId in attributes) { ReadValueId itemToRead = new ReadValueId @@ -1386,7 +1371,6 @@ public class OpcUaMaster : IDisposable } } - // raise any additional notifications. m_KeepAliveComplete?.Invoke(this, e); } diff --git a/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/JsonEncoder.cs b/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/JsonEncoder.cs index ad85a5d19..8df739981 100644 --- a/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/JsonEncoder.cs +++ b/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/JsonEncoder.cs @@ -12,7 +12,6 @@ //using System.Text; //using System.Xml; - //namespace Opc.Ua; //public class OPCUAJsonEncoder : IJsonEncoder, IEncoder, IDisposable diff --git a/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/JsonUtils.cs b/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/JsonUtils.cs index ba02fa30d..704ec3112 100644 --- a/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/JsonUtils.cs +++ b/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/JsonUtils.cs @@ -395,7 +395,7 @@ public static class JsonUtils { if (!jTokens.ElementsHasSameType()) throw new Exception("The array sent must have the same type of element in each dimension"); - return jTokens.First().Type; + return jTokens[0].Type; } private static Type GetSystemType(JTokenType jsonType) diff --git a/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/OpcUaUtils.cs b/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/OpcUaUtils.cs index aaee07030..d1697fe06 100644 --- a/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/OpcUaUtils.cs +++ b/src/Plugin/ThingsGateway.Foundation.OpcUa/Utils/OpcUaUtils.cs @@ -17,7 +17,6 @@ namespace ThingsGateway.Foundation.OpcUa; /// public static class OpcUaUtils { - /// /// Finds the endpoint that best matches the current settings. /// @@ -57,7 +56,6 @@ public static class OpcUaUtils } } - /// /// Browses the address space and returns the references found. /// diff --git a/src/Plugin/ThingsGateway.Foundation.SiemensS7/Locales/SiemensS7Resource.cs b/src/Plugin/ThingsGateway.Foundation.SiemensS7/Locales/SiemensS7Resource.cs index 909e7d7c8..4de5ab5de 100644 --- a/src/Plugin/ThingsGateway.Foundation.SiemensS7/Locales/SiemensS7Resource.cs +++ b/src/Plugin/ThingsGateway.Foundation.SiemensS7/Locales/SiemensS7Resource.cs @@ -28,7 +28,6 @@ public static class AppResource public static string ReturnError => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.ReturnError : EnglishResource.ReturnError; public static string ValidateDataError => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.ValidateDataError : EnglishResource.ValidateDataError; public static string AddressError => ThingsGateway.Foundation.AppResource.Lang == Language.Chinese ? ChineseResource.AddressError : EnglishResource.AddressError; - } public static class ChineseResource { diff --git a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7BitConverter.cs b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7BitConverter.cs index 5e53eb9e2..9eeed5c5e 100644 --- a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7BitConverter.cs +++ b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7BitConverter.cs @@ -49,7 +49,6 @@ public class S7BitConverter : ThingsGatewayBitConverter { return base.ToString(buffer, offset, length); } - } public override void OtherPropertySet(IThingsGatewayBitConverter thingsGatewayBitConverter, string registerAddress) @@ -63,5 +62,4 @@ public class S7BitConverter : ThingsGatewayBitConverter base.OtherPropertySet(thingsGatewayBitConverter, registerAddress); } - } diff --git a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7Message.cs b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7Message.cs index 874d2e9b2..99580a69b 100644 --- a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7Message.cs +++ b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7Message.cs @@ -33,10 +33,8 @@ public class S7Message : MessageBase, IResultMessage } public override FilterResult CheckBody(ref TByteBlock byteBlock) { - var pos = byteBlock.Position; - if (byteBlock[pos + 1] == 0xD0) // 首次握手0XD0连接确认 { OperCode = 0; @@ -177,6 +175,4 @@ public class S7Message : MessageBase, IResultMessage ErrorMessage = "Unsupport function code"; return FilterResult.Success; } - - } diff --git a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7Send.cs b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7Send.cs index 4cfe43aa9..db8a5f94e 100644 --- a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7Send.cs +++ b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/S7Send.cs @@ -48,7 +48,6 @@ public class S7Request /// public int Length { get; set; } - public int BitLength { get; set; } public bool IsBit { get; set; } #endregion Request @@ -145,7 +144,6 @@ public class S7Send : ISendMessage internal void GetWriteByteCommand(ref TByteBlock valueByteBlock, SiemensS7Address[] addresss) where TByteBlock : IByteBlock { - byte itemLen = (byte)addresss.Length; ushort parameterLen = (ushort)(itemLen * 12 + 2); //TPKT @@ -169,8 +167,6 @@ public class S7Send : ISendMessage valueByteBlock.WriteByte(itemLen);//Item数量 //写入Item与读取大致相同 - - foreach (var address in addresss) { var data = address.Data; diff --git a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/SiemensS7Address.cs b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/SiemensS7Address.cs index 60cee718c..d4510d4fe 100644 --- a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/SiemensS7Address.cs +++ b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Core/SiemensS7Address.cs @@ -21,7 +21,6 @@ namespace ThingsGateway.Foundation.SiemensS7; /// public class SiemensS7Address : S7Request { - public bool WStringEnable { get; set; } public SiemensS7Address() { @@ -87,7 +86,6 @@ public class SiemensS7Address : S7Request var data = stringBuilder.ToString(); Pool.StringBuilder.Return(stringBuilder); return data; - } private static string GetStringAddress(int addressStart) diff --git a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Helper/PackHelper.cs b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Helper/PackHelper.cs index 3583e1ad0..525b1cec1 100644 --- a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Helper/PackHelper.cs +++ b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Helper/PackHelper.cs @@ -55,7 +55,6 @@ internal static class PackHelper s7BitConverter.WStringEnable = s7Address.WStringEnable; } - int lastLen = it.DataType.GetByteLength(); // 处理特殊情况下的长度 @@ -200,7 +199,7 @@ internal static class PackHelper return address + it.Length; // 返回排序后的地址加上长度 }).ToList(); - var minAddress = addresses.First().AddressStart; // 获取最小地址 + var minAddress = addresses[0].AddressStart; // 获取最小地址 var maxAddress = addresses.Last().AddressStart; // 获取最大地址 while (maxAddress >= minAddress) // 循环,直到最大地址小于最小地址 @@ -214,7 +213,7 @@ internal static class PackHelper // 如果是计数器或计时器 tempAddresses = addresses.Where(t => t.AddressStart >= minAddress && ((t.AddressStart) + t.Length) <= ((minAddress) + readLength / 2)).ToList(); - while ((tempAddresses.Last().AddressStart * 2) + tempAddresses.Last().Length - (tempAddresses.First().AddressStart * 2) > readLength) + while ((tempAddresses.Last().AddressStart * 2) + tempAddresses.Last().Length - (tempAddresses[0].AddressStart * 2) > readLength) { tempAddresses.Remove(tempAddresses.Last()); // 移除超出限制的地址 } @@ -223,7 +222,7 @@ internal static class PackHelper { tempAddresses = addresses.Where(t => t.AddressStart >= minAddress && ((t.AddressStart) + t.Length) <= ((minAddress) + readLength * 8)).ToList(); - while ((tempAddresses.Last().AddressStart / 8) + tempAddresses.Last().Length - (tempAddresses.First().AddressStart / 8) > readLength) + while ((tempAddresses.Last().AddressStart / 8) + tempAddresses.Last().Length - (tempAddresses[0].AddressStart / 8) > readLength) { tempAddresses.Remove(tempAddresses.Last()); } @@ -236,12 +235,12 @@ internal static class PackHelper if (functionCode == (byte)S7WordLength.Counter || functionCode == (byte)S7WordLength.Timer) { lastAddress = tempAddresses.Last().AddressStart * 2; - firstAddress = tempAddresses.First().AddressStart * 2; + firstAddress = tempAddresses[0].AddressStart * 2; } else { lastAddress = tempAddresses.Last().AddressStart / 8; - firstAddress = tempAddresses.First().AddressStart / 8; + firstAddress = tempAddresses[0].AddressStart / 8; } var sourceLen = lastAddress + tempAddresses.Last().Length - firstAddress; // 计算源长度 @@ -263,12 +262,12 @@ internal static class PackHelper if (readNode.DataType == DataTypeEnum.Boolean) { // 计算索引(针对计数器和计时器的布尔型变量) - readNode.Index = (((item.AddressStart * 2) - (tempAddresses.First().AddressStart * 2)) * 8) + readNode.Index; + readNode.Index = (((item.AddressStart * 2) - (tempAddresses[0].AddressStart * 2)) * 8) + readNode.Index; } else { // 计算索引(针对计数器和计时器的非布尔型变量) - readNode.Index = (item.AddressStart * 2) - (tempAddresses.First().AddressStart * 2) + readNode.Index; + readNode.Index = (item.AddressStart * 2) - (tempAddresses[0].AddressStart * 2) + readNode.Index; } } else @@ -276,12 +275,12 @@ internal static class PackHelper if (readNode.DataType == DataTypeEnum.Boolean) { // 计算索引(针对非计数器和计时器的布尔型变量) - readNode.Index = (((item.AddressStart / 8) - (tempAddresses.First().AddressStart / 8)) * 8) + readNode.Index; + readNode.Index = (((item.AddressStart / 8) - (tempAddresses[0].AddressStart / 8)) * 8) + readNode.Index; } else { // 计算索引(针对非计数器和计时器的非布尔型变量) - readNode.Index = (item.AddressStart / 8) - (tempAddresses.First().AddressStart / 8) + readNode.Index; + readNode.Index = (item.AddressStart / 8) - (tempAddresses[0].AddressStart / 8) + readNode.Index; } } @@ -293,7 +292,7 @@ internal static class PackHelper if (addresses.Count > 0) { - minAddress = addresses.First().AddressStart; // 更新最小地址 + minAddress = addresses[0].AddressStart; // 更新最小地址 } else { diff --git a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Helper/SiemensHelper.cs b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Helper/SiemensHelper.cs index f6eb2d0cb..652fbc056 100644 --- a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Helper/SiemensHelper.cs +++ b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/Helper/SiemensHelper.cs @@ -126,8 +126,6 @@ internal sealed partial class SiemensHelper return await plc.WriteAsync(address, DataTransUtil.SpliceArray([(byte)value.Length], inBytes), DataTypeEnum.String, cancellationToken).ConfigureAwait(false); } - - internal static async ValueTask> ReadWStringAsync(SiemensS7Master plc, string address, Encoding encoding, CancellationToken cancellationToken) { //先读取一次获取长度,再读取实际值 diff --git a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/SiemensS7Master.cs b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/SiemensS7Master.cs index edeaa30dc..df3436716 100644 --- a/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/SiemensS7Master.cs +++ b/src/Plugin/ThingsGateway.Foundation.SiemensS7/S7/SiemensS7Master.cs @@ -25,7 +25,6 @@ public partial class SiemensS7Master : DeviceBase base.InitChannel(channel, deviceLog); RegisterByteLength = 1; - } protected override void SetChannel() @@ -153,7 +152,6 @@ public partial class SiemensS7Master : DeviceBase var start = sAddress.AddressStart; try { - while (num < addressLen) { //pdu长度,重复生成报文,直至全部生成 @@ -173,7 +171,6 @@ public partial class SiemensS7Master : DeviceBase { sAddress.AddressStart += len * 8; } - } } finally @@ -199,8 +196,6 @@ public partial class SiemensS7Master : DeviceBase /// public async ValueTask> S7WriteAsync(SiemensS7Address[] sAddresss, CancellationToken cancellationToken = default) { - - var dictOperResult = new Dictionary(); void SetFailOperResult(OperResult operResult) @@ -218,11 +213,9 @@ public partial class SiemensS7Master : DeviceBase var byteBlock = new ValueByteBlock(2048); try { - var wresult = await SendThenReturnAsync(new S7Send([sAddress], false), cancellationToken: cancellationToken).ConfigureAwait(false); dictOperResult.TryAdd(sAddress, wresult); return dictOperResult; - } catch (Exception ex) { @@ -274,12 +267,10 @@ public partial class SiemensS7Master : DeviceBase return dictOperResult; } } - } foreach (var item in siemensS7Addresses) { - try { var result = await SendThenReturnAsync(new S7Send(item.ToArray(), false), cancellationToken: cancellationToken).ConfigureAwait(false); @@ -290,14 +281,11 @@ public partial class SiemensS7Master : DeviceBase } catch (Exception ex) { - SetFailOperResult(new OperResult(ex)); return dictOperResult; } - } return dictOperResult; - } } } @@ -337,7 +325,6 @@ public partial class SiemensS7Master : DeviceBase } } - /// public override async ValueTask WriteAsync(string address, byte[] value, DataTypeEnum dataType, CancellationToken cancellationToken = default) { diff --git a/src/Plugin/ThingsGateway.Foundation.Test/Dlt645Test.cs b/src/Plugin/ThingsGateway.Foundation.Test/Dlt645Test.cs index 2152b6c8d..49829c82e 100644 --- a/src/Plugin/ThingsGateway.Foundation.Test/Dlt645Test.cs +++ b/src/Plugin/ThingsGateway.Foundation.Test/Dlt645Test.cs @@ -17,7 +17,6 @@ namespace ThingsGateway.Foundation.Test; public class Dlt645Test { - [Theory] [InlineData("02010100", "FE FE FE FE 68 11 11 11 11 11 11 68 91 07 33 34 34 35 33 59 36 60 16 ")] public async Task Dlt645_Read_OK(string address, string data) @@ -34,10 +33,8 @@ public class Dlt645Test var task1 = Task.Run(async () => { - var result = await dltMaster.ReadAsync(address, default).ConfigureAwait(false); Assert.True(result.IsSuccess, result.ToString()); - }); await Task.Delay(50); var task2 = Task.Run(async () => @@ -50,6 +47,4 @@ public class Dlt645Test }); await Task.WhenAll(task1, task2); } - - } diff --git a/src/Plugin/ThingsGateway.Foundation.Test/ModbusTest.cs b/src/Plugin/ThingsGateway.Foundation.Test/ModbusTest.cs index 4c986030a..9d5e55561 100644 --- a/src/Plugin/ThingsGateway.Foundation.Test/ModbusTest.cs +++ b/src/Plugin/ThingsGateway.Foundation.Test/ModbusTest.cs @@ -17,7 +17,6 @@ namespace ThingsGateway.Foundation.Test; public class ModbusTest { - [Theory] [InlineData("400045", true, "00000000002F01032C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")] [InlineData("300045", true, "00000000002F01042C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")] @@ -49,7 +48,6 @@ public class ModbusTest var result = await modbusMaster.WriteAsync(address, JTokenUtil.GetJTokenFromString(writeData), dataTypeEnum).ConfigureAwait(false); Assert.True(result.IsSuccess, result.ToString()); } - }); await Task.Delay(50); var task2 = Task.Run(async () => @@ -94,7 +92,6 @@ public class ModbusTest var result = await modbusMaster.WriteAsync(address, JTokenUtil.GetJTokenFromString(writeData), dataTypeEnum).ConfigureAwait(false); Assert.True(result.IsSuccess, result.ToString()); } - }); await Task.Delay(50); var task2 = Task.Run(async () => @@ -110,6 +107,4 @@ public class ModbusTest - - } diff --git a/src/Plugin/ThingsGateway.Foundation.Test/SiemensS7Test.cs b/src/Plugin/ThingsGateway.Foundation.Test/SiemensS7Test.cs index f52bdcdcf..2642e3a41 100644 --- a/src/Plugin/ThingsGateway.Foundation.Test/SiemensS7Test.cs +++ b/src/Plugin/ThingsGateway.Foundation.Test/SiemensS7Test.cs @@ -19,7 +19,6 @@ namespace ThingsGateway.Foundation.Test; public class SiemensS7Test { - [Theory] [InlineData("M100", true, "03 00 00 1B 02 F0 80 32 03 00 00 00 03 00 02 00 06 00 00 04 01 FF 04 00 10 00 00")] [InlineData("M100", false, "03 00 00 16 02 F0 80 32 03 00 00 00 03 00 02 00 01 00 00 05 01 FF", "1", DataTypeEnum.UInt16)] @@ -47,7 +46,6 @@ public class SiemensS7Test var result = await siemensS7Master.WriteAsync(address, JTokenUtil.GetJTokenFromString(writeData), dataTypeEnum).ConfigureAwait(false); Assert.True(result.IsSuccess, result.ToString()); } - }); var task2 = Task.Run(async () => { @@ -63,6 +61,4 @@ public class SiemensS7Test } - - } diff --git a/src/Plugin/ThingsGateway.Foundation.Test/TestAdapterHelper.cs b/src/Plugin/ThingsGateway.Foundation.Test/TestAdapterHelper.cs index 7fe291858..3177b30ee 100644 --- a/src/Plugin/ThingsGateway.Foundation.Test/TestAdapterHelper.cs +++ b/src/Plugin/ThingsGateway.Foundation.Test/TestAdapterHelper.cs @@ -22,7 +22,6 @@ internal static class TestAdapterHelper if (isSingleStreamData) { - for (int bufferLength = 1; bufferLength < 256; bufferLength += 1) { SingleStreamDataAdapterTester tester = SingleStreamDataAdapterTester.CreateTester(new DeviceSingleStreamDataHandleAdapter() @@ -57,8 +56,6 @@ internal static class TestAdapterHelper { Xunit.Assert.Fail($"{ex.Message} bufferLength: {bufferLength}"); } - - } } else @@ -89,8 +86,6 @@ internal static class TestAdapterHelper } } - Xunit.Assert.True(isSuccess, message?.ErrorMessage); } - } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/Common/Dynamic/TestHisSQL.cs b/src/Plugin/ThingsGateway.Plugin.DB/Common/Dynamic/TestHisSQL.cs index 9cc76b096..e9bf33d2c 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/Common/Dynamic/TestHisSQL.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/Common/Dynamic/TestHisSQL.cs @@ -57,5 +57,4 @@ // public string Temp3 { get; set; } // } -//} - +//} \ No newline at end of file diff --git a/src/Plugin/ThingsGateway.Plugin.DB/Common/Dynamic/TestRealSQL.cs b/src/Plugin/ThingsGateway.Plugin.DB/Common/Dynamic/TestRealSQL.cs index 94699152f..c16a9dd1a 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/Common/Dynamic/TestRealSQL.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/Common/Dynamic/TestRealSQL.cs @@ -8,7 +8,6 @@ //// QQ群:605534569 //// ------------------------------------------------------------------------------ - //using ThingsGateway.SqlSugar; //using ThingsGateway; diff --git a/src/Plugin/ThingsGateway.Plugin.DB/Common/Helper.cs b/src/Plugin/ThingsGateway.Plugin.DB/Common/Helper.cs index f3386467e..41739eea4 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/Common/Helper.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/Common/Helper.cs @@ -39,11 +39,8 @@ internal static class Helper ); } - public static SQLHistoryValue AdaptSQLHistoryValue(this VariableBasicData src) { - - var dest = new SQLHistoryValue(); dest.Id = src.Id; dest.Value = GetValue(src.Value); @@ -61,7 +58,12 @@ internal static class Helper Enumerable.Select(src, x => AdaptSQLHistoryValue(x)) ); } - + public static IEnumerable AdaptEnumerableSQLHistoryValue(this IEnumerable src) + { + return ( + Enumerable.Select(src, x => AdaptSQLHistoryValue(x)) + ); + } public static SQLNumberHistoryValue AdaptSQLNumberHistoryValue(this VariableRuntime src) { @@ -82,12 +84,15 @@ internal static class Helper Enumerable.Select(src, x => AdaptSQLNumberHistoryValue(x)) ); } - + public static IEnumerable AdaptEnumerableSQLNumberHistoryValue(this IEnumerable src) + { + return ( + Enumerable.Select(src, x => AdaptSQLNumberHistoryValue(x)) + ); + } public static SQLNumberHistoryValue AdaptSQLNumberHistoryValue(this VariableBasicData src) { - - var dest = new SQLNumberHistoryValue(); dest.Id = src.Id; dest.Value = src.Value.GetType() == typeof(bool) ? ConvertUtility.Convert.ToBoolean(src.Value, false) ? 1 : 0 : ConvertUtility.Convert.ToDecimal(src.Value, 0); @@ -105,8 +110,12 @@ internal static class Helper Enumerable.Select(src, x => AdaptSQLNumberHistoryValue(x)) ); } - - + public static IEnumerable AdaptEnumerableSQLNumberHistoryValue(this IEnumerable src) + { + return ( + Enumerable.Select(src, x => AdaptSQLNumberHistoryValue(x)) + ); + } public static SQLRealValue AdaptSQLRealValue(this VariableBasicData src) { @@ -126,7 +135,12 @@ internal static class Helper Enumerable.Select(src, x => AdaptSQLRealValue(x)) ); } - + public static IEnumerable AdaptEnumerableSQLRealValue(this IEnumerable src) + { + return ( + Enumerable.Select(src, x => AdaptSQLRealValue(x)) + ); + } public static SQLRealValue AdaptSQLRealValue(this VariableRuntime src) { var dest = new SQLRealValue(); @@ -145,7 +159,12 @@ internal static class Helper Enumerable.Select(src, x => AdaptSQLRealValue(x)) ); } - + public static IEnumerable AdaptEnumerableSQLRealValue(this IEnumerable src) + { + return ( + Enumerable.Select(src, x => AdaptSQLRealValue(x)) + ); + } #endregion #region @@ -169,11 +188,8 @@ internal static class Helper ); } - public static QuestDBHistoryValue AdaptQuestDBHistoryValue(this VariableBasicData src) { - - var dest = new QuestDBHistoryValue(); dest.Id = src.Id; dest.Value = GetValue(src.Value); @@ -192,7 +208,6 @@ internal static class Helper ); } - public static QuestDBNumberHistoryValue AdaptQuestDBNumberHistoryValue(this VariableRuntime src) { var dest = new QuestDBNumberHistoryValue(); @@ -213,11 +228,8 @@ internal static class Helper ); } - public static QuestDBNumberHistoryValue AdaptQuestDBNumberHistoryValue(this VariableBasicData src) { - - var dest = new QuestDBNumberHistoryValue(); dest.Id = src.Id; dest.Value = src.Value.GetType() == typeof(bool) ? ConvertUtility.Convert.ToBoolean(src.Value, false) ? 1 : 0 : ConvertUtility.Convert.ToDecimal(src.Value, 0); @@ -236,17 +248,10 @@ internal static class Helper ); } - - static DateTime UtcTime1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); - #endregion - - - - private static string GetValue(object src) { if (src != null) @@ -269,6 +274,4 @@ internal static class Helper return string.Empty; } } - - } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/Common/RealDBProducerProperty.cs b/src/Plugin/ThingsGateway.Plugin.DB/Common/RealDBProducerProperty.cs index 3584a5a65..e0d8e584b 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/Common/RealDBProducerProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/Common/RealDBProducerProperty.cs @@ -42,6 +42,4 @@ public class RealDBProducerProperty : BusinessPropertyWithCacheInterval [DynamicProperty(Remark = "必须为间隔上传,才生效")] [AutoGenerateColumn(Visible = true, IsVisibleWhenEdit = false, IsVisibleWhenAdd = false)] public string? BigTextScriptHistoryTable { get; set; } - - } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/Mapper/GatewayMapper.cs b/src/Plugin/ThingsGateway.Plugin.DB/Mapper/GatewayMapper.cs index 498697dd8..6f3d0f066 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/Mapper/GatewayMapper.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/Mapper/GatewayMapper.cs @@ -18,13 +18,11 @@ namespace ThingsGateway.Plugin.DB; public static partial class GatewayMapper { public static partial List AdaptListHistoryAlarm(this IEnumerable src); + public static partial IEnumerable AdaptEnumerableHistoryAlarm(this IEnumerable src); [MapProperty(nameof(AlarmVariable.Id), nameof(HistoryAlarm.Id), Use = nameof(MapId))] private static partial HistoryAlarm AdaptHistoryAlarm(AlarmVariable src); [UserMapping(Default = false)] private static long MapId(long id) => CommonUtils.GetSingleId(); - } - - diff --git a/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/Entity/QuestDBHistoryValue.cs b/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/Entity/QuestDBHistoryValue.cs index 7099da400..e011da87e 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/Entity/QuestDBHistoryValue.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/Entity/QuestDBHistoryValue.cs @@ -60,7 +60,6 @@ public class QuestDBHistoryValue : IPrimaryIdEntity public string Value { get; set; } } - [SugarTable("historyNumberValue")] public class QuestDBNumberHistoryValue : IPrimaryIdEntity, IDBHistoryValue { diff --git a/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.cs b/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.cs index 6b146a5df..476fc5d61 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.cs @@ -26,8 +26,6 @@ namespace ThingsGateway.Plugin.QuestDB; /// public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable, IDBHistoryValueService { - - internal readonly RealDBProducerProperty _driverPropertys = new(); private readonly QuestDBProducerVariableProperty _variablePropertys = new(); @@ -49,8 +47,6 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable, ID protected override BusinessPropertyWithCacheInterval _businessPropertyWithCacheInterval => _driverPropertys; - - private SqlSugarClient _db; protected override void Dispose(bool disposing) @@ -59,7 +55,6 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable, ID base.Dispose(disposing); } - protected override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { _db = BusinessDatabaseUtil.GetDb(_driverPropertys.DbType, _driverPropertys.BigTextConnectStr); @@ -78,7 +73,6 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable, ID protected override async Task ProtectedStartAsync(CancellationToken cancellationToken) { - _db.DbMaintenance.CreateDatabase(); //必须为间隔上传 @@ -87,7 +81,6 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable, ID DynamicSQLBase? hisModel = CSharpScriptEngineExtension.Do(_driverPropertys.BigTextScriptHistoryTable); hisModel.Logger = LogMessage; await hisModel.DBInit(_db, cancellationToken).ConfigureAwait(false); - } else { @@ -98,7 +91,6 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable, ID await base.ProtectedStartAsync(cancellationToken).ConfigureAwait(false); } - public async Task> GetDBHistoryValuePagesAsync(DBHistoryValuePageInput input) { var data = await Query(input).ToPagedListAsync(input.Current, input.Size).ConfigureAwait(false);//分页 @@ -170,5 +162,4 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable, ID } return ret; } - } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.other.cs b/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.other.cs index 4d367435e..48267876a 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.other.cs @@ -23,7 +23,6 @@ namespace ThingsGateway.Plugin.QuestDB; /// public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable { - protected override ValueTask UpdateVarModel(IEnumerable> item, CancellationToken cancellationToken) { return UpdateVarModel(item.Select(a => a.Value).OrderBy(a => a.Id), cancellationToken); @@ -43,7 +42,6 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable return UpdateVarModel(item, cancellationToken); } - private void TimeIntervalUpdateVariable(IEnumerable variables) { if (_driverPropertys.GroupUpdate) @@ -69,14 +67,11 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable } } - private void UpdateVariable(VariableRuntime variableRuntime, VariableBasicData variable) { if (_driverPropertys.GroupUpdate && variable.BusinessGroupUpdateTrigger && !variable.BusinessGroup.IsNullOrEmpty() && VariableRuntimeGroups.TryGetValue(variable.BusinessGroup, out var variableRuntimeGroup)) { - AddQueueVarModel(new CacheDBItem>(variableRuntimeGroup.AdaptListVariableBasicData())); - } else { @@ -109,17 +104,14 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable getDeviceModel.Logger = LogMessage; await getDeviceModel.DBInsertable(_db, dbInserts, cancellationToken).ConfigureAwait(false); - } else { - var stringData = dbInserts.Where(a => (!a.IsNumber && a.Value is not bool)); var numberData = dbInserts.Where(a => (a.IsNumber || a.Value is bool)); if (numberData.Any()) { - Stopwatch stopwatch = new(); stopwatch.Start(); var data = numberData.AdaptListQuestDBNumberHistoryValue(); @@ -133,7 +125,6 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable } } - if (stringData.Any()) { Stopwatch stopwatch = new(); @@ -150,7 +141,6 @@ public partial class QuestDBProducer : BusinessBaseWithCacheIntervalVariable } } - return OperResult.Success; } catch (Exception ex) diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/Entity/SQLHistoryValue.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/Entity/SQLHistoryValue.cs index 86fcbdea4..48cd29aab 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/Entity/SQLHistoryValue.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/Entity/SQLHistoryValue.cs @@ -63,9 +63,6 @@ public class SQLHistoryValue : IPrimaryIdEntity public DateTime CreateTime { get; set; } } - - - [SplitTable(SplitType._Custom01)]//按周分表 (自带分表支持 年、季、月、周、日) [SugarTable("{name}_{year}{month}{day}", TableDescription = "设备采集历史表")]//3个变量必须要有 [SugarIndex("index_Id", nameof(SQLNumberHistoryValue.Id), OrderByType.Desc)] diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/Razor/SqlDBProducerPropertyRazor.razor.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/Razor/SqlDBProducerPropertyRazor.razor.cs index 62652c5ff..fbfd38652 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/Razor/SqlDBProducerPropertyRazor.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/Razor/SqlDBProducerPropertyRazor.razor.cs @@ -32,7 +32,6 @@ namespace ThingsGateway.Debug [Inject] IStringLocalizer RazorLocalizer { get; set; } - [Parameter, EditorRequired] public IEnumerable PluginPropertyEditorItems { get; set; } [Parameter, EditorRequired] @@ -56,10 +55,8 @@ namespace ThingsGateway.Debug string script = null; { script = pname == businessProperty.BigTextScriptHistoryTable ? businessProperty.BigTextScriptHistoryTable : businessProperty.BigTextScriptRealTable; - } - var op = new DialogOption() { IsScrolling = true, @@ -86,7 +83,6 @@ namespace ThingsGateway.Debug await getDeviceModel.DBInit(db,default); await getDeviceModel.DBInsertable(db,data,default); return stringBuilder.ToString(); - }}, {nameof(ScriptCheck.OnGetDemo),()=> @@ -97,6 +93,8 @@ namespace ThingsGateway.Debug using ThingsGateway.Foundation; using System.Dynamic; + using ThingsGateway.Plugin.DB; + using ThingsGateway.SqlSugar; using TouchSocket.Core; public class S1 : DynamicSQLBase @@ -106,15 +104,15 @@ namespace ThingsGateway.Debug { var sql = $""" - - """; + 1 + """; await db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); } public override async Task DBInsertable(ISqlSugarClient db, IEnumerable datas, CancellationToken cancellationToken) { var sql = $""" - - """; + 1 + """; await db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); } } @@ -129,7 +127,9 @@ namespace ThingsGateway.Debug using System.Dynamic; using ThingsGateway.Foundation; - + using ThingsGateway.Plugin.DB; + using ThingsGateway.SqlSugar; + using TouchSocket.Core; public class S1 : DynamicSQLBase { @@ -138,15 +138,15 @@ namespace ThingsGateway.Debug { var sql = $""" - - """; + 1 + """; await db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); } public override async Task DBInsertable(ISqlSugarClient db, IEnumerable datas, CancellationToken cancellationToken) { var sql = $""" - - """; + 1 + """; await db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); } } @@ -162,22 +162,16 @@ namespace ThingsGateway.Debug if (pname == nameof(SqlDBProducerProperty.BigTextScriptHistoryTable)) { businessProperty.BigTextScriptHistoryTable=v; - } else if (pname == nameof(SqlDBProducerProperty.BigTextScriptRealTable)) { businessProperty.BigTextScriptRealTable=v; } - }) }, - }); await DialogService.Show(op); - } - - private async Task CheckScript(RealDBProducerProperty businessProperty, string pname) { string script = businessProperty.BigTextScriptHistoryTable; @@ -214,7 +208,6 @@ namespace ThingsGateway.Debug await getDeviceModel.DBInit(db,default); await getDeviceModel.DBInsertable(db,data,default); return stringBuilder.ToString(); - }}, {nameof(ScriptCheck.OnGetDemo),()=> @@ -229,7 +222,6 @@ namespace ThingsGateway.Debug using ThingsGateway.Gateway.Application; using ThingsGateway.Plugin.DB; using System.Dynamic; - using TouchSocket.Core; public class S1 : DynamicSQLBase { @@ -238,15 +230,15 @@ namespace ThingsGateway.Debug { var sql = $""" - 111 - """; + 111 + """; await db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); } public override async Task DBInsertable(ISqlSugarClient db, IEnumerable datas, CancellationToken cancellationToken) { var sql = $""" - 111 - """; + 111 + """; await db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); } } @@ -272,15 +264,15 @@ namespace ThingsGateway.Debug { var sql = $""" - 111 - """; + 111 + """; await db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); } public override async Task DBInsertable(ISqlSugarClient db, IEnumerable datas, CancellationToken cancellationToken) { var sql = $""" 111 - """; + """; await db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); } } @@ -291,22 +283,12 @@ namespace ThingsGateway.Debug ; } }, - {nameof(ScriptCheck.ScriptChanged),EventCallback.Factory.Create(this, v => - { -businessProperty.BigTextScriptHistoryTable=v; - - }) }, - + {nameof(ScriptCheck.ScriptChanged),EventCallback.Factory.Create(this, v => businessProperty.BigTextScriptHistoryTable=v) }, }); await DialogService.Show(op); - } - [Inject] DialogService DialogService { get; set; } } } - - - diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SplitTable/SqlDBBusinessDatabaseUtil.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SplitTable/SqlDBBusinessDatabaseUtil.cs index 6c843a431..d4b2c7b9b 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SplitTable/SqlDBBusinessDatabaseUtil.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SplitTable/SqlDBBusinessDatabaseUtil.cs @@ -16,7 +16,6 @@ using System.Reflection; using ThingsGateway.DB; using ThingsGateway.SqlSugar; - namespace ThingsGateway.Gateway.Application; /// diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SplitTable/SqlDBDateSplitTableService.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SplitTable/SqlDBDateSplitTableService.cs index d3ff9a19b..2b4a2d6e9 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SplitTable/SqlDBDateSplitTableService.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SplitTable/SqlDBDateSplitTableService.cs @@ -52,7 +52,6 @@ public class SqlDBDateSplitTableService : DateSplitTableService { var type = (SplitType)_sqlDBProducerProperty.SqlDBSplitType; return GetTableName(db, EntityInfo, type); - } public override string GetTableName(ISqlSugarClient db, EntityInfo EntityInfo, SplitType splitType) diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDBProducer.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDBProducer.cs index 4ee9c72c4..4a0e25cd3 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDBProducer.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDBProducer.cs @@ -30,8 +30,6 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable, IDBH { - - internal readonly SqlDBProducerProperty _driverPropertys = new(); private readonly SqlDBProducerVariableProperty _variablePropertys = new(); @@ -79,7 +77,6 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable, IDBH return $" {nameof(SqlDBProducer)}"; } - protected override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { _db = SqlDBBusinessDatabaseUtil.GetDb(_driverPropertys); @@ -90,8 +87,6 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable, IDBH } await base.InitChannelAsync(channel, cancellationToken).ConfigureAwait(false); - - } public override Task AfterVariablesChangedAsync(CancellationToken cancellationToken) @@ -114,7 +109,6 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable, IDBH { await hisModel.DBInit(_db, cancellationToken).ConfigureAwait(false); } - } else { @@ -122,7 +116,6 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable, IDBH { _db.CodeFirst.InitTables(typeof(SQLHistoryValue)); _db.CodeFirst.InitTables(typeof(SQLNumberHistoryValue)); - } } if (!_driverPropertys.BigTextScriptRealTable.IsNullOrEmpty()) @@ -133,7 +126,6 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable, IDBH { await realModel.DBInit(_db, cancellationToken).ConfigureAwait(false); } - } else { @@ -169,10 +161,7 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable, IDBH LogMessage?.LogWarning(ex); success = false; - list.ForEach(variable => - { - RealTimeVariables.AddOrUpdate(variable.Id, variable, (key, oldValue) => variable); - }); + list.ForEach(variable => RealTimeVariables.AddOrUpdate(variable.Id, variable, (key, oldValue) => variable)); } } @@ -282,5 +271,4 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable, IDBH } return ret; } - } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDBProducerProperty.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDBProducerProperty.cs index 59861d151..a8596ed6c 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDBProducerProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDBProducerProperty.cs @@ -44,7 +44,6 @@ public class SqlDBProducerProperty : BusinessPropertyWithCacheInterval [DynamicProperty] public string ReadDBTableName { get; set; } = "ReadDBTableName"; - [DynamicProperty] [Required] public string NumberTableName { get; set; } = "historyNumberValue"; @@ -56,7 +55,6 @@ public class SqlDBProducerProperty : BusinessPropertyWithCacheInterval public string NumberTableNameLow => NumberTableName.ToLower(); public string StringTableNameLow => StringTableName.ToLower(); - [DynamicProperty] public DbType DbType { get; set; } = DbType.SqlServer; @@ -80,5 +78,4 @@ public class SqlDBProducerProperty : BusinessPropertyWithCacheInterval [DynamicProperty(Remark = "必须为间隔上传,才生效")] [AutoGenerateColumn(Visible = true, IsVisibleWhenEdit = false, IsVisibleWhenAdd = false)] public string? BigTextScriptHistoryTable { get; set; } - } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDbProducer.other.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDbProducer.other.cs index 6b89166f9..40aff95f7 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDbProducer.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlDB/SqlDbProducer.other.cs @@ -81,9 +81,7 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable { if (_driverPropertys.GroupUpdate && variable.BusinessGroupUpdateTrigger && !variable.BusinessGroup.IsNullOrEmpty() && VariableRuntimeGroups.TryGetValue(variable.BusinessGroup, out var variableRuntimeGroup)) { - AddQueueVarModel(new CacheDBItem>(variableRuntimeGroup.AdaptListVariableBasicData())); - } else { @@ -97,7 +95,6 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable } } - private async ValueTask UpdateVarModel(IEnumerable item, CancellationToken cancellationToken) { var result = await InserableAsync(item.WhereIf(_driverPropertys.OnlineFilter, a => a.IsOnline == true).ToList(), cancellationToken).ConfigureAwait(false); @@ -125,17 +122,15 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable getDeviceModel.Logger = LogMessage; await getDeviceModel.DBInsertable(_db, dbInserts, cancellationToken).ConfigureAwait(false); - } else { - var stringData = dbInserts.Where(a => (!a.IsNumber && a.Value is not bool)); var numberData = dbInserts.Where(a => (a.IsNumber || a.Value is bool)); if (numberData.Any()) { - var data = numberData.AdaptListSQLNumberHistoryValue(); + var data = numberData.AdaptEnumerableSQLNumberHistoryValue(); Stopwatch stopwatch = new(); stopwatch.Start(); var result = await _db.Fastest().SplitTable().BulkCopyAsync(data).ConfigureAwait(false); @@ -146,14 +141,13 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable { LogMessage?.Trace($"TableName:{_driverPropertys.NumberTableName},Count:{result},watchTime: {stopwatch.ElapsedMilliseconds} ms"); } - } if (stringData.Any()) { Stopwatch stopwatch = new(); stopwatch.Start(); - var data = stringData.AdaptListSQLHistoryValue(); + var data = stringData.AdaptEnumerableSQLHistoryValue(); var result = await _db.Fastest().SplitTable().BulkCopyAsync(data).ConfigureAwait(false); stopwatch.Stop(); @@ -163,11 +157,8 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable LogMessage?.Trace($"TableName:{_driverPropertys.StringTableName},Count:{result},watchTime: {stopwatch.ElapsedMilliseconds} ms"); } } - - } - return OperResult.Success; } catch (Exception ex) @@ -189,17 +180,15 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable await getDeviceModel.DBInsertable(_db, datas, cancellationToken).ConfigureAwait(false); return OperResult.Success; - } else { - if (!_initRealData) { Stopwatch stopwatch = new(); stopwatch.Start(); var ids = (await _db.Queryable().AS(_driverPropertys.ReadDBTableName).Select(a => a.Id).ToListAsync(cancellationToken).ConfigureAwait(false)).ToHashSet(); - var InsertData = IdVariableRuntimes.Where(a => !ids.Contains(a.Key)).Select(a => a.Value).AdaptListSQLRealValue(); + var InsertData = IdVariableRuntimes.Where(a => !ids.Contains(a.Key)).Select(a => a.Value).AdaptEnumerableSQLRealValue(); var result = await _db.Fastest().AS(_driverPropertys.ReadDBTableName).BulkCopyAsync(InsertData).ConfigureAwait(false); _initRealData = true; stopwatch.Stop(); @@ -214,7 +203,7 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable Stopwatch stopwatch = new(); stopwatch.Start(); - var data = datas.AdaptListSQLRealValue(); + var data = datas.AdaptEnumerableSQLRealValue(); var result = await _db.Fastest().AS(_driverPropertys.ReadDBTableName).BulkUpdateAsync(data).ConfigureAwait(false); stopwatch.Stop(); @@ -226,7 +215,6 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable } return OperResult.Success; } - } } catch (Exception ex) @@ -235,7 +223,5 @@ public partial class SqlDBProducer : BusinessBaseWithCacheIntervalVariable } } - - #endregion 方法 } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarm.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarm.cs index 2594fe037..44b63a48e 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarm.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarm.cs @@ -23,7 +23,6 @@ namespace ThingsGateway.Plugin.SqlHistoryAlarm; /// public partial class SqlHistoryAlarm : BusinessBaseWithCacheAlarm, IDBHistoryAlarmService { - internal readonly SqlHistoryAlarmProperty _driverPropertys = new(); private readonly SqlHistoryAlarmVariableProperty _variablePropertys = new(); public override Type DriverUIType => typeof(HistoryAlarmPage); diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarm.other.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarm.other.cs index 81bcb5588..0c5bf9c3e 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarm.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarm.other.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.Plugin.SqlHistoryAlarm; /// public partial class SqlHistoryAlarm : BusinessBaseWithCacheAlarm { - protected override void AlarmChange(AlarmVariable alarmVariable) { AddQueueAlarmModel(new CacheDBItem(alarmVariable)); @@ -57,7 +56,6 @@ public partial class SqlHistoryAlarm : BusinessBaseWithCacheAlarm getDeviceModel.Logger = LogMessage; await getDeviceModel.DBInsertable(_db, dbInserts, cancellationToken).ConfigureAwait(false); - } else { @@ -67,9 +65,9 @@ public partial class SqlHistoryAlarm : BusinessBaseWithCacheAlarm stopwatch.Start(); if (_db.CurrentConnectionConfig.DbType == SqlSugar.DbType.QuestDB) - result = await _db.Insertable(dbInserts).AS(_driverPropertys.TableName).ExecuteCommandAsync(cancellationToken).ConfigureAwait(false); + result = await _db.Insertable(dbInserts.AdaptListHistoryAlarm()).AS(_driverPropertys.TableName).ExecuteCommandAsync(cancellationToken).ConfigureAwait(false); else - result = await _db.Fastest().AS(_driverPropertys.TableName).PageSize(100000).BulkCopyAsync(dbInserts.AdaptListHistoryAlarm()).ConfigureAwait(false); + result = await _db.Fastest().AS(_driverPropertys.TableName).PageSize(100000).BulkCopyAsync(dbInserts.AdaptEnumerableHistoryAlarm()).ConfigureAwait(false); stopwatch.Stop(); //var result = await db.Insertable(dbInserts).SplitTable().ExecuteCommandAsync().ConfigureAwait(false); @@ -80,15 +78,11 @@ public partial class SqlHistoryAlarm : BusinessBaseWithCacheAlarm return OperResult.Success; } - return OperResult.Success; } catch (Exception ex) { return new OperResult(ex); } - } - - } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarmProperty.cs b/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarmProperty.cs index e60d0561e..63a46b96e 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarmProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/SqlHistoryAlarm/SqlHistoryAlarmProperty.cs @@ -14,7 +14,6 @@ using System.ComponentModel.DataAnnotations; using ThingsGateway.Plugin.SqlDB; - namespace ThingsGateway.Plugin.SqlHistoryAlarm; /// @@ -39,6 +38,5 @@ public class SqlHistoryAlarmProperty : BusinessPropertyWithCache [AutoGenerateColumn(Visible = true, IsVisibleWhenEdit = false, IsVisibleWhenAdd = false)] public string? BigTextScriptHistoryTable { get; set; } - public override bool OnlineFilter { get; set; } = false; } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBHistoryValue.cs b/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBHistoryValue.cs index 950871b36..56bd2ef7a 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBHistoryValue.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBHistoryValue.cs @@ -25,23 +25,18 @@ public class TDengineDBNumberHistoryValue : STable, IPrimaryIdEntity, IDBHistory [AutoGenerateColumn(Order = 1, Visible = true, Sortable = true, Filterable = false)] public DateTime CreateTime { get; set; } - [AutoGenerateColumn(Order = 1, Visible = true, Sortable = true, Filterable = false)] public DateTime CollectTime { get; set; } - [AutoGenerateColumn(Order = 1, Visible = true, Sortable = true, Filterable = false)] public bool IsOnline { get; set; } [AutoGenerateColumn(Order = 1, Visible = true, Sortable = true, Filterable = false)] public decimal Value { get; set; } - - [AutoGenerateColumn(Order = 1, Visible = true, Sortable = true, Filterable = false)] public string DeviceName { get; set; } - [AutoGenerateColumn(Order = 1, Visible = true, Sortable = true, Filterable = false)] public string Name { get; set; } } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBProducer.cs b/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBProducer.cs index ae91619e3..38cc024de 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBProducer.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBProducer.cs @@ -29,8 +29,6 @@ namespace ThingsGateway.Plugin.TDengineDB; public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable, IDBHistoryValueService { - - internal readonly RealDBProducerProperty _driverPropertys = new() { DbType = DbType.TDengine, @@ -55,8 +53,6 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable, protected override BusinessPropertyWithCacheInterval _businessPropertyWithCacheInterval => _driverPropertys; - - protected override void Dispose(bool disposing) { _db?.TryDispose(); @@ -78,7 +74,6 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable, assemblies.Add(typeof(TDengineProvider).Assembly); InstanceFactory.CustomAssemblies = assemblies.ToArray(); - await base.InitChannelAsync(channel, cancellationToken).ConfigureAwait(false); } @@ -97,7 +92,6 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable, { _db.DbMaintenance.CreateDatabase(); - //必须为间隔上传 if (!_driverPropertys.BigTextScriptHistoryTable.IsNullOrEmpty()) { @@ -105,11 +99,9 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable, { await hisModel.DBInit(_db, cancellationToken).ConfigureAwait(false); } - } else { - var sql = $""" CREATE STABLE IF NOT EXISTS `{_driverPropertys.StringTableNameLow}`( `createtime` TIMESTAMP , @@ -120,7 +112,6 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable, """; await _db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); - sql = $""" CREATE STABLE IF NOT EXISTS `{_driverPropertys.NumberTableNameLow}`( `createtime` TIMESTAMP , @@ -130,7 +121,6 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable, `value` DOUBLE ) TAGS(`devicename` VARCHAR(100) ,`name` VARCHAR(100)) """; await _db.Ado.ExecuteCommandAsync(sql, default, cancellationToken: cancellationToken).ConfigureAwait(false); - } await base.ProtectedStartAsync(cancellationToken).ConfigureAwait(false); } diff --git a/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBProducer.other.cs b/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBProducer.other.cs index 9e959268c..03ffb5454 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBProducer.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBProducer.other.cs @@ -28,7 +28,6 @@ namespace ThingsGateway.Plugin.TDengineDB; /// public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable { - protected override ValueTask UpdateVarModel(IEnumerable> item, CancellationToken cancellationToken) { return UpdateVarModel(item.Select(a => a.Value).OrderBy(a => a.Id), cancellationToken); @@ -78,9 +77,7 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable { if (_driverPropertys.GroupUpdate && variable.BusinessGroupUpdateTrigger && !variable.BusinessGroup.IsNullOrEmpty() && VariableRuntimeGroups.TryGetValue(variable.BusinessGroup, out var variableRuntimeGroup)) { - AddQueueVarModel(new CacheDBItem>(variableRuntimeGroup.AdaptListVariableBasicData())); - } else { @@ -113,7 +110,6 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable var getDeviceModel = CSharpScriptEngineExtension.Do(_driverPropertys.BigTextScriptHistoryTable); getDeviceModel.Logger = LogMessage; await getDeviceModel.DBInsertable(_db, dbInserts, cancellationToken).ConfigureAwait(false); - } else { @@ -123,7 +119,6 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable await InserableAsync(numberData, _driverPropertys.NumberTableNameLow, cancellationToken).ConfigureAwait(false); await InserableAsync(stringData, _driverPropertys.StringTableNameLow, cancellationToken).ConfigureAwait(false); - } return OperResult.Success; } @@ -163,20 +158,17 @@ public partial class TDengineDBProducer : BusinessBaseWithCacheIntervalVariable } stringBuilder.Remove(stringBuilder.Length - 1, 1); } - } stringBuilder.Append(';'); stringBuilder.AppendLine(); var result = await _db.Ado.ExecuteCommandAsync(stringBuilder.ToString(), default, cancellationToken: cancellationToken).ConfigureAwait(false); - stopwatch.Stop(); //if (result > 0) { LogMessage?.Trace($"TableName:{tableName},Count:{result},watchTime: {stopwatch.ElapsedMilliseconds} ms"); } - } private string GetValue(VariableBasicData src) { diff --git a/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBUtil.cs b/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBUtil.cs index e07f4c286..c39d91476 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBUtil.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/TDengineDB/TDengineDBUtil.cs @@ -29,5 +29,4 @@ public static class TDengineDBUtil db.MappingSTableName(stableName); return db; } - } diff --git a/src/Plugin/ThingsGateway.Plugin.Dlt645/Dlt645_2007/Dlt645_2007Master.cs b/src/Plugin/ThingsGateway.Plugin.Dlt645/Dlt645_2007/Dlt645_2007Master.cs index 781d5bf4b..52a627eb2 100644 --- a/src/Plugin/ThingsGateway.Plugin.Dlt645/Dlt645_2007/Dlt645_2007Master.cs +++ b/src/Plugin/ThingsGateway.Plugin.Dlt645/Dlt645_2007/Dlt645_2007Master.cs @@ -46,10 +46,8 @@ public class Dlt645_2007Master : CollectFoundationBase /// public override IDevice? FoundationDevice => _plc; - protected override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { - ArgumentNullException.ThrowIfNull(channel); var plc = _plc; diff --git a/src/Plugin/ThingsGateway.Plugin.Dlt645/Dlt645_2007/Dlt645_2007MasterProperty.cs b/src/Plugin/ThingsGateway.Plugin.Dlt645/Dlt645_2007/Dlt645_2007MasterProperty.cs index 8995a5c43..abee5b354 100644 --- a/src/Plugin/ThingsGateway.Plugin.Dlt645/Dlt645_2007/Dlt645_2007MasterProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.Dlt645/Dlt645_2007/Dlt645_2007MasterProperty.cs @@ -40,5 +40,4 @@ public class Dlt645_2007MasterProperty : CollectFoundationDtuPropertyBase /// [DynamicProperty] public string FEHead { get; set; } = "FEFEFEFE"; - } diff --git a/src/Plugin/ThingsGateway.Plugin.Dlt645/Pages/Dlt645_2007AddressComponent.razor.cs b/src/Plugin/ThingsGateway.Plugin.Dlt645/Pages/Dlt645_2007AddressComponent.razor.cs index 439e6847b..aad2d0084 100644 --- a/src/Plugin/ThingsGateway.Plugin.Dlt645/Pages/Dlt645_2007AddressComponent.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.Dlt645/Pages/Dlt645_2007AddressComponent.razor.cs @@ -40,7 +40,6 @@ public partial class Dlt645_2007AddressComponent : ComponentBase, IAddressUIBase } catch { - } base.OnParametersSet(); } @@ -50,7 +49,6 @@ public partial class Dlt645_2007AddressComponent : ComponentBase, IAddressUIBase { try { - Model = $"{ConverterConfig.ToString()}{Value?.ToString()}"; ModelChanged?.Invoke(Model); diff --git a/src/Plugin/ThingsGateway.Plugin.Dlt645/Pages/Dlt645_2007Master.razor.cs b/src/Plugin/ThingsGateway.Plugin.Dlt645/Pages/Dlt645_2007Master.razor.cs index 926ea4b8e..25393ce71 100644 --- a/src/Plugin/ThingsGateway.Plugin.Dlt645/Pages/Dlt645_2007Master.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.Dlt645/Pages/Dlt645_2007Master.razor.cs @@ -59,10 +59,7 @@ public partial class Dlt645_2007Master : ComponentBase, IDisposable op.Component = BootstrapDynamicComponent.CreateComponent(new Dictionary { - {nameof(Dlt645_2007AddressComponent.ModelChanged), (string a) => - { - DeviceComponent?.SetRegisterAddress(a); - }}, + {nameof(Dlt645_2007AddressComponent.ModelChanged), (string a) => DeviceComponent?.SetRegisterAddress(a)}, {nameof(Dlt645_2007AddressComponent.Model),address }, }); diff --git a/src/Plugin/ThingsGateway.Plugin.Http/Webhook/Webhook.cs b/src/Plugin/ThingsGateway.Plugin.Http/Webhook/Webhook.cs index 3ac929a53..23af3203e 100644 --- a/src/Plugin/ThingsGateway.Plugin.Http/Webhook/Webhook.cs +++ b/src/Plugin/ThingsGateway.Plugin.Http/Webhook/Webhook.cs @@ -22,5 +22,4 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll /// public override bool IsConnected() => success; - } diff --git a/src/Plugin/ThingsGateway.Plugin.Http/Webhook/Webhook.other.cs b/src/Plugin/ThingsGateway.Plugin.Http/Webhook/Webhook.other.cs index c7eefcb9f..cf349142a 100644 --- a/src/Plugin/ThingsGateway.Plugin.Http/Webhook/Webhook.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.Http/Webhook/Webhook.other.cs @@ -22,7 +22,6 @@ namespace ThingsGateway.Plugin.Webhook; /// public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll { - protected override void AlarmChange(AlarmVariable alarmVariable) { if (!_businessPropertyWithCacheIntervalScript.AlarmTopic.IsNullOrWhiteSpace()) @@ -30,11 +29,8 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll base.AlarmChange(alarmVariable); } - - protected override void DeviceTimeInterval(DeviceRuntime deviceRunTime, DeviceBasicData deviceData) { - if (!_businessPropertyWithCacheIntervalScript.DeviceTopic.IsNullOrWhiteSpace()) AddQueueDevModel(new(deviceData)); @@ -42,8 +38,6 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll } protected override void DeviceChange(DeviceRuntime deviceRunTime, DeviceBasicData deviceData) { - - if (!_businessPropertyWithCacheIntervalScript.DeviceTopic.IsNullOrWhiteSpace()) AddQueueDevModel(new(deviceData)); @@ -57,8 +51,6 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll protected override ValueTask UpdateDevModel(IEnumerable> item, CancellationToken cancellationToken) { - - return UpdateDevModel(item.Select(a => a.Value).OrderBy(a => a.Id), cancellationToken); } @@ -111,17 +103,13 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll } } - private void UpdateVariable(VariableBasicData variable) { if (!_businessPropertyWithCacheIntervalScript.VariableTopic.IsNullOrWhiteSpace()) { - if (_driverPropertys.GroupUpdate && variable.BusinessGroupUpdateTrigger && !variable.BusinessGroup.IsNullOrEmpty() && VariableRuntimeGroups.TryGetValue(variable.BusinessGroup, out var variableRuntimeGroup)) { - AddQueueVarModel(new CacheDBItem>(variableRuntimeGroup.AdaptListVariableBasicData())); - } else { @@ -130,13 +118,10 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll } } - - private readonly HttpClient client = new HttpClient(); private async Task WebhookUpAsync(TopicArray topicArray, CancellationToken cancellationToken) { - // 设置请求内容 //var content = new StringContent(json, Encoding.UTF8, "application/json"); using var content = new ByteArrayContent(topicArray.Payload); @@ -173,7 +158,6 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll { return new(ex); } - } #region private @@ -202,8 +186,6 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll return OperResult.Success; } - - private ValueTask UpdateAlarmModel(IEnumerable item, CancellationToken cancellationToken) { var topicArrayList = GetAlarmTopicArrays(item); @@ -212,7 +194,6 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll private ValueTask UpdateDevModel(IEnumerable item, CancellationToken cancellationToken) { - var topicArrayList = GetDeviceTopicArray(item); return Update(topicArrayList, cancellationToken); } @@ -223,9 +204,6 @@ public partial class Webhook : BusinessBaseWithCacheIntervalScriptAll return Update(topicArrayList, cancellationToken); } - #endregion private - - } diff --git a/src/Plugin/ThingsGateway.Plugin.Http/Webhook/WebhookProperty.cs b/src/Plugin/ThingsGateway.Plugin.Http/Webhook/WebhookProperty.cs index 11f272bf4..30e5f52b8 100644 --- a/src/Plugin/ThingsGateway.Plugin.Http/Webhook/WebhookProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.Http/Webhook/WebhookProperty.cs @@ -15,5 +15,4 @@ namespace ThingsGateway.Plugin.Webhook; /// public class WebhookProperty : BusinessPropertyWithCacheIntervalScript { - } diff --git a/src/Plugin/ThingsGateway.Plugin.Http/Webhook/WebhookVariableProperty.cs b/src/Plugin/ThingsGateway.Plugin.Http/Webhook/WebhookVariableProperty.cs index e88ba8d6a..1f3bee406 100644 --- a/src/Plugin/ThingsGateway.Plugin.Http/Webhook/WebhookVariableProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.Http/Webhook/WebhookVariableProperty.cs @@ -15,5 +15,4 @@ namespace ThingsGateway.Plugin.Webhook; /// public class WebhookVariableProperty : VariablePropertyBase { - } diff --git a/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducer.cs b/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducer.cs index 327d15823..15441c0db 100644 --- a/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducer.cs +++ b/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducer.cs @@ -81,7 +81,6 @@ public partial class KafkaProducer : BusinessBaseWithCacheIntervalScriptAll } catch { - } _producer?.SafeDispose(); base.Dispose(disposing); @@ -90,6 +89,5 @@ public partial class KafkaProducer : BusinessBaseWithCacheIntervalScriptAll protected override Task ProtectedExecuteAsync(object? state, CancellationToken cancellationToken) { return Update(cancellationToken); - } } diff --git a/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducer.other.cs b/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducer.other.cs index 0c9a40af9..fe6edc8cf 100644 --- a/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducer.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducer.other.cs @@ -112,9 +112,7 @@ public partial class KafkaProducer : BusinessBaseWithCacheIntervalScriptAll { if (_driverPropertys.GroupUpdate && variable.BusinessGroupUpdateTrigger && !variable.BusinessGroup.IsNullOrEmpty() && VariableRuntimeGroups.TryGetValue(variable.BusinessGroup, out var variableRuntimeGroup)) { - AddQueueVarModel(new CacheDBItem>(variableRuntimeGroup.AdaptListVariableBasicData())); - } else { @@ -123,7 +121,6 @@ public partial class KafkaProducer : BusinessBaseWithCacheIntervalScriptAll } } - #region private private async ValueTask Update(IEnumerable topicArrayList, CancellationToken cancellationToken) diff --git a/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducerProperty.cs b/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducerProperty.cs index 1b342c727..0bfc9f6ca 100644 --- a/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducerProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.Kafka/Kafka/KafkaProducerProperty.cs @@ -46,5 +46,4 @@ public class KafkaProducerProperty : BusinessPropertyWithCacheIntervalScript [DynamicProperty] public SaslMechanism SaslMechanism { get; set; } = SaslMechanism.Plain; - } diff --git a/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusMaster/ModbusMaster.cs b/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusMaster/ModbusMaster.cs index 1040b14f7..b917efdf8 100644 --- a/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusMaster/ModbusMaster.cs +++ b/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusMaster/ModbusMaster.cs @@ -50,7 +50,6 @@ public class ModbusMaster : CollectFoundationBase /// protected override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { - //List variableRuntimes = new(); //variableRuntimes.Add(new VariableRuntime() //{ @@ -63,7 +62,6 @@ public class ModbusMaster : CollectFoundationBase //await GlobalData.VariableRuntimeService.AddDynamicVariable(variableRuntimes).ConfigureAwait(false); - ArgumentNullException.ThrowIfNull(channel); var plc = _plc; _plc = new(); @@ -78,7 +76,6 @@ public class ModbusMaster : CollectFoundationBase _plc.ModbusType = _driverPropertys.ModbusType; _plc.InitChannel(channel, LogMessage); await base.InitChannelAsync(channel, cancellationToken).ConfigureAwait(false); - } /// diff --git a/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusMaster/ModbusMasterProperty.cs b/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusMaster/ModbusMasterProperty.cs index dbbfe99a4..8cca47da1 100644 --- a/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusMaster/ModbusMasterProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusMaster/ModbusMasterProperty.cs @@ -11,7 +11,6 @@ using ThingsGateway.Foundation.Modbus; using ThingsGateway.Gateway.Application; - namespace ThingsGateway.Plugin.Modbus; /// @@ -27,6 +26,4 @@ public class ModbusMasterProperty : CollectFoundationDtuPackPropertyBase /// [DynamicProperty] public byte Station { get; set; } = 1; - - } diff --git a/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusSlave/ModbusSlave.cs b/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusSlave/ModbusSlave.cs index 8e93c81af..9e4626ba4 100644 --- a/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusSlave/ModbusSlave.cs +++ b/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusSlave/ModbusSlave.cs @@ -118,16 +118,12 @@ public class ModbusSlave : BusinessBase GlobalData.VariableValueChangeEvent -= VariableValueChange; GlobalData.VariableValueChangeEvent += VariableValueChange; - } public override async Task AfterVariablesChangedAsync(CancellationToken cancellationToken) { await base.AfterVariablesChangedAsync(cancellationToken).ConfigureAwait(false); ModbusVariableQueue?.Clear(); - IdVariableRuntimes.ForEach(a => - { - VariableValueChange(a.Value, default); - }); + IdVariableRuntimes.ForEach(a => VariableValueChange(a.Value, default)); ModbusVariables = IdVariableRuntimes.ToDictionary(a => { @@ -138,7 +134,6 @@ public class ModbusSlave : BusinessBase }, a => a.Value ); - } /// protected override void Dispose(bool disposing) @@ -150,7 +145,6 @@ public class ModbusSlave : BusinessBase base.Dispose(disposing); } - protected override async Task ProtectedExecuteAsync(object? state, CancellationToken cancellationToken) { //获取设备连接状态 @@ -190,7 +184,6 @@ public class ModbusSlave : BusinessBase await _plc.WriteAsync(item.Key, JToken.FromObject(variableRuntime.Value), variableRuntime.DataType, cancellationToken).ConfigureAwait(false); } } - } /// @@ -207,7 +200,6 @@ public class ModbusSlave : BusinessBase foreach (var item in tag) { - var type = item.Value.GetPropertyValue(DeviceId, nameof(ModbusSlaveVariableProperty.DataType)); var dType = Enum.TryParse(type, out DataTypeEnum dataType) ? dataType : item.Value.DataType; var addressStr = item.Value.GetPropertyValue(DeviceId, nameof(ModbusSlaveVariableProperty.ServiceAddress)); @@ -226,7 +218,6 @@ public class ModbusSlave : BusinessBase if (!result.IsSuccess) return result; - } else { @@ -267,13 +258,8 @@ public class ModbusSlave : BusinessBase base.PauseThread(pause); if (!pause && oldV != pause) { - IdVariableRuntimes.ForEach(a => - { - VariableValueChange(a.Value, null); - }); + IdVariableRuntimes.ForEach(a => VariableValueChange(a.Value, null)); } } } - - } diff --git a/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusSlave/ModbusSlaveProperty.cs b/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusSlave/ModbusSlaveProperty.cs index c0afb0441..3d818c2d7 100644 --- a/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusSlave/ModbusSlaveProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.Modbus/ModbusSlave/ModbusSlaveProperty.cs @@ -53,5 +53,4 @@ public class ModbusSlaveProperty : BusinessPropertyBase /// [DynamicProperty] public bool IsWriteMemory { get; set; } = true; - } diff --git a/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusAddressComponent.razor.cs b/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusAddressComponent.razor.cs index 46cc10e36..79d9c1add 100644 --- a/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusAddressComponent.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusAddressComponent.razor.cs @@ -40,7 +40,6 @@ public partial class ModbusAddressComponent : ComponentBase, IAddressUIBase } catch { - } base.OnParametersSet(); } @@ -50,7 +49,6 @@ public partial class ModbusAddressComponent : ComponentBase, IAddressUIBase { try { - Model = $"{ConverterConfig.ToString()}{Value?.ToString()}"; ModelChanged?.Invoke(Model); diff --git a/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusMaster.razor.cs b/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusMaster.razor.cs index 497ec9c3b..5c2409928 100644 --- a/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusMaster.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusMaster.razor.cs @@ -59,10 +59,7 @@ public partial class ModbusMaster : ComponentBase, IDisposable op.Component = BootstrapDynamicComponent.CreateComponent(new Dictionary { - {nameof(ModbusAddressComponent.ModelChanged), (string a) => - { - DeviceComponent?.SetRegisterAddress(a); - }}, + {nameof(ModbusAddressComponent.ModelChanged), (string a) => DeviceComponent?.SetRegisterAddress(a)}, {nameof(ModbusAddressComponent.Model),address }, }); @@ -72,4 +69,3 @@ public partial class ModbusMaster : ComponentBase, IDisposable [Inject] DialogService DialogService { get; set; } } - diff --git a/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusSlave.razor.cs b/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusSlave.razor.cs index 5de8a4d24..fe163b946 100644 --- a/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusSlave.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.Modbus/Pages/ModbusSlave.razor.cs @@ -52,10 +52,7 @@ public partial class ModbusSlave : ComponentBase, IDisposable op.Component = BootstrapDynamicComponent.CreateComponent(new Dictionary { - {nameof(ModbusAddressComponent.ModelChanged), (string a) => - { - DeviceComponent?.SetRegisterAddress(a); - }}, + {nameof(ModbusAddressComponent.ModelChanged), (string a) => DeviceComponent?.SetRegisterAddress(a)}, {nameof(ModbusAddressComponent.Model),address }, }); diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/DynamicMqttClientRpcBase.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/DynamicMqttClientRpcBase.cs index 0018fa548..cc93b3ff5 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/DynamicMqttClientRpcBase.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/DynamicMqttClientRpcBase.cs @@ -35,7 +35,6 @@ public abstract class DynamicMqttClientRpcBase /// public virtual async Task RPCInvokeAsync(TouchSocket.Core.ILog logMessage, MqttApplicationMessageReceivedEventArgs args, MqttClientProperty driverPropertys, MQTTnet.IMqttClient mqttClient, Func>, ValueTask>>> getRpcResult, Func> tryMqttClientAsync, CancellationToken cancellationToken) { - if (driverPropertys.RpcWriteTopic.IsNullOrWhiteSpace()) return; var t = string.Format(null, "{0}/+", driverPropertys.RpcWriteTopic); if (MqttTopicFilterComparer.Compare(args.ApplicationMessage.Topic, t) != MqttTopicFilterCompareResult.IsMatch) @@ -51,13 +50,10 @@ public abstract class DynamicMqttClientRpcBase var isConnect = await tryMqttClientAsync(CancellationToken.None).ConfigureAwait(false); if (isConnect.IsSuccess) { - var variableMessage = new MqttApplicationMessageBuilder() .WithTopic($"{args.ApplicationMessage.Topic}/Response") .WithPayload(mqttRpcResult.ToSystemTextJsonString(driverPropertys.JsonFormattingIndented)).Build(); await mqttClient.PublishAsync(variableMessage, cancellationToken).ConfigureAwait(false); - - } } catch diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClient.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClient.cs index 08f966f12..4f288e4d3 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClient.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClient.cs @@ -61,7 +61,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll { #region 初始化 - #if NET8_0_OR_GREATER var mqttFactory = new MqttClientFactory(); var mqttClientOptionsBuilder = mqttFactory.CreateClientOptionsBuilder() @@ -80,10 +79,7 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll mqttClientOptionsBuilder = mqttClientOptionsBuilder.WithTlsOptions(a => a .WithTrustChain(new X509Certificate2Collection(caCert)) .WithClientCertificates(new X509Certificate2Collection(clientCert)) - .WithCertificateValidationHandler((a) => - { - return true; - }) + .WithCertificateValidationHandler((a) => true) ); } @@ -111,38 +107,26 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll if (_driverPropertys.RpcWriteTopic == ThingsBoardRpcTopic) { mqttClientSubscribeOptionsBuilder = mqttClientSubscribeOptionsBuilder.WithTopicFilter( - f => - { - f.WithTopic(_driverPropertys.RpcWriteTopic); - }); + f => f.WithTopic(_driverPropertys.RpcWriteTopic)); } else { if (!_driverPropertys.BigTextScriptRpc.IsNullOrEmpty()) { mqttClientSubscribeOptionsBuilder = mqttClientSubscribeOptionsBuilder.WithTopicFilter( - f => - { - f.WithTopic(_driverPropertys.RpcWriteTopic); - }); + f => f.WithTopic(_driverPropertys.RpcWriteTopic)); } else { mqttClientSubscribeOptionsBuilder = mqttClientSubscribeOptionsBuilder.WithTopicFilter( - f => - { - f.WithTopic(string.Format(null, RpcTopic, _driverPropertys.RpcWriteTopic)); - }); + f => f.WithTopic(string.Format(null, RpcTopic, _driverPropertys.RpcWriteTopic))); } } } if (!_driverPropertys.RpcQuestTopic.IsNullOrWhiteSpace()) { mqttClientSubscribeOptionsBuilder = mqttClientSubscribeOptionsBuilder.WithTopicFilter( - f => - { - f.WithTopic(_driverPropertys.RpcQuestTopic); - }); + f => f.WithTopic(_driverPropertys.RpcQuestTopic)); } var mqttClientSubscribeOptions = mqttClientSubscribeOptionsBuilder.Build(); if (mqttClientSubscribeOptions.TopicFilters.Count > 0) @@ -211,8 +195,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll await UpdateThingsBoardDeviceConnect(item).ConfigureAwait(false); } - await Update(cancellationToken).ConfigureAwait(false); - } } diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClient.other.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClient.other.cs index e7b61d06c..3781272b9 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClient.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClient.other.cs @@ -14,8 +14,6 @@ using CSScripting; using MQTTnet; - - #if NET6_0 using MQTTnet.Client; #endif @@ -91,7 +89,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll topicJsonTBList.Add(topicArray); } - } var result = await Update(topicJsonTBList, default).ConfigureAwait(false); if (success != result.IsSuccess) @@ -107,7 +104,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll protected override void DeviceTimeInterval(DeviceRuntime deviceRunTime, DeviceBasicData deviceData) { - if (!_businessPropertyWithCacheIntervalScript.DeviceTopic.IsNullOrWhiteSpace()) AddQueueDevModel(new(deviceData)); @@ -126,7 +122,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll base.DeviceChange(deviceRunTime, deviceData); } - protected override void VariableTimeInterval(IEnumerable variableRuntimes, IEnumerable variables) { TimeIntervalUpdateVariable(variables); @@ -188,8 +183,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll protected override ValueTask UpdateDevModel(IEnumerable> item, CancellationToken cancellationToken) { - - return UpdateDevModel(item.Select(a => a.Value).OrderBy(a => a.Id), cancellationToken); } @@ -237,7 +230,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll private ValueTask UpdateDevModel(IEnumerable item, CancellationToken cancellationToken) { - var topicArrayList = GetDeviceTopicArray(item); return Update(topicArrayList, cancellationToken); } @@ -293,7 +285,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll { foreach (var item in rpcData.Value) { - if (device.ReadOnlyVariableRuntimes.TryGetValue(item.Key, out var variable) && IdVariableRuntimes.TryGetValue(variable.Id, out var tag)) { var rpcEnable = tag.GetPropertyValue(DeviceId, nameof(_variablePropertys.VariableRpcEnable))?.ToBoolean(); @@ -317,7 +308,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll foreach (var kv in item.Value) { - if (!mqttRpcResult[item.Key].ContainsKey(kv.Key)) { writeData[item.Key].Add(kv.Key, kv.Value?.ToString()); @@ -325,7 +315,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll } } - var result = await GlobalData.RpcService.InvokeDeviceMethodAsync(ToString() + "-" + clientId, writeData).ConfigureAwait(false); @@ -335,7 +324,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll { mqttRpcResult[dictKv.Key].TryAdd(item.Key, item.Value); } - } } catch (Exception ex) @@ -350,7 +338,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll { try { - #if NET8_0_OR_GREATER var payload = args.ApplicationMessage.Payload; @@ -362,7 +349,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll #endif - if (args.ApplicationMessage.Topic == _driverPropertys.RpcQuestTopic && payloadCount > 0) { await AllPublishAsync(CancellationToken.None).ConfigureAwait(false); @@ -377,7 +363,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll var rpcBase = CSharpScriptEngineExtension.Do(_driverPropertys.BigTextScriptRpc); await rpcBase.RPCInvokeAsync(LogMessage, args, _driverPropertys, _mqttClient, GetRpcResult, TryMqttClientAsync, CancellationToken.None).ConfigureAwait(false); - } else { @@ -410,8 +395,6 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll .WithTopic($"{args.ApplicationMessage.Topic}") .WithPayload(thingsBoardRpcResponseData.ToSystemTextJsonString(_driverPropertys.JsonFormattingIndented)).Build(); await _mqttClient.PublishAsync(variableMessage).ConfigureAwait(false); - - } } catch @@ -433,22 +416,17 @@ public partial class MqttClient : BusinessBaseWithCacheIntervalScriptAll var isConnect = await TryMqttClientAsync(CancellationToken.None).ConfigureAwait(false); if (isConnect.IsSuccess) { - var variableMessage = new MqttApplicationMessageBuilder() .WithTopic($"{args.ApplicationMessage.Topic}/Response") .WithPayload(mqttRpcResult.ToSystemTextJsonString(_driverPropertys.JsonFormattingIndented)).Build(); await _mqttClient.PublishAsync(variableMessage).ConfigureAwait(false); - - } } catch { } } - } - } catch (Exception ex) { diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClientProperty.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClientProperty.cs index 9660931ad..7203c43b6 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClientProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttClient/MqttClientProperty.cs @@ -34,11 +34,9 @@ public class MqttClientProperty : BusinessPropertyWithCacheIntervalScript [DynamicProperty] public int Port { get; set; } = 1883; - [DynamicProperty] public MqttQualityOfServiceLevel MqttQualityOfServiceLevel { get; set; } = MqttQualityOfServiceLevel.AtMostOnce; - [DynamicProperty] public MqttProtocolVersion MqttProtocolVersion { get; set; } = MqttProtocolVersion.V311; diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollect.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollect.cs index 3c59c7acb..2b260fba6 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollect.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollect.cs @@ -10,7 +10,6 @@ using MQTTnet; - #if NET6_0 using MQTTnet.Client; #endif @@ -69,7 +68,6 @@ public partial class MqttCollect : CollectBase """; } - private Dictionary>> TopicItemDict = new(); private sealed class TopicItem @@ -150,18 +148,13 @@ public partial class MqttCollect : CollectBase dataResult.Add(sourVars); } - - var mqttClientSubscribeOptionsBuilder = new MqttClientSubscribeOptionsBuilder(); foreach (var item in TopicItemDict.Keys) { if (!item.IsNullOrWhiteSpace()) { mqttClientSubscribeOptionsBuilder = mqttClientSubscribeOptionsBuilder.WithTopicFilter( - f => - { - f.WithTopic(item); - }); + f => f.WithTopic(item)); } var mqttClientSubscribeOptions = mqttClientSubscribeOptionsBuilder.Build(); if (mqttClientSubscribeOptions.TopicFilters.Count > 0) @@ -174,7 +167,6 @@ public partial class MqttCollect : CollectBase { return Task.FromResult(new List()); } - } protected override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) @@ -209,7 +201,6 @@ public partial class MqttCollect : CollectBase _mqttClientOptions = mqttClientOptionsBuilder.WithTcpServer(_driverPropertys.IP, _driverPropertys.Port)//服务器 .Build(); - _mqttClient = mqttFactory.CreateMqttClient(); _mqttClient.ConnectedAsync += MqttClient_ConnectedAsync; _mqttClient.ApplicationMessageReceivedAsync += MqttClient_ApplicationMessageReceivedAsync; @@ -257,7 +248,6 @@ public partial class MqttCollect : CollectBase } } - private volatile bool success; protected override bool VariableSourceReadsEnable => false; @@ -286,8 +276,5 @@ public partial class MqttCollect : CollectBase await Task.Delay(10000, cancellationToken).ConfigureAwait(false); //return; } - } - - } diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollect.other.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollect.other.cs index b36e9d14b..f0f26b6da 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollect.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollect.other.cs @@ -37,10 +37,8 @@ public partial class MqttCollect : CollectBase private WaitLock ConnectLock = new(nameof(MqttCollect)); - #region mqtt方法 - private Task MqttClient_ApplicationMessageReceivedAsync(MqttApplicationMessageReceivedEventArgs args) { #if NET8_0_OR_GREATER @@ -59,7 +57,6 @@ public partial class MqttCollect : CollectBase var tuples = TopicItemDict.FirstOrDefault(t => (MqttTopicFilterComparer.Compare(args.ApplicationMessage.Topic, t.Key) == MqttTopicFilterCompareResult.IsMatch)).Value; if (tuples != null) { - var payLoad = Encoding.UTF8.GetString(payload); if (_driverPropertys.DetailLog) @@ -70,7 +67,6 @@ public partial class MqttCollect : CollectBase else { LogMessage?.LogTrace($"Topic:{args.ApplicationMessage.Topic}"); - } Newtonsoft.Json.Linq.JToken json = Newtonsoft.Json.Linq.JToken.Parse(payLoad); @@ -107,8 +103,6 @@ public partial class MqttCollect : CollectBase LogMessage?.LogWarning($"parse error: topic {Environment.NewLine}{args.ApplicationMessage.Topic} {Environment.NewLine} {ex}"); } return Task.CompletedTask; - - } private async Task MqttClient_ConnectedAsync(MqttClientConnectedEventArgs args) @@ -133,7 +127,6 @@ public partial class MqttCollect : CollectBase } } - private async ValueTask TryMqttClientAsync(CancellationToken cancellationToken) { if (_mqttClient?.IsConnected == true) @@ -182,6 +175,5 @@ public partial class MqttCollect : CollectBase } } - #endregion mqtt方法 } diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollectProperty.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollectProperty.cs index f72f594e8..247057cb2 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollectProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttCollect/MqttCollectProperty.cs @@ -76,5 +76,4 @@ public class MqttCollectProperty : CollectPropertyBase [DynamicProperty] public int CheckClearTime { get; set; } = 60000; - } diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttNetRpcClass/ThingsBoardRpcData.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttNetRpcClass/ThingsBoardRpcData.cs index 0aaf1a7b7..9f8fa5653 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttNetRpcClass/ThingsBoardRpcData.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttNetRpcClass/ThingsBoardRpcData.cs @@ -42,5 +42,4 @@ public class ResponseData public bool success { get; set; } public string message { get; set; } - } diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttPropertyRazor.razor.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttPropertyRazor.razor.cs index aca4c2340..3a079461c 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttPropertyRazor.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttPropertyRazor.razor.cs @@ -53,7 +53,6 @@ namespace ThingsGateway.Plugin.Mqtt var fileName = Path.Combine(filePath, fileObjectName);//获取文件全路径 fileName = fileName.Replace("\\", "/");//格式化一系 - using (var stream = File.Create(Path.Combine(filePath, fileObjectName))) { using var fs = file.File.OpenReadStream(1024 * 1024 * 500); @@ -62,7 +61,6 @@ namespace ThingsGateway.Plugin.Mqtt mqttClientProperty.CAFile = fileName; } - } } private async Task OnClientCertificateFileChange(UploadFile file) @@ -71,8 +69,6 @@ namespace ThingsGateway.Plugin.Mqtt if (mqttClientProperty.TLS == true) { - - { var filePath = Path.Combine("PluginFile", Id, nameof(mqttClientProperty.ClientCertificateFile)); if (!Directory.Exists(filePath))//如果不存在就创建文件夹 @@ -82,7 +78,6 @@ namespace ThingsGateway.Plugin.Mqtt var fileName = Path.Combine(filePath, fileObjectName);//获取文件全路径 fileName = fileName.Replace("\\", "/");//格式化一系 - using (var stream = File.Create(Path.Combine(filePath, fileObjectName))) { using var fs = file.File.OpenReadStream(1024 * 1024 * 500); @@ -92,8 +87,6 @@ namespace ThingsGateway.Plugin.Mqtt mqttClientProperty.ClientCertificateFile = fileName; } - - } } private async Task OnClientKeyFileChange(UploadFile file) @@ -103,8 +96,6 @@ namespace ThingsGateway.Plugin.Mqtt if (mqttClientProperty.TLS == true) { - - { var filePath = Path.Combine("PluginFile", Id, nameof(mqttClientProperty.ClientKeyFile)); if (!Directory.Exists(filePath))//如果不存在就创建文件夹 @@ -114,7 +105,6 @@ namespace ThingsGateway.Plugin.Mqtt var fileName = Path.Combine(filePath, fileObjectName);//获取文件全路径 fileName = fileName.Replace("\\", "/");//格式化一系 - using (var stream = File.Create(Path.Combine(filePath, fileObjectName))) { using var fs = file.File.OpenReadStream(1024 * 1024 * 500); @@ -123,7 +113,6 @@ namespace ThingsGateway.Plugin.Mqtt mqttClientProperty.ClientKeyFile = fileName; } - } } [Inject] @@ -131,11 +120,7 @@ namespace ThingsGateway.Plugin.Mqtt [Inject] private ToastService ToastService { get; set; } - - [Inject] private DialogService DialogService { get; set; } - - } } \ No newline at end of file diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/DynamicMqttServerRpcBase.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/DynamicMqttServerRpcBase.cs index 437bab49a..e92ddceba 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/DynamicMqttServerRpcBase.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/DynamicMqttServerRpcBase.cs @@ -35,7 +35,6 @@ public abstract class DynamicMqttServerRpcBase /// public virtual async Task RPCInvokeAsync(TouchSocket.Core.ILog logMessage, InterceptingPublishEventArgs args, MqttServerProperty driverPropertys, MQTTnet.Server.MqttServer mqttServer, Func>, ValueTask>>> getRpcResult, CancellationToken cancellationToken) { - if (driverPropertys.RpcWriteTopic.IsNullOrWhiteSpace()) return; var t = string.Format(null, "{0}/+", driverPropertys.RpcWriteTopic); diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.cs index 5ed8ce167..e9cceb6c7 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.cs @@ -34,7 +34,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll protected override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { - #region 初始化 var configuration = new ConfigurationBuilder() @@ -57,8 +56,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll await base.InitChannelAsync(channel, cancellationToken).ConfigureAwait(false); } - - /// public override bool IsConnected() => _mqttServer?.IsStarted == true; @@ -81,12 +78,10 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll _mqttServer?.SafeDispose(); } _webHost?.SafeDispose(); - } protected override async Task ProtectedStartAsync(CancellationToken cancellationToken) { - if (_mqttServer != null) { _mqttServer.ClientDisconnectedAsync -= MqttServer_ClientDisconnectedAsync; @@ -100,12 +95,10 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll await _mqttServer.StartAsync().ConfigureAwait(false); } await base.ProtectedStartAsync(cancellationToken).ConfigureAwait(false); - } protected override Task ProtectedExecuteAsync(object? state, CancellationToken cancellationToken) { return Update(cancellationToken); - } } diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.other.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.other.cs index 8cd4f608b..4c01e60db 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.other.cs @@ -48,7 +48,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll } protected override void DeviceTimeInterval(DeviceRuntime deviceRunTime, DeviceBasicData deviceData) { - if (!_businessPropertyWithCacheIntervalScript.DeviceTopic.IsNullOrWhiteSpace()) AddQueueDevModel(new(deviceData)); @@ -76,8 +75,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll return UpdateVarModel(item.Select(a => a.Value).OrderBy(a => a.Id), cancellationToken); } - - protected override ValueTask UpdateVarModels(IEnumerable item, CancellationToken cancellationToken) { return UpdateVarModel(item, cancellationToken); @@ -128,7 +125,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll { //获取组内全部变量 AddQueueVarModel(new CacheDBItem>(variableRuntimeGroup.AdaptListVariableBasicData())); - } else { @@ -192,7 +188,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll { foreach (var item in rpcData.Value) { - if (device.ReadOnlyVariableRuntimes.TryGetValue(item.Key, out var variable) && IdVariableRuntimes.TryGetValue(variable.Id, out var tag)) { var rpcEnable = tag.GetPropertyValue(DeviceId, nameof(_variablePropertys.VariableRpcEnable))?.ToBoolean(); @@ -216,7 +211,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll foreach (var kv in item.Value) { - if (!mqttRpcResult[item.Key].ContainsKey(kv.Key)) { writeData[item.Key].Add(kv.Key, kv.Value?.ToString()); @@ -224,7 +218,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll } } - var result = await GlobalData.RpcService.InvokeDeviceMethodAsync(ToString() + "-" + clientId, writeData).ConfigureAwait(false); @@ -234,7 +227,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll { mqttRpcResult[dictKv.Key].TryAdd(item.Key, item.Value); } - } } catch (Exception ex) @@ -309,8 +301,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll { try { - - #if NET8_0_OR_GREATER var payload = args.ApplicationMessage.Payload; @@ -341,11 +331,9 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll var rpcBase = CSharpScriptEngineExtension.Do(_driverPropertys.BigTextScriptRpc); await rpcBase.RPCInvokeAsync(LogMessage, args, _driverPropertys, _mqttServer, GetRpcResult, CancellationToken.None).ConfigureAwait(false); - } else { - if (_driverPropertys.RpcWriteTopic.IsNullOrWhiteSpace()) return; var t = string.Format(null, RpcTopic, _driverPropertys.RpcWriteTopic); @@ -367,8 +355,6 @@ public partial class MqttServer : BusinessBaseWithCacheIntervalScriptAll { } } - - } catch (Exception ex) { diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServerProperty.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServerProperty.cs index 4c8af9a5c..3d10ba7f1 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServerProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServerProperty.cs @@ -58,7 +58,6 @@ public class MqttServerProperty : BusinessPropertyWithCacheIntervalScript [DynamicProperty] public bool DeviceRpcEnable { get; set; } - /// /// Rpc写入Topic /// diff --git a/src/Plugin/ThingsGateway.Plugin.OpcDa/OpcDaMaster/OpcDaMaster.cs b/src/Plugin/ThingsGateway.Plugin.OpcDa/OpcDaMaster/OpcDaMaster.cs index e566ea824..d5351e927 100644 --- a/src/Plugin/ThingsGateway.Plugin.OpcDa/OpcDaMaster/OpcDaMaster.cs +++ b/src/Plugin/ThingsGateway.Plugin.OpcDa/OpcDaMaster/OpcDaMaster.cs @@ -39,8 +39,6 @@ public class OpcDaMaster : CollectBase /// public override Type DriverDebugUIType => typeof(ThingsGateway.Debug.OpcDaMaster); - - /// protected override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { @@ -101,7 +99,6 @@ public class OpcDaMaster : CollectBase return _plc?.GetAddressDescription(); } - protected override bool VariableSourceReadsEnable => !_driverProperties.ActiveSubscribe; /// @@ -112,7 +109,6 @@ public class OpcDaMaster : CollectBase List variableSourceReads = new List(); foreach (var deviceVariableGroups in deviceVariables.GroupBy(a => a.CollectGroup)) { - var result = _plc.AddItemsWithSave(deviceVariableGroups.Where(a => !string.IsNullOrEmpty(a.RegisterAddress)).Select(a => a.RegisterAddress!).ToList()); var sourVars = result?.Select( it => @@ -153,20 +149,15 @@ public class OpcDaMaster : CollectBase { return ValueTask.FromResult(new OperResult($"ReadSourceAsync Error:{Environment.NewLine}{ex}")); } - } /// protected override async ValueTask> WriteValuesAsync(Dictionary writeInfoLists, CancellationToken cancellationToken) { - using var writeLock = ReadWriteLock.WriterLock(); await ValueTask.CompletedTask.ConfigureAwait(false); var result = _plc.WriteItem(writeInfoLists.ToDictionary(a => a.Key.RegisterAddress!, a => a.Value.GetObjectFromJToken()!)); - var results = new ConcurrentDictionary(result.ToDictionary>, string, OperResult>(a => - { - return writeInfoLists.Keys.FirstOrDefault(b => b.RegisterAddress == a.Key).Name; - }, a => + var results = new ConcurrentDictionary(result.ToDictionary>, string, OperResult>(a => writeInfoLists.Keys.FirstOrDefault(b => b.RegisterAddress == a.Key).Name, a => { if (!a.Value.Item1) return new OperResult(a.Value.Item2); @@ -259,6 +250,4 @@ public class OpcDaMaster : CollectBase success = false; } } - - } diff --git a/src/Plugin/ThingsGateway.Plugin.OpcDa/OpcDaMaster/OpcDaMasterProperty.cs b/src/Plugin/ThingsGateway.Plugin.OpcDa/OpcDaMaster/OpcDaMasterProperty.cs index 8749f7085..35b13e2a6 100644 --- a/src/Plugin/ThingsGateway.Plugin.OpcDa/OpcDaMaster/OpcDaMasterProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.OpcDa/OpcDaMaster/OpcDaMasterProperty.cs @@ -64,5 +64,4 @@ public class OpcDaMasterProperty : CollectPropertyRetryBase /// [DynamicProperty] public int UpdateRate { get; set; } = 1000; - } diff --git a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaMaster/OpcUaMaster.cs b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaMaster/OpcUaMaster.cs index 7ab8344c4..dda9a4dae 100644 --- a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaMaster/OpcUaMaster.cs +++ b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaMaster/OpcUaMaster.cs @@ -47,8 +47,6 @@ public class OpcUaMaster : CollectBase protected override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { - - //载入配置 OpcUaProperty config = new() { @@ -154,19 +152,14 @@ public class OpcUaMaster : CollectBase { if (_driverProperties.ActiveSubscribe) { - //获取设备连接状态 if (IsConnected()) { - //更新设备活动时间 { - //如果是订阅模式,连接时添加订阅组 if (_plc.OpcUaProperty?.ActiveSubscribe == true && CurrentDevice.VariableSourceReads.Count > 0 && _plc.Session.SubscriptionCount < CurrentDevice.VariableSourceReads.Count) { - - foreach (var variableSourceRead in CurrentDevice.VariableSourceReads) { try @@ -176,7 +169,6 @@ public class OpcUaMaster : CollectBase await _plc.AddSubscriptionAsync(variableSourceRead.RegisterAddress, variableSourceRead.VariableRuntimes.Where(a => !a.RegisterAddress.IsNullOrEmpty()).Select(a => a.RegisterAddress!).ToHashSet().ToArray(), _plc.OpcUaProperty.LoadType, cancellationToken).ConfigureAwait(false); LogMessage?.LogInformation($"AddSubscription index {CurrentDevice.VariableSourceReads.IndexOf(variableSourceRead)} done"); - } await Task.Delay(100, cancellationToken).ConfigureAwait(false); // allow for subscription to be finished on server? @@ -191,15 +183,11 @@ public class OpcUaMaster : CollectBase } LogMessage?.LogInformation("AddSubscriptions done"); - } - } } } - } - } } @@ -226,7 +214,6 @@ public class OpcUaMaster : CollectBase } variableSourceReads.Add(sourVars); } - } return Task.FromResult(variableSourceReads); } @@ -234,7 +221,6 @@ public class OpcUaMaster : CollectBase { return Task.FromResult(new List()); } - } /// @@ -244,7 +230,6 @@ public class OpcUaMaster : CollectBase var addresss = deviceVariableSourceRead.VariableRuntimes.Where(a => !a.RegisterAddress.IsNullOrEmpty()).Select(a => a.RegisterAddress!).ToArray(); try { - var result = await _plc.ReadJTokenValueAsync(addresss, cancellationToken).ConfigureAwait(false); foreach (var data in result) { @@ -292,10 +277,7 @@ public class OpcUaMaster : CollectBase { using var writeLock = ReadWriteLock.WriterLock(); var result = await _plc.WriteNodeAsync(writeInfoLists.ToDictionary(a => a.Key.RegisterAddress!, a => a.Value), cancellationToken).ConfigureAwait(false); - var results = new ConcurrentDictionary(result.ToDictionary>, string, OperResult>(a => - { - return writeInfoLists.Keys.FirstOrDefault(b => b.RegisterAddress == a.Key)?.Name!; - } + var results = new ConcurrentDictionary(result.ToDictionary>, string, OperResult>(a => writeInfoLists.Keys.FirstOrDefault(b => b.RegisterAddress == a.Key)?.Name! , a => { if (!a.Value.Item1) @@ -335,7 +317,6 @@ public class OpcUaMaster : CollectBase } RefreshVariableTasks(cancellationToken); - } private Dictionary> VariableAddresDicts { get; set; } = new(); @@ -351,8 +332,6 @@ public class OpcUaMaster : CollectBase return; if (TaskSchedulerLoop?.Stoped == true) return; - - LogMessage?.Trace($"Change: {Environment.NewLine} {data.monitoredItem.StartNodeId} : {data.jToken?.ToString()}"); //尝试固定点位的数据类型 @@ -398,5 +377,4 @@ public class OpcUaMaster : CollectBase success = false; } } - } diff --git a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaMaster/OpcUaMasterProperty.cs b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaMaster/OpcUaMasterProperty.cs index 63e12b548..a3757038c 100644 --- a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaMaster/OpcUaMasterProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaMaster/OpcUaMasterProperty.cs @@ -94,5 +94,4 @@ public class OpcUaMasterProperty : CollectPropertyRetryBase /// [DynamicProperty] public int KeepAliveInterval { get; set; } = 3000; - } diff --git a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/Core/ThingsGatewayNodeManager.cs b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/Core/ThingsGatewayNodeManager.cs index 7e389981f..6a8a5d57a 100644 --- a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/Core/ThingsGatewayNodeManager.cs +++ b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/Core/ThingsGatewayNodeManager.cs @@ -105,9 +105,7 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 } AddPredefinedNode(SystemContext, rootFolder); rootFolder.ClearChangeMasks(SystemContext, true); - } - } /// @@ -118,7 +116,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 { lock (Lock) { - dbDrivers = new(GlobalData.GetEnableDevices().Where(a => a.Driver is IDBHistoryValueService).Select(a => a.Driver)); if (!externalReferences.TryGetValue(ObjectIds.ObjectsFolder, out IList references)) { @@ -131,7 +128,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 RefreshVariable(); } - } /// @@ -156,7 +152,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 var startTime = readDetail.StartTime; var endTime = readDetail.EndTime; - for (int i = 0; i < nodesToRead.Count; i++) { var historyRead = nodesToRead[i]; @@ -171,7 +166,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 continue; } - var service = dbDrivers.FirstOrDefault(a => GlobalData.ContainsVariable(a.DeviceId, variableRuntime)); if (service == null) { @@ -190,7 +184,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 VariableName = tag.SymbolicName }).ConfigureAwait(false).GetAwaiter().GetResult(); - if (data.Count > 0) { var hisDataValue = AdaptListDataValue(data); @@ -221,7 +214,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 }; } } - } /// @@ -352,7 +344,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 tag.DataType = DataNodeType(tp); tag.ClearChangeMasks(SystemContext, false); } - } /// @@ -476,7 +467,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 // AddProperty(folder, property); //} - parent?.AddChild(folder); return folder; @@ -623,7 +613,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 return variable; } - public void AddProperty(BaseInstanceState parent, BaseInstanceState property) { parent.AddReference(ReferenceTypeIds.HasProperty, false, property.NodeId); @@ -733,10 +722,8 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 { //skip the InstrumentRange check if the transformation isn't possible. } - } - writeEnable[ii] = true; hashSetNodeId.Add(nodeToWrite.NodeId.Identifier.ToString(), nodeToWrite); } @@ -789,7 +776,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 handle.Node.ReadAttribute(systemContext, nodeToWrite.AttributeId, nodeToWrite.ParsedIndexRange, null, oldValue); } - if (NodeIdTags.TryGetValue(nodeToWrite.NodeId.Identifier.ToString(), out OpcUaTag tag) && GlobalData.ReadOnlyIdVariables.TryGetValue(tag.Id, out var variableRuntime) && result.TryGetValue(variableRuntime.DeviceName, out var deviceResult) && deviceResult.TryGetValue(variableRuntime.Name, out var operResult)) { if (operResult.IsSuccess == true) @@ -803,8 +789,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 // write the attribute value. } - - // report the write value audit event Server.ReportAuditWriteUpdateEvent(systemContext, nodeToWrite, oldValue?.Value, errors[ii]?.StatusCode ?? StatusCodes.Good); @@ -952,7 +936,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 } } - #endregion 多写 /// /// 网关转OPC数据类型 @@ -979,7 +962,6 @@ public class ThingsGatewayNodeManager : CustomNodeManager2 return null; } - private static byte ProtectTypeTrans(VariableRuntime variableRuntime, bool historizing) { byte result = 0; diff --git a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/Core/ThingsGatewayServer.cs b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/Core/ThingsGatewayServer.cs index 40029ce51..9594043ee 100644 --- a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/Core/ThingsGatewayServer.cs +++ b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/Core/ThingsGatewayServer.cs @@ -40,10 +40,8 @@ public partial class ThingsGatewayServer : StandardServer public ThingsGatewayServer(OpcUaServer opcUaServer) { _opcUaServer = opcUaServer; - } - /// protected override MasterNodeManager CreateMasterNodeManager(IServerInternal server, ApplicationConfiguration configuration) { diff --git a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/OpcUaServer.cs b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/OpcUaServer.cs index c85cef977..c78076e4e 100644 --- a/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/OpcUaServer.cs +++ b/src/Plugin/ThingsGateway.Plugin.OpcUa/OpcUaServer/OpcUaServer.cs @@ -93,7 +93,6 @@ public partial class OpcUaServer : BusinessBase m_server?.Stop(); } - protected override async Task InitChannelAsync(IChannel? channel, CancellationToken cancellationToken) { await UaInit().ConfigureAwait(false); @@ -103,8 +102,6 @@ public partial class OpcUaServer : BusinessBase Localizer = App.CreateLocalizerByType(typeof(OpcUaServer))!; await base.InitChannelAsync(channel, cancellationToken).ConfigureAwait(false); - - } private async Task UaInit() @@ -118,10 +115,7 @@ public partial class OpcUaServer : BusinessBase m_application.ApplicationConfiguration = m_configuration; if (m_configuration.SecurityConfiguration.AutoAcceptUntrustedCertificates) { - m_configuration.CertificateValidator.CertificateValidation += (s, e) => - { - e.Accept = (e.Error.StatusCode == StatusCodes.BadCertificateUntrusted); - }; + m_configuration.CertificateValidator.CertificateValidation += (s, e) => e.Accept = (e.Error.StatusCode == StatusCodes.BadCertificateUntrusted); } m_server = new(this); @@ -134,8 +128,6 @@ public partial class OpcUaServer : BusinessBase { try { - - //https://github.com/OPCFoundation/UA-.NETStandard/pull/3113 if (m_server?.MessageContext?.Factory != null) @@ -148,7 +140,6 @@ public partial class OpcUaServer : BusinessBase typeof(EncodeableFactory).GetField("s_globalFactory", BindingFlags.NonPublic | BindingFlags.Static)?.SetValue(null, new EncodeableFactory()); typeof(ServiceMessageContext).GetField("s_globalContext", BindingFlags.NonPublic | BindingFlags.Static)?.SetValue(null, typeof(ServiceMessageContext).GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(bool) }, null).Invoke(new object[] { true })); - var listeners = m_server.GetValue("m_listeners") as List; if (listeners != null) { @@ -164,7 +155,6 @@ public partial class OpcUaServer : BusinessBase } catch { - } } m_server?.Stop(); @@ -182,7 +172,6 @@ public partial class OpcUaServer : BusinessBase { return false; } - } /// @@ -195,18 +184,13 @@ public partial class OpcUaServer : BusinessBase base.Dispose(disposing); } - - protected override async Task ProtectedStartAsync(CancellationToken cancellationToken) { // 启动服务器。 await m_application.CheckApplicationInstanceCertificates(true, 1200, cancellationToken).ConfigureAwait(false); await m_application.Start(m_server).ConfigureAwait(false); - IdVariableRuntimes.ForEach(a => - { - VariableValueChange(a.Value, a.Value.AdaptVariableBasicData()); - }); + IdVariableRuntimes.ForEach(a => VariableValueChange(a.Value, a.Value.AdaptVariableBasicData())); await base.ProtectedStartAsync(cancellationToken).ConfigureAwait(false); } @@ -223,10 +207,7 @@ public partial class OpcUaServer : BusinessBase await m_application.Start(m_server).ConfigureAwait(false); connect_success = true; await Task.Delay(2000, cancellationToken).ConfigureAwait(false); - IdVariableRuntimes.ForEach(a => - { - VariableValueChange(a.Value, a.Value.AdaptVariableBasicData()); - }); + IdVariableRuntimes.ForEach(a => VariableValueChange(a.Value, a.Value.AdaptVariableBasicData())); } catch (Exception ex) { @@ -264,7 +245,6 @@ public partial class OpcUaServer : BusinessBase LogMessage?.LogWarning(ex); success = false; } - } private ApplicationConfiguration GetDefaultConfiguration() @@ -357,7 +337,6 @@ public partial class OpcUaServer : BusinessBase MaxRequestThreadCount = 1000, MaxQueuedRequestCount = 20000, - DiagnosticsEnabled = false, // 是否启用诊断 MaxSessionCount = 1000, // 最大打开会话数 MinSessionTimeout = 10000, // 允许该会话在与客户端断开时(单位毫秒)仍然保持连接的最小时间 @@ -381,10 +360,8 @@ public partial class OpcUaServer : BusinessBase MaxSubscriptionCount = 1000, MaxEventQueueSize = 50000, - MaxTrustListSize = 0, MultiCastDnsEnabled = false, - }; config.SecurityConfiguration = new SecurityConfiguration() { @@ -476,10 +453,7 @@ public partial class OpcUaServer : BusinessBase base.PauseThread(pause); if (!pause && oldV != pause) { - IdVariableRuntimes.ForEach(a => - { - VariableValueChange(a.Value, a.Value.AdaptVariableBasicData()); - }); + IdVariableRuntimes.ForEach(a => VariableValueChange(a.Value, a.Value.AdaptVariableBasicData())); } } } diff --git a/src/Plugin/ThingsGateway.Plugin.OpcUa/Pages/OpcUaMaster.razor.cs b/src/Plugin/ThingsGateway.Plugin.OpcUa/Pages/OpcUaMaster.razor.cs index 89530ff51..c7305a0e7 100644 --- a/src/Plugin/ThingsGateway.Plugin.OpcUa/Pages/OpcUaMaster.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.OpcUa/Pages/OpcUaMaster.razor.cs @@ -85,10 +85,8 @@ public partial class OpcUaMaster : IDisposable { await ToastService.Warn(ex); } - } - protected override void OnInitialized() { _plc = new ThingsGateway.Foundation.OpcUa.OpcUaMaster(); diff --git a/src/Plugin/ThingsGateway.Plugin.OpcUa/Pages/OpcUaMasterRuntimeRazor.razor.cs b/src/Plugin/ThingsGateway.Plugin.OpcUa/Pages/OpcUaMasterRuntimeRazor.razor.cs index 1d227546a..f3226aab0 100644 --- a/src/Plugin/ThingsGateway.Plugin.OpcUa/Pages/OpcUaMasterRuntimeRazor.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.OpcUa/Pages/OpcUaMasterRuntimeRazor.razor.cs @@ -32,7 +32,6 @@ namespace ThingsGateway.Plugin.OpcUa [Inject] IStringLocalizer OpcUaMasterPropertyLocalizer { get; set; } - private async Task Export() { try @@ -61,7 +60,6 @@ namespace ThingsGateway.Plugin.OpcUa { await ToastService.Warn(ex); } - } } } \ No newline at end of file diff --git a/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducer.cs b/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducer.cs index bce7fc100..61b509faa 100644 --- a/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducer.cs +++ b/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducer.cs @@ -28,8 +28,6 @@ public partial class RabbitMQProducer : BusinessBaseWithCacheIntervalScriptAll protected override BusinessPropertyWithCacheIntervalScript _businessPropertyWithCacheIntervalScript => _driverPropertys; protected override async Task InitChannelAsync(Foundation.IChannel? channel, CancellationToken cancellationToken) { - - #region 初始化 _connectionFactory = new ConnectionFactory @@ -95,6 +93,5 @@ public partial class RabbitMQProducer : BusinessBaseWithCacheIntervalScriptAll { await Update(cancellationToken).ConfigureAwait(false); } - } } diff --git a/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducer.other.cs b/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducer.other.cs index b9c988396..a4ca99bd5 100644 --- a/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducer.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducer.other.cs @@ -37,7 +37,6 @@ public partial class RabbitMQProducer : BusinessBaseWithCacheIntervalScriptAll } protected override void DeviceTimeInterval(DeviceRuntime deviceRunTime, DeviceBasicData deviceData) { - if (!_businessPropertyWithCacheIntervalScript.DeviceTopic.IsNullOrWhiteSpace()) AddQueueDevModel(new(deviceData)); @@ -116,7 +115,6 @@ public partial class RabbitMQProducer : BusinessBaseWithCacheIntervalScriptAll { //获取组内全部变量 AddQueueVarModel(new CacheDBItem>(variableRuntimeGroup.AdaptListVariableBasicData())); - } else { diff --git a/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducerProperty.cs b/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducerProperty.cs index 0aa56efd9..c4dc73ba3 100644 --- a/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducerProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.RabbitMQ/RabbitMQ/RabbitMQProducerProperty.cs @@ -64,5 +64,4 @@ public class RabbitMQProducerProperty : BusinessPropertyWithCacheIntervalScript /// [DynamicProperty] public string? ExchangeName { get; set; } = ""; - } diff --git a/src/Plugin/ThingsGateway.Plugin.SiemensS7/Pages/SiemensS7AddressComponent.razor.cs b/src/Plugin/ThingsGateway.Plugin.SiemensS7/Pages/SiemensS7AddressComponent.razor.cs index e96f25048..67ab7ca96 100644 --- a/src/Plugin/ThingsGateway.Plugin.SiemensS7/Pages/SiemensS7AddressComponent.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.SiemensS7/Pages/SiemensS7AddressComponent.razor.cs @@ -40,7 +40,6 @@ public partial class SiemensS7AddressComponent : ComponentBase, IAddressUIBase } catch { - } base.OnParametersSet(); } @@ -50,7 +49,6 @@ public partial class SiemensS7AddressComponent : ComponentBase, IAddressUIBase { try { - Model = $"{ConverterConfig.ToString()}{Value?.ToString()}"; ModelChanged?.Invoke(Model); diff --git a/src/Plugin/ThingsGateway.Plugin.SiemensS7/Pages/SiemensS7Master.razor.cs b/src/Plugin/ThingsGateway.Plugin.SiemensS7/Pages/SiemensS7Master.razor.cs index 291e0b144..9cd85b750 100644 --- a/src/Plugin/ThingsGateway.Plugin.SiemensS7/Pages/SiemensS7Master.razor.cs +++ b/src/Plugin/ThingsGateway.Plugin.SiemensS7/Pages/SiemensS7Master.razor.cs @@ -59,10 +59,7 @@ public partial class SiemensS7Master : ComponentBase, IDisposable op.Component = BootstrapDynamicComponent.CreateComponent(new Dictionary { - {nameof(SiemensS7AddressComponent.ModelChanged), (string a) => - { - DeviceComponent?.SetRegisterAddress(a); - }}, + {nameof(SiemensS7AddressComponent.ModelChanged), (string a) => DeviceComponent?.SetRegisterAddress(a)}, {nameof(SiemensS7AddressComponent.Model),address }, }); @@ -72,4 +69,3 @@ public partial class SiemensS7Master : ComponentBase, IDisposable [Inject] DialogService DialogService { get; set; } } - diff --git a/src/Plugin/ThingsGateway.Plugin.SiemensS7/SiemensS7Master/SiemensS7Master.cs b/src/Plugin/ThingsGateway.Plugin.SiemensS7/SiemensS7Master/SiemensS7Master.cs index 21c599bee..9e228a642 100644 --- a/src/Plugin/ThingsGateway.Plugin.SiemensS7/SiemensS7Master/SiemensS7Master.cs +++ b/src/Plugin/ThingsGateway.Plugin.SiemensS7/SiemensS7Master/SiemensS7Master.cs @@ -53,10 +53,8 @@ public class SiemensS7Master : CollectFoundationBase public override Type DriverVariableAddressUIType => typeof(SiemensS7AddressComponent); - protected override async Task InitChannelAsync(IChannel? channel = null, CancellationToken cancellationToken = default) { - ArgumentNullException.ThrowIfNull(channel); var plc = _plc; @@ -120,10 +118,8 @@ public class SiemensS7Master : CollectFoundationBase } } - protected override async ValueTask> WriteValuesAsync(Dictionary writeInfoLists, CancellationToken cancellationToken) { - using var writeLock = ReadWriteLock.WriterLock(); // 检查协议是否为空,如果为空则抛出异常 @@ -155,7 +151,6 @@ public class SiemensS7Master : CollectFoundationBase } if (addresses.Count > 0) { - var result = await _plc.S7WriteAsync(addresses.Select(a => a.Value).ToArray(), cancellationToken).ConfigureAwait(false); foreach (var writeInfo in addresses) { @@ -187,7 +182,6 @@ public class SiemensS7Master : CollectFoundationBase // 返回包含操作结果的字典 return new Dictionary(operResults); - } [ThingsGateway.Gateway.Application.DynamicMethod("ReadWriteDateAsync", "读写日期格式")] @@ -217,7 +211,6 @@ public class SiemensS7Master : CollectFoundationBase } catch { - } List variableSourceReads = new(); foreach (var deviceVariable in deviceVariables.GroupBy(a => a.CollectGroup)) diff --git a/src/Plugin/ThingsGateway.Plugin.SiemensS7/SiemensS7Master/SiemensS7MasterProperty.cs b/src/Plugin/ThingsGateway.Plugin.SiemensS7/SiemensS7Master/SiemensS7MasterProperty.cs index 4e4945850..8a86075a3 100644 --- a/src/Plugin/ThingsGateway.Plugin.SiemensS7/SiemensS7Master/SiemensS7MasterProperty.cs +++ b/src/Plugin/ThingsGateway.Plugin.SiemensS7/SiemensS7Master/SiemensS7MasterProperty.cs @@ -11,7 +11,6 @@ using ThingsGateway.Foundation.SiemensS7; using ThingsGateway.Gateway.Application; - namespace ThingsGateway.Plugin.SiemensS7; /// @@ -44,6 +43,4 @@ public class SiemensS7MasterProperty : CollectFoundationPackPropertyBase [DynamicProperty] public int LocalTSAP { get; set; } = 0; - - } diff --git a/src/ThingsGateway.Photino/Program.cs b/src/ThingsGateway.Photino/Program.cs index cdebaa8de..0c36d24d8 100644 --- a/src/ThingsGateway.Photino/Program.cs +++ b/src/ThingsGateway.Photino/Program.cs @@ -64,10 +64,7 @@ internal sealed class Program if (!builder.Environment.IsDevelopment()) { builder.Services.AddResponseCompression( - opts => - { - opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(second); - }); + opts => opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(second)); } builder.WebHost.UseWebRoot("wwwroot"); @@ -81,12 +78,9 @@ internal sealed class Program }); - - }) .Configure(app => { - }).Silence(true, true) .ConfigureServices(services => { @@ -123,6 +117,4 @@ internal sealed class Program hybridApp.Run(); Thread.Sleep(2000); } - - } diff --git a/src/ThingsGateway.Photino/Startup.cs b/src/ThingsGateway.Photino/Startup.cs index dca256a82..ffb770b10 100644 --- a/src/ThingsGateway.Photino/Startup.cs +++ b/src/ThingsGateway.Photino/Startup.cs @@ -53,10 +53,8 @@ public class Startup : AppStartup services.AddScoped(); services.AddScoped(); - } - public void ConfigBlazor(IServiceCollection services) { // 增加中文编码支持网页源码显示汉字 @@ -69,7 +67,6 @@ public class Startup : AppStartup options.ServicesStopConcurrently = true; }); - //// 事件总线 //services.AddEventBus(options => //{ @@ -77,11 +74,7 @@ public class Startup : AppStartup //}); // 任务调度 - services.AddSchedule(options => - { - options.AddPersistence(); - }); - + services.AddSchedule(options => options.AddPersistence()); // 允许跨域 services.AddCorsAccessor(); @@ -112,7 +105,6 @@ public class Startup : AppStartup //.AddXmlDataContractSerializerFormatters() .AddInjectWithUnifyResult(); - // 配置Nginx转发获取客户端真实IP // 注1:如果负载均衡不是在本机通过 Loopback 地址转发请求的,一定要加上options.KnownNetworks.Clear()和options.KnownProxies.Clear() // 注2:如果设置环境变量 ASPNETCORE_FORWARDEDHEADERS_ENABLED 为 True,则不需要下面的配置代码 @@ -123,12 +115,6 @@ public class Startup : AppStartup options.KnownProxies.Clear(); }); - - - - - - //已添加AddOptions // 增加多语言支持配置信息 services.AddRequestLocalization>((localizerOption, blazorOption) => @@ -180,7 +166,6 @@ public class Startup : AppStartup services.AddSignalR(); #endregion - #if NET9_0_OR_GREATER var certificate = X509CertificateLoader.LoadPkcs12FromFile("ThingsGateway.pfx", "ThingsGateway", X509KeyStorageFlags.EphemeralKeySet); #else @@ -196,15 +181,12 @@ public class Startup : AppStartup }); } - - public void Use(IApplicationBuilder applicationBuilder, IWebHostEnvironment env) { var app = (WebApplication)applicationBuilder; app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.All, KnownNetworks = { }, KnownProxies = { } }); app.UseBootstrapBlazor(); - // 启用本地化 var option = app.Services.GetService>(); if (option != null) @@ -233,7 +215,6 @@ public class Startup : AppStartup app.UseStaticFiles(new StaticFileOptions { OnPrepareResponse = ctx => ctx.ProcessCache(app.Configuration) }); } - app.UseStaticFiles(new StaticFileOptions { OnPrepareResponse = (stf) => @@ -252,7 +233,6 @@ public class Startup : AppStartup app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = provider }); app.UseStaticFiles(); - // 特定文件类型(文件后缀)处理 var contentTypeProvider = FS.GetFileExtensionContentTypeProvider(); // contentTypeProvider.Mappings[".文件后缀"] = "MIME 类型"; @@ -264,7 +244,6 @@ public class Startup : AppStartup //// 启用HTTPS //app.UseHttpsRedirection(); - // 添加状态码拦截中间件 app.UseUnifyResultStatusCodes(); @@ -297,6 +276,4 @@ public class Startup : AppStartup app.MapControllers(); app.MapHubs(); } - - } diff --git a/src/ThingsGateway.RemoteWebApp/Program.cs b/src/ThingsGateway.RemoteWebApp/Program.cs index aa2eccba8..d4a157ba8 100644 --- a/src/ThingsGateway.RemoteWebApp/Program.cs +++ b/src/ThingsGateway.RemoteWebApp/Program.cs @@ -48,14 +48,8 @@ internal sealed class Program { }; - window.WindowClosing += (sender, e) => - { - - return false; - }; + window.WindowClosing += (sender, e) => false; window.WaitForClose(); Thread.Sleep(2000); } - - } diff --git a/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs b/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs index b9a27d5a3..64c6c5016 100644 --- a/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs +++ b/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs @@ -11,8 +11,6 @@ #pragma warning disable CA2007 // 考虑对等待的任务调用 ConfigureAwait - - using BootstrapBlazor.Components; using Microsoft.AspNetCore.Authorization; @@ -26,7 +24,6 @@ using ThingsGateway.Gateway.Application; namespace ThingsGateway.Server; - [Authorize] [IgnoreRolePermission] [Route("/")] @@ -91,4 +88,3 @@ public partial class GatewayIndex await base.OnParametersSetAsync(); } } - diff --git a/src/ThingsGateway.Server/Layout/Login.razor.cs b/src/ThingsGateway.Server/Layout/Login.razor.cs index 685eded4e..3db6e242a 100644 --- a/src/ThingsGateway.Server/Layout/Login.razor.cs +++ b/src/ThingsGateway.Server/Layout/Login.razor.cs @@ -87,7 +87,6 @@ public partial class Login NavigationManager NavigationManager { get; set; } private async Task LoginAsync(EditContext context) { - var websiteOptions = App.GetOptions()!; if (websiteOptions.Demo) { @@ -100,7 +99,6 @@ public partial class Login try { - var ret = await AuthRazorService.LoginAsync(model); if (ret.Code != 200) @@ -128,6 +126,4 @@ public partial class Login } } } - - } diff --git a/src/ThingsGateway.Server/Layout/MainLayout.razor.cs b/src/ThingsGateway.Server/Layout/MainLayout.razor.cs index 4170a5caf..3595e5902 100644 --- a/src/ThingsGateway.Server/Layout/MainLayout.razor.cs +++ b/src/ThingsGateway.Server/Layout/MainLayout.razor.cs @@ -98,10 +98,8 @@ public partial class MainLayout : IDisposable private async Task LogoutAsync() { - try { - var ret = await AuthRazorService.LoginOutAsync(); if (ret.Code != 200) { @@ -123,7 +121,6 @@ public partial class MainLayout : IDisposable #endregion 注销 - private async Task WinboxRender(ContextMenuItem item, object? context) { if (context is TabItem tabItem) @@ -154,7 +151,6 @@ public partial class MainLayout : IDisposable }; await WinBoxService.Show(option); } - } private string _versionString = string.Empty; diff --git a/src/ThingsGateway.Server/Program/Program.cs b/src/ThingsGateway.Server/Program/Program.cs index 837cebbed..b07d942bb 100644 --- a/src/ThingsGateway.Server/Program/Program.cs +++ b/src/ThingsGateway.Server/Program/Program.cs @@ -58,7 +58,6 @@ public class Program #endregion 控制台输出Logo - await Serve.RunAsync(RunOptions.Default.ConfigureFirstActionBuilder(builder => { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) @@ -68,17 +67,12 @@ public class Program if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) builder.Logging.ClearProviders(); //去除默认的事件日志提供者,某些情况下会日志输出异常,导致程序崩溃 - }).ConfigureBuilder(builder => { - if (!builder.Environment.IsDevelopment()) { builder.Services.AddResponseCompression( - opts => - { - opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(second); - }); + opts => opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(second)); } builder.WebHost.UseWebRoot("wwwroot"); @@ -90,7 +84,6 @@ public class Program u.Limits.RequestHeadersTimeout = TimeSpan.FromMinutes(30); u.Limits.MaxRequestBodySize = null; }); - }) .Configure(app => { @@ -114,8 +107,6 @@ public class Program }) ).ConfigureAwait(false); - await Task.Delay(2000).ConfigureAwait(false); } - } diff --git a/src/ThingsGateway.Server/Program/SingleFilePublish.cs b/src/ThingsGateway.Server/Program/SingleFilePublish.cs index 93d9bbbbb..f30353d2d 100644 --- a/src/ThingsGateway.Server/Program/SingleFilePublish.cs +++ b/src/ThingsGateway.Server/Program/SingleFilePublish.cs @@ -56,4 +56,3 @@ public class SingleFilePublish : ISingleFilePublish ]; } } - diff --git a/src/ThingsGateway.Server/Program/Startup.cs b/src/ThingsGateway.Server/Program/Startup.cs index ec5d297cf..60c0a9267 100644 --- a/src/ThingsGateway.Server/Program/Startup.cs +++ b/src/ThingsGateway.Server/Program/Startup.cs @@ -46,7 +46,6 @@ public class Startup : AppStartup options.ServicesStopConcurrently = true; }); - //// 事件总线 //services.AddEventBus(options => //{ @@ -54,11 +53,7 @@ public class Startup : AppStartup //}); // 任务调度 - services.AddSchedule(options => - { - options.AddPersistence(); - }); - + services.AddSchedule(options => options.AddPersistence()); // 允许跨域 services.AddCorsAccessor(); @@ -83,7 +78,6 @@ public class Startup : AppStartup // setting.Converters.Add(new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }); // 解决DateTimeOffset异常 } - services.AddMvcFilter(); services.AddControllers() @@ -92,13 +86,9 @@ public class Startup : AppStartup //.AddXmlDataContractSerializerFormatters() .AddInjectWithUnifyResult(); - #if NET8_0_OR_GREATER services - .AddRazorComponents(options => - { - options.TemporaryRedirectionUrlValidityDuration = TimeSpan.FromMinutes(10); - }) + .AddRazorComponents(options => options.TemporaryRedirectionUrlValidityDuration = TimeSpan.FromMinutes(10)) .AddInteractiveServerComponents(options => { options.RootComponents.MaxJSRootComponents = 500; @@ -148,12 +138,6 @@ public class Startup : AppStartup options.KnownProxies.Clear(); }); - - - - - - //已添加AddOptions // 增加多语言支持配置信息 services.AddRequestLocalization>((localizerOption, blazorOption) => @@ -198,7 +182,6 @@ public class Startup : AppStartup var data = App.GetConfig("GiteeOAuthSettings"); options.ClientId = data.ClientId; options.ClientSecret = data.ClientSecret; - }); authenticationBuilder.AddOAuth>("Github", "Github", options => @@ -206,7 +189,6 @@ public class Startup : AppStartup var data = App.GetConfig("GithubOAuthSettings"); options.ClientId = data.ClientId; options.ClientSecret = data.ClientSecret; - }); } @@ -221,7 +203,6 @@ public class Startup : AppStartup services.AddScoped(); services.AddScoped(); - #if NET9_0_OR_GREATER var certificate = X509CertificateLoader.LoadPkcs12FromFile("ThingsGateway.pfx", "ThingsGateway", X509KeyStorageFlags.EphemeralKeySet); #else @@ -237,8 +218,6 @@ public class Startup : AppStartup }); } - - public void Use(IApplicationBuilder applicationBuilder, IWebHostEnvironment env) { var app = (WebApplication)applicationBuilder; @@ -246,7 +225,6 @@ public class Startup : AppStartup app.UseBootstrapBlazor(); - // 启用本地化 var option = app.Services.GetService>(); if (option != null) @@ -275,7 +253,6 @@ public class Startup : AppStartup app.UseStaticFiles(new StaticFileOptions { OnPrepareResponse = ctx => ctx.ProcessCache(app.Configuration) }); } - app.UseStaticFiles(new StaticFileOptions { OnPrepareResponse = (stf) => @@ -305,7 +282,6 @@ public class Startup : AppStartup //// 启用HTTPS //app.UseHttpsRedirection(); - // 添加状态码拦截中间件 app.UseUnifyResultStatusCodes(); @@ -355,8 +331,5 @@ public class Startup : AppStartup app.MapControllers(); app.MapHubs(); - } - - } diff --git a/src/ThingsGateway.Server/Program/TestCollectPlugin.cs b/src/ThingsGateway.Server/Program/TestCollectPlugin.cs index fece31004..14bf8213b 100644 --- a/src/ThingsGateway.Server/Program/TestCollectPlugin.cs +++ b/src/ThingsGateway.Server/Program/TestCollectPlugin.cs @@ -28,7 +28,6 @@ // /// // public override Type DriverVariableAddressUIType => base.DriverVariableAddressUIType; - // /// // /// 插件配置项,继承 返回类实例 // /// @@ -59,13 +58,11 @@ // return Task.FromResult(new List()); // } - // /// // /// 实现 // /// // public override IDevice? FoundationDevice => base.FoundationDevice; - // /// // /// 特殊方法,添加 特性 ,返回IOperResult // /// 支持 参数,需放到最后 @@ -93,9 +90,6 @@ //} - - - ///// ///// 插件类,完全自定义 ///// @@ -118,7 +112,6 @@ // /// // public override Type DriverVariableAddressUIType => base.DriverVariableAddressUIType; - // /// // /// 插件配置项,继承 返回类实例 // /// @@ -149,7 +142,6 @@ // return Task.FromResult(new List()); // } - // /// // /// 如果不实现ReadSourceAsync方法,可以返回flase // /// @@ -213,7 +205,6 @@ // base.PauseThread(pause); // } - // /// // /// 开始前执行 // /// @@ -249,7 +240,6 @@ // base.Dispose(disposing); // } - // /// // /// 特殊方法,添加 特性 ,返回IOperResult // /// 支持 参数,需放到最后 diff --git a/src/ThingsGateway.Server/Program/TestExexcuteExpressions.cs b/src/ThingsGateway.Server/Program/TestExexcuteExpressions.cs index 4370d26e5..7c25dde3b 100644 --- a/src/ThingsGateway.Server/Program/TestExexcuteExpressions.cs +++ b/src/ThingsGateway.Server/Program/TestExexcuteExpressions.cs @@ -4,7 +4,6 @@ //using ThingsGateway.Gateway.Application; //using ThingsGateway.RulesEngine; - //public class TestExexcuteExpressions : IExexcuteExpressions //{ @@ -35,7 +34,6 @@ // //if (mqttClient == null) // // throw new("mqttClient NOT FOUND"); - // //TopicArray topicArray = new() // //{ // // Topic = "test", @@ -46,7 +44,4 @@ // // throw new(result.ErrorMessage); // //return new NodeOutput() { Value = result }; // } -//} - - - +//} \ No newline at end of file diff --git a/src/Upgrade/ThingsGateway.Upgrade/Mapper/UpgradeMapper.cs b/src/Upgrade/ThingsGateway.Upgrade/Mapper/UpgradeMapper.cs index 225db8ef9..614b6f912 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Mapper/UpgradeMapper.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Mapper/UpgradeMapper.cs @@ -17,6 +17,4 @@ namespace ThingsGateway.Upgrade; public static partial class UpgradeMapper { public static partial List AdaptListTcpSessionClientDto(this List src); - } - diff --git a/src/Upgrade/ThingsGateway.Upgrade/Model/UpdateZipFileInput.cs b/src/Upgrade/ThingsGateway.Upgrade/Model/UpdateZipFileInput.cs index ba9878ff3..e844eeea1 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Model/UpdateZipFileInput.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Model/UpdateZipFileInput.cs @@ -65,5 +65,4 @@ public class UpdateZipFileInput public string OSPlatform { get; set; } public Architecture Architecture { get; set; } - } \ No newline at end of file diff --git a/src/Upgrade/ThingsGateway.Upgrade/Pages/GatewayOnlinePage.razor.cs b/src/Upgrade/ThingsGateway.Upgrade/Pages/GatewayOnlinePage.razor.cs index 91d07a332..58cf62c6b 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Pages/GatewayOnlinePage.razor.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Pages/GatewayOnlinePage.razor.cs @@ -27,7 +27,6 @@ public partial class GatewayOnlinePage } catch (OperationCanceledException) { - } catch (Exception ex) { @@ -42,7 +41,6 @@ public partial class GatewayOnlinePage } catch (OperationCanceledException) { - } catch (Exception ex) { @@ -50,7 +48,6 @@ public partial class GatewayOnlinePage } } - [Inject] private ToastService ToastService { get; set; } [Inject] @@ -88,6 +85,4 @@ public class TcpSessionClientDto [AutoGenerateColumn(Searchable = true, Filterable = true, Sortable = true)] public int Port { get; set; } - - } diff --git a/src/Upgrade/ThingsGateway.Upgrade/Pages/SaveUpdateZipFile.razor.cs b/src/Upgrade/ThingsGateway.Upgrade/Pages/SaveUpdateZipFile.razor.cs index e5f0e7453..776b39a47 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Pages/SaveUpdateZipFile.razor.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Pages/SaveUpdateZipFile.razor.cs @@ -20,7 +20,6 @@ public partial class SaveUpdateZipFile [NotNull] public IStringLocalizer? RazorLocalizer { get; set; } - [Parameter] [NotNull] public Func? OnSaveUpdateZipFile { get; set; } diff --git a/src/Upgrade/ThingsGateway.Upgrade/Pages/UpdateZipFilePage.razor.cs b/src/Upgrade/ThingsGateway.Upgrade/Pages/UpdateZipFilePage.razor.cs index 8a74652a5..157c6e1b2 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Pages/UpdateZipFilePage.razor.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Pages/UpdateZipFilePage.razor.cs @@ -45,10 +45,7 @@ public partial class UpdateZipFilePage Title = Loaclozer["SaveUpdateZipFile"], ShowFooter = false, ShowCloseButton = false, - OnCloseAsync = async () => - { - await InvokeAsync(table.QueryAsync); - }, + OnCloseAsync = async () => await InvokeAsync(table.QueryAsync), }; op.Component = BootstrapDynamicComponent.CreateComponent(new Dictionary { diff --git a/src/Upgrade/ThingsGateway.Upgrade/Services/FileHostService.cs b/src/Upgrade/ThingsGateway.Upgrade/Services/FileHostService.cs index 5500f7e66..73717f2f0 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Services/FileHostService.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Services/FileHostService.cs @@ -37,10 +37,7 @@ public class FileHostService : BackgroundService, IFileHostService .SetListenIPHosts(new IPHost[] { new IPHost(upgradeServerOptions.UpgradeServerPort) }) .ConfigureContainer(a => { - a.AddRpcStore(store => - { - store.RegisterServer(); - }); + a.AddRpcStore(store => store.RegisterServer()); a.AddLogger(_log); a.AddDmtpRouteService();//添加路由策略 }) @@ -95,7 +92,6 @@ public class FileHostService : BackgroundService, IFileHostService #region Rpc public async ValueTask Updrade(string id, CancellationToken stoppingToken) { - var waitInvoke = new DmtpInvokeOption() { FeedbackType = FeedbackType.WaitInvoke, @@ -112,13 +108,10 @@ public class FileHostService : BackgroundService, IFileHostService // 将 GlobalData.CollectDevices 和 GlobalData.Variables 同步到从站 await client.GetDmtpRpcActor().InvokeAsync( nameof(Upgrade), null, waitInvoke).ConfigureAwait(false); - - } public async ValueTask Restart(string id, CancellationToken stoppingToken) { - var waitInvoke = new DmtpInvokeOption() { FeedbackType = FeedbackType.WaitInvoke, @@ -135,7 +128,6 @@ public class FileHostService : BackgroundService, IFileHostService // 将 GlobalData.CollectDevices 和 GlobalData.Variables 同步到从站 await client.GetDmtpRpcActor().InvokeAsync( nameof(Restart), null, waitInvoke).ConfigureAwait(false); - } #endregion @@ -149,15 +141,12 @@ public class FileHostService : BackgroundService, IFileHostService { if (TcpDmtpService.ServerState != ServerState.Running) { - await TcpDmtpService.StartAsync().ConfigureAwait(false); - } await Task.Delay(30000, stoppingToken).ConfigureAwait(false); } catch (OperationCanceledException) { - } catch (Exception ex) { diff --git a/src/Upgrade/ThingsGateway.Upgrade/Services/FileRpcServer.cs b/src/Upgrade/ThingsGateway.Upgrade/Services/FileRpcServer.cs index 34339b566..d2ae70348 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Services/FileRpcServer.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Services/FileRpcServer.cs @@ -11,7 +11,6 @@ public partial class FileRpcServer : SingletonRpcServer public FileRpcServer(ILog logger) { _logger = logger; - } [DmtpRpc(MethodInvoke = true)] @@ -19,5 +18,4 @@ public partial class FileRpcServer : SingletonRpcServer { return App.GetService().GetList(input); } - } \ No newline at end of file diff --git a/src/Upgrade/ThingsGateway.Upgrade/Services/IUpdateZipFileService.cs b/src/Upgrade/ThingsGateway.Upgrade/Services/IUpdateZipFileService.cs index 2904ebc65..c6c8a69ec 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Services/IUpdateZipFileService.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Services/IUpdateZipFileService.cs @@ -1,8 +1,4 @@  - - - - namespace ThingsGateway.Upgrade; public interface IUpdateZipFileHostedService diff --git a/src/Upgrade/ThingsGateway.Upgrade/Services/UpdateZipFileService.cs b/src/Upgrade/ThingsGateway.Upgrade/Services/UpdateZipFileService.cs index 95fa6bca4..317febaf6 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Services/UpdateZipFileService.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Services/UpdateZipFileService.cs @@ -42,7 +42,6 @@ public class UpdateZipFileHostedService : IUpdateZipFileHostedService var path = Path.Combine(AppContext.BaseDirectory, FileConst.ServerDir, model.AppName, model.Version.ToString(), model.DotNetVersion.ToString(), model.OSPlatform.ToString(), model.Architecture.ToString()); if (path.AsDirectory().Exists) { - path.AsDirectory().Delete(true); var stream = input.ZipFile.OpenReadStream(1024 * 1024 * 500); await jsonStream.DisposeAsync().ConfigureAwait(false); @@ -56,8 +55,6 @@ public class UpdateZipFileHostedService : IUpdateZipFileHostedService await Create(stream, model, path).ConfigureAwait(false); await stream.DisposeAsync().ConfigureAwait(false); } - - } finally { @@ -88,8 +85,6 @@ public class UpdateZipFileHostedService : IUpdateZipFileHostedService var stream = input.ZipFile; await Create(stream, model, path).ConfigureAwait(false); } - - } finally { diff --git a/src/Upgrade/ThingsGateway.Upgrade/Startup.cs b/src/Upgrade/ThingsGateway.Upgrade/Startup.cs index 204741e45..9851728a8 100644 --- a/src/Upgrade/ThingsGateway.Upgrade/Startup.cs +++ b/src/Upgrade/ThingsGateway.Upgrade/Startup.cs @@ -47,5 +47,4 @@ public class Startup : AppStartup var fullName = Assembly.GetExecutingAssembly().FullName;//获取程序集全名 CodeFirstUtils.CodeFirst(fullName!);//CodeFirst } - } diff --git a/src/Upgrade/ThingsGateway.UpgradeServer/Index/AdminIndex.razor.cs b/src/Upgrade/ThingsGateway.UpgradeServer/Index/AdminIndex.razor.cs index 9e1138e8c..3ff78398f 100644 --- a/src/Upgrade/ThingsGateway.UpgradeServer/Index/AdminIndex.razor.cs +++ b/src/Upgrade/ThingsGateway.UpgradeServer/Index/AdminIndex.razor.cs @@ -9,7 +9,6 @@ // QQ群:605534569 //------------------------------------------------------------------------------ - #pragma warning disable CA2007 // 考虑对等待的任务调用 ConfigureAwait using BootstrapBlazor.Components; @@ -22,14 +21,12 @@ using ThingsGateway.Extension; namespace ThingsGateway.UpgradeServer; - [Authorize] [IgnoreRolePermission] [Route("/")] [TabItemOption(Text = "Home", Icon = "fas fa-house")] public partial class AdminIndex { - [Inject] private BlazorAppContext AppContext { get; set; } @@ -57,4 +54,3 @@ public partial class AdminIndex await base.OnParametersSetAsync(); } } - diff --git a/src/Upgrade/ThingsGateway.UpgradeServer/Layout/Login.razor.cs b/src/Upgrade/ThingsGateway.UpgradeServer/Layout/Login.razor.cs index 89b53e49c..6a8b20004 100644 --- a/src/Upgrade/ThingsGateway.UpgradeServer/Layout/Login.razor.cs +++ b/src/Upgrade/ThingsGateway.UpgradeServer/Layout/Login.razor.cs @@ -73,7 +73,6 @@ public partial class Login try { - var ret = await AuthRazorService.LoginAsync(model); if (ret.Code != 200) @@ -102,6 +101,4 @@ public partial class Login } - - } diff --git a/src/Upgrade/ThingsGateway.UpgradeServer/Layout/MainLayout.razor.cs b/src/Upgrade/ThingsGateway.UpgradeServer/Layout/MainLayout.razor.cs index 1e854581e..ce8a80047 100644 --- a/src/Upgrade/ThingsGateway.UpgradeServer/Layout/MainLayout.razor.cs +++ b/src/Upgrade/ThingsGateway.UpgradeServer/Layout/MainLayout.razor.cs @@ -26,7 +26,6 @@ public partial class MainLayout : IDisposable [Inject] IStringLocalizer RazorLocalizer { get; set; } - #region 全局通知 [Inject] @@ -95,10 +94,8 @@ public partial class MainLayout : IDisposable private async Task LogoutAsync() { - try { - var ret = await AuthRazorService.LoginOutAsync(); if (ret.Code != 200) { diff --git a/src/Upgrade/ThingsGateway.UpgradeServer/Program/Program.cs b/src/Upgrade/ThingsGateway.UpgradeServer/Program/Program.cs index 93039adad..63501a2e4 100644 --- a/src/Upgrade/ThingsGateway.UpgradeServer/Program/Program.cs +++ b/src/Upgrade/ThingsGateway.UpgradeServer/Program/Program.cs @@ -15,7 +15,6 @@ using System.Text; using ThingsGateway.NewLife.Log; - namespace ThingsGateway.UpgradeServer; public class Program @@ -53,7 +52,6 @@ public class Program #endregion 控制台输出Logo - await Serve.RunAsync(RunOptions.Default.ConfigureFirstActionBuilder(builder => { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) @@ -63,16 +61,12 @@ public class Program if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) builder.Logging.ClearProviders(); //去除默认的事件日志提供者,某些情况下会日志输出异常,导致程序崩溃 - }).ConfigureBuilder(builder => { if (!builder.Environment.IsDevelopment()) { builder.Services.AddResponseCompression( - opts => - { - opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(second); - }); + opts => opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(second)); } builder.WebHost.UseWebRoot("wwwroot"); @@ -86,8 +80,6 @@ public class Program }); - - }) .Configure(app => { @@ -105,8 +97,5 @@ public class Program }) ).ConfigureAwait(false); - - } - } diff --git a/src/Upgrade/ThingsGateway.UpgradeServer/Program/SingleFilePublish.cs b/src/Upgrade/ThingsGateway.UpgradeServer/Program/SingleFilePublish.cs index d8fa8e29a..ff730c5d8 100644 --- a/src/Upgrade/ThingsGateway.UpgradeServer/Program/SingleFilePublish.cs +++ b/src/Upgrade/ThingsGateway.UpgradeServer/Program/SingleFilePublish.cs @@ -48,4 +48,3 @@ public class SingleFilePublish : ISingleFilePublish ]; } } - diff --git a/src/Upgrade/ThingsGateway.UpgradeServer/Program/Startup.cs b/src/Upgrade/ThingsGateway.UpgradeServer/Program/Startup.cs index 62b3c104c..79a5df8d7 100644 --- a/src/Upgrade/ThingsGateway.UpgradeServer/Program/Startup.cs +++ b/src/Upgrade/ThingsGateway.UpgradeServer/Program/Startup.cs @@ -34,7 +34,6 @@ public class Startup : AppStartup { public void ConfigBlazorServer(IServiceCollection services) { - // 增加中文编码支持网页源码显示汉字 services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All)); @@ -52,11 +51,7 @@ public class Startup : AppStartup //}); // 任务调度 - services.AddSchedule(options => - { - options.AddPersistence(); - }); - + services.AddSchedule(options => options.AddPersistence()); // 允许跨域 services.AddCorsAccessor(); @@ -89,13 +84,9 @@ public class Startup : AppStartup //.AddXmlDataContractSerializerFormatters() .AddInjectWithUnifyResult(); - #if NET8_0_OR_GREATER services - .AddRazorComponents(options => - { - options.TemporaryRedirectionUrlValidityDuration = TimeSpan.FromMinutes(10); - }) + .AddRazorComponents(options => options.TemporaryRedirectionUrlValidityDuration = TimeSpan.FromMinutes(10)) .AddInteractiveServerComponents(options => { options.RootComponents.MaxJSRootComponents = 500; @@ -145,12 +136,6 @@ public class Startup : AppStartup options.KnownProxies.Clear(); }); - - - - - - //已添加AddOptions // 增加多语言支持配置信息 services.AddRequestLocalization>((localizerOption, blazorOption) => @@ -211,18 +196,14 @@ public class Startup : AppStartup EncryptionAlgorithm = EncryptionAlgorithm.AES_256_CBC, ValidationAlgorithm = ValidationAlgorithm.HMACSHA256 }); - } - - public void Use(IApplicationBuilder applicationBuilder, IWebHostEnvironment env) { var app = (WebApplication)applicationBuilder; app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.All, KnownNetworks = { }, KnownProxies = { } }); app.UseBootstrapBlazor(); - // 启用本地化 var option = app.Services.GetService>(); if (option != null) @@ -251,7 +232,6 @@ public class Startup : AppStartup app.UseStaticFiles(new StaticFileOptions { OnPrepareResponse = ctx => ctx.ProcessCache(app.Configuration) }); } - app.UseStaticFiles(new StaticFileOptions { OnPrepareResponse = (stf) => @@ -270,7 +250,6 @@ public class Startup : AppStartup app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = provider }); app.UseStaticFiles(); - // 特定文件类型(文件后缀)处理 var contentTypeProvider = FS.GetFileExtensionContentTypeProvider(); // contentTypeProvider.Mappings[".文件后缀"] = "MIME 类型"; @@ -282,7 +261,6 @@ public class Startup : AppStartup //// 启用HTTPS //app.UseHttpsRedirection(); - // 添加状态码拦截中间件 app.UseUnifyResultStatusCodes(); @@ -315,9 +293,5 @@ public class Startup : AppStartup app.MapControllers(); app.MapHubs(); - - } - - } diff --git a/src/Upgrade/ThingsGateway.UpgradeServer/Program/Startup1.cs b/src/Upgrade/ThingsGateway.UpgradeServer/Program/Startup1.cs index 94bc22f78..e27b50f44 100644 --- a/src/Upgrade/ThingsGateway.UpgradeServer/Program/Startup1.cs +++ b/src/Upgrade/ThingsGateway.UpgradeServer/Program/Startup1.cs @@ -36,8 +36,5 @@ public class Startup1 : AppStartup }); var fullName = Assembly.GetExecutingAssembly().FullName;//获取程序集全名 CodeFirstUtils.CodeFirst(fullName!);//CodeFirst - - } - } diff --git a/src/Upgrade/ThingsGateway.UpgradeServer/SeedData/SysResourceSeedData.cs b/src/Upgrade/ThingsGateway.UpgradeServer/SeedData/SysResourceSeedData.cs index 47624558f..e2aaea519 100644 --- a/src/Upgrade/ThingsGateway.UpgradeServer/SeedData/SysResourceSeedData.cs +++ b/src/Upgrade/ThingsGateway.UpgradeServer/SeedData/SysResourceSeedData.cs @@ -24,6 +24,5 @@ public class SysResourceSeedData : ISqlSugarEntitySeedData var data2 = SeedDataUtil.GetSeedData(PathExtensions.CombinePathWithOs("SeedData", "Upgrade", "seed_upgrade_resourcebutton.json")); var assembly = GetType().Assembly; return SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.AutoUpdate.seed_upgrade_resource.json")).Concat(SeedDataUtil.GetSeedDataByJson(SeedDataUtil.GetManifestResourceStream(assembly, "SeedData.AutoUpdate.seed_upgrade_resourcebutton.json"))).Concat(data1).Concat(data2); - } }