using XFEExtension.NetCore.ServerInteractive.Models.UserModels;
using XFEExtension.NetCore.ServerInteractive.Options;
using XFEExtension.NetCore.ServerInteractive.Utilities.DataTable;
using XFEExtension.NetCore.ServerInteractive.Utilities.Server;
using XFEExtension.NetCore.ServerInteractive.Utilities.Server.Services.CoreService;
namespace XFEExtension.NetCore.ServerInteractive.Utilities.Extensions;
///
/// XFE服务器核心构建器扩展
///
public static class XFEServerCoreBuilderExtensions
{
///
extension(XFEServerCoreBuilder xFEServerCoreBuilder)
{
///
/// 使用XFE数据表格管理器
///
/// 数据表格构建器
///
///
///
public XFEServerCoreBuilder AddDataTableManager(XFEDataTableManagerBuilder xFEDataTableManagerBuilder, Func> getUserFunction, Func> getEncryptedUserLoginModelFunction)
{
xFEServerCoreBuilder.AddParameter("TableManager", xFEDataTableManagerBuilder.Build(getUserFunction, getEncryptedUserLoginModelFunction));
// Register the service for each table operation route
// XFEDataTableManagerService uses dynamic routing, so we use AddServiceWithRoute
foreach (var execute in xFEDataTableManagerBuilder.ExecuteList)
{
var parts = execute.Split('_', 2);
if (parts.Length != 2)
throw new InvalidOperationException($"执行语句格式无效:'{execute}',期望格式为 '{{operation}}_{{tableName}}'");
var route = $"table/{parts[0]}/{parts[1]}";
xFEServerCoreBuilder.AddServiceWithRoute(route);
}
return xFEServerCoreBuilder;
}
///
/// 添加用户基本参数
///
/// 登录返回用户接口类型
///
///
///
///
///
///
///
public XFEServerCoreBuilder AddUserParameterBase(Func> getUserFunction, Func> getEncryptedUserLoginModelFunction, Action addEncryptedUserLoginModelFunction, Action removeEncryptedUserLoginModelFunction, Func getLoginKeepDays, Func