XFEExtension.NetCore.ServerInteractive
[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore.ServerInteractive.SourceGenerator/ClientRequestGenerator.cs
+4
-7
Modified
XFEExtension.NetCore.ServerInteractive.SourceGenerator/Models/ClientRequestMethodCandidate.cs
+0
-4
Modified
XFEExtension.NetCore.ServerInteractive.SourceGenerator/Models/MethodCandidate.cs
+1
-5
Modified
XFEExtension.NetCore.ServerInteractive.TServer/Models/UserRole.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive.TServer/Profiles/UserProfile.cs
+1
-0
Modified
XFEExtension.NetCore.ServerInteractive/Implements/Requester/StandardRequestServiceBase.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Extensions/XFEServerCoreBuilderExtensions.cs
+1
-13
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCore.cs
+1
-1
XFEstudio/XFEExtension.NetCore.ServerInteractive
优化生成器与核心服务结构,调整命名空间与引用
对 ClientRequestGenerator 进行代码简化,采用 C# 12 集合表达式,优化 using 判断。移除部分未用 using 指令。将 UserRole 枚举迁移至 Models 命名空间,并同步调整相关引用。StandardRequestServiceBase 去除 partial 修饰。移除数据表格管理器服务的动态路由注册实现,添加 TODO。优化 XFEServerCore 路由变量声明位置,提升代码结构清晰度。
21ced8e
代码差异
8 个文件
+10
-32
@@ -69,7 +69,7 @@ public class ClientRequestGenerator : IIncrementalGenerator
69
69
.CreateSyntaxProvider(
70
70
predicate: static (s, _) => IsCandidateMethod(s),
71
71
transform: static (ctx, _) => GetMethodsForGeneration(ctx))
72
.Where(static m => !m.IsDefault && m.Length > 0)
72
.Where(static m => m is { IsDefault: false, Length: > 0 })
73
73
.SelectMany(static (m, _) => m);
74
74
75
75
// 按类分组
@@ -117,7 +117,7 @@ public class ClientRequestGenerator : IIncrementalGenerator
117
117
var compilationUnit = methodDeclaration.SyntaxTree.GetRoot() as CompilationUnitSyntax;
118
118
var usingDirectives = compilationUnit?.Usings
119
119
.Select(u => u.ToString().Trim())
120
.ToArray() ?? System.Array.Empty<string>();
120
.ToArray() ?? [];
121
121
122
122
var results = new List<ClientRequestMethodCandidate>();
123
123
@@ -189,10 +189,7 @@ public class ClientRequestGenerator : IIncrementalGenerator
189
189
usingDirectives));
190
190
}
191
191
192
if (results.Count == 0)
193
return default;
194
195
return results.ToImmutableArray();
192
return results.Count == 0 ? default : [..results];
196
193
}
197
194
198
195
private static void Execute(Compilation compilation, ImmutableArray<ClientRequestMethodCandidate> methods, SourceProductionContext context)
@@ -301,7 +298,7 @@ public class ClientRequestGenerator : IIncrementalGenerator
301
298
}
302
299
303
300
// 确保基础using存在
304
if (!allUsings.Any(u => u.Trim() == "using System;"))
301
if (allUsings.All(u => u.Trim() != "using System;"))
305
302
sourceBuilder.AppendLine("using System;");
306
303
if (!allUsings.Any(u => u.Contains("System.Collections.Generic")))
307
304
sourceBuilder.AppendLine("using System.Collections.Generic;");
@@ -1,7 +1,3 @@
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
1
namespace XFEExtension.NetCore.ServerInteractive.SourceGenerator.Models;
6
2
7
3
/// <summary>
@@ -1,8 +1,4 @@
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
namespace XFEExtension.NetCore.ServerInteractive.SourceGenerator.Models;
1
namespace XFEExtension.NetCore.ServerInteractive.SourceGenerator.Models;
6
2
7
3
/// <summary>
8
4
/// 方法候选信息,包含验证所需的所有数据
@@ -1,4 +1,4 @@
1
namespace XFEExtension.NetCore.ServerInteractive.TServer;
1
namespace XFEExtension.NetCore.ServerInteractive.TServer.Models;
2
2
3
3
/// <summary>
4
4
/// 用户角色
@@ -1,5 +1,6 @@
1
1
using XFEExtension.NetCore.AutoConfig;
2
2
using XFEExtension.NetCore.ServerInteractive.Models.UserModels;
3
using XFEExtension.NetCore.ServerInteractive.TServer.Models;
3
4
4
5
namespace XFEExtension.NetCore.ServerInteractive.TServer.Profiles;
5
6
@@ -6,7 +6,7 @@ namespace XFEExtension.NetCore.ServerInteractive.Implements.Requester;
6
6
/// <summary>
7
7
/// 标准请求服务基类
8
8
/// </summary>
9
public abstract partial class StandardRequestServiceBase : IStandardRequestService
9
public abstract class StandardRequestServiceBase : IStandardRequestService
10
10
{
11
11
/// <summary>
12
12
/// 本类型的请求路由路径列表(由增量生成器自动填充)
@@ -24,19 +24,7 @@ public static class XFEServerCoreBuilderExtensions
24
24
public XFEServerCoreBuilder AddDataTableManager(XFEDataTableManagerBuilder xFEDataTableManagerBuilder, Func<IEnumerable<User>> getUserFunction, Func<IEnumerable<EncryptedUserLoginModel>> getEncryptedUserLoginModelFunction)
25
25
{
26
26
xFEServerCoreBuilder.AddParameter("TableManager", xFEDataTableManagerBuilder.Build(getUserFunction, getEncryptedUserLoginModelFunction));
27
28
// Register the service for each table operation route
29
// XFEDataTableManagerService uses dynamic routing, so we use AddStandardServiceWithRoute
30
foreach (var execute in xFEDataTableManagerBuilder.ExecuteList)
31
{
32
var parts = execute.Split('_', 2);
33
if (parts.Length == 2)
34
{
35
var route = $"table/{parts[0]}/{parts[1]}";
36
xFEServerCoreBuilder.AddService<XFEDataTableManagerService>();
37
}
38
}
39
27
// TODO: 完善数据表格管理器的服务注册
40
28
return xFEServerCoreBuilder;
41
29
}
42
30
@@ -88,7 +88,6 @@ public abstract class XFEServerCore : ServerCoreServiceBase
88
88
}
89
89
90
90
// 从URL路径中提取路由信息
91
var route = string.Empty;
92
91
QueryableJsonNode? queryableJsonNode = null;
93
92
try
94
93
{
@@ -130,6 +129,7 @@ public abstract class XFEServerCore : ServerCoreServiceBase
130
129
var segments = url.Segments.Skip(1).Select(s => s.TrimEnd('/')).Where(s => !string.IsNullOrEmpty(s)).ToArray();
131
130
132
131
// 如果MainEntryPoint不为空,则需要匹配主入口点
132
string route;
133
133
if (!string.IsNullOrEmpty(MainEntryPoint))
134
134
{
135
135
if (segments.Length == 0 || segments[0] != MainEntryPoint)