refactor(dependencies): 移除未使用的域实体引用

- 从文件模块的多部分上传处理器中移除未使用的实体引用
- 从即时通讯模块的群组成员处理器中移除未使用的实体引用
- 从RAG模块的AI模型配置中移除未使用的实体引用
- 从监控模块的告警规则配置中移除未使用的实体引用
- 从平台模块的角色权限处理器中移除未使用的实体引用
- 从脚本模块的执行日志实体引用中进行清理
- 从多个基础设施配置类中移除未使用的依赖项
- 优化测试文件中的导入声明,移除不必要的引用
This commit is contained in:
xiangning 2026-07-19 14:09:47 +08:00
parent 3b13099378
commit 6c110b579a
105 changed files with 0 additions and 799 deletions

View File

@ -1,7 +1,4 @@
using System.Net.Http.Headers;
using System.Net.Http.Json;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace BuildFlow.Host.Configuration;

View File

@ -1,5 +1,3 @@
using Microsoft.Extensions.Configuration;
namespace BuildFlow.Host.Configuration;
/// <summary>

View File

@ -1,11 +1,6 @@
using System.Text;
using System.Text.Json;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Domain.Interfaces;
using BuildFlow.Infrastructure.Persistence;

View File

@ -1,11 +1,6 @@
using System.Text;
using System.Text.Json;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Domain.Interfaces;
using BuildFlow.Infrastructure.Persistence;

View File

@ -1,9 +1,4 @@
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
namespace File.Application.Common;

View File

@ -1,9 +1,4 @@
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;

View File

@ -1,9 +1,4 @@
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
namespace File.Application.Common;

View File

@ -4,11 +4,6 @@ using File.Application.Events;
using File.Application.Features.Files.Commands;
using File.Application.Features.Files.DTOs;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Domain.Exceptions;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;

View File

@ -1,10 +1,5 @@
using File.Application.Features.Folders.DTOs;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
namespace File.Application.Features.Folders.Commands;

View File

@ -2,12 +2,7 @@ using BuildFlow.Shared.Domain.Common;
using File.Application.Events;
using File.Application.Features.Folders.Commands;
using File.Application.Features.Folders.DTOs;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using MediatR;

View File

@ -3,11 +3,6 @@ using File.Application.Common;
using File.Application.Features.Folders.Commands;
using File.Application.Features.Folders.DTOs;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Domain.Exceptions;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;

View File

@ -1,10 +1,5 @@
using BuildFlow.Shared.Domain.Common;
using File.Application.Features.Multipart.Commands;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Domain.Exceptions;
using File.Infrastructure.Persistence;

View File

@ -3,10 +3,6 @@ using File.Application.Common;
using File.Application.Features.Multipart.Commands;
using File.Application.Features.Multipart.DTOs;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Domain.Exceptions;
using File.Infrastructure.Persistence;

View File

@ -2,11 +2,7 @@ using BuildFlow.Shared.Domain.Common;
using File.Application.Common;
using File.Application.Features.Multipart.Commands;
using File.Application.Features.Multipart.DTOs;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;

View File

@ -1,11 +1,6 @@
using BuildFlow.Shared.Domain.Common;
using File.Application.Features.Multipart.DTOs;
using File.Application.Features.Multipart.Queries;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;

View File

@ -1,11 +1,6 @@
using BuildFlow.Shared.Domain.Common;
using File.Application.Features.Multipart.Commands;
using File.Application.Features.Multipart.DTOs;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Domain.Exceptions;
using File.Infrastructure.Persistence;

View File

@ -1,11 +1,6 @@
using File.Application.Features.Settings.Commands;
using File.Application.Features.Settings.DTOs;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using MediatR;

View File

@ -4,12 +4,7 @@ using File.Application.Common;
using File.Application.Events;
using File.Application.Features.Shares.Commands;
using File.Application.Features.Shares.DTOs;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using MediatR;

View File

@ -1,9 +1,4 @@
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

View File

@ -1,9 +1,4 @@
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

View File

@ -1,9 +1,4 @@
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

View File

@ -1,9 +1,4 @@
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

View File

@ -1,9 +1,4 @@
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

View File

@ -3,7 +3,6 @@ using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using Microsoft.EntityFrameworkCore;
namespace File.Infrastructure.Persistence;

View File

@ -1,9 +1,7 @@
using MediatR;
using BuildFlow.Shared.Domain.Exceptions;
using IM.Application.Chat.Commands;
using IM.Domain.Entities.Conversation;
using IM.Domain.Entities.ConversationParticipant;
using IM.Domain.Entities.Group;
using IM.Domain.Entities.GroupMember;
using IM.Domain.Enums;
using IM.Infrastructure.Persistence;

View File

@ -1,7 +1,5 @@
using IM.Domain.Entities.Conversation;
using IM.Domain.Entities.ConversationParticipant;
using IM.Domain.Entities.Group;
using IM.Domain.Entities.GroupMember;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

View File

@ -1,7 +1,4 @@
using IM.Domain.Entities.Conversation;
using IM.Domain.Entities.ConversationParticipant;
using IM.Domain.Entities.Group;
using IM.Domain.Entities.GroupMember;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

View File

@ -1,7 +1,4 @@
using IM.Domain.Entities.Conversation;
using IM.Domain.Entities.ConversationParticipant;
using IM.Domain.Entities.Group;
using IM.Domain.Entities.GroupMember;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

View File

@ -1,6 +1,3 @@
using IM.Domain.Entities.Conversation;
using IM.Domain.Entities.ConversationParticipant;
using IM.Domain.Entities.Group;
using IM.Domain.Entities.GroupMember;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

View File

@ -1,7 +1,3 @@
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
namespace Monitoring.Application.ExternalSystems.DTOs;

View File

@ -3,10 +3,7 @@ using BuildFlow.Shared.Domain.Errors;
using MediatR;
using Monitoring.Application.ExternalSystems.Commands;
using Monitoring.Application.ExternalSystems.DTOs;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
using Monitoring.Domain.Enums;
using Monitoring.Infrastructure.Persistence;

View File

@ -1,6 +1,4 @@
using System.Text.Json;
using BuildFlow.Shared.Domain.Errors;
using BuildFlow.Shared.Domain.Exceptions;
using MediatR;
using Microsoft.EntityFrameworkCore;
using Monitoring.Application.ExternalSystems.DTOs;

View File

@ -5,10 +5,6 @@ using MediatR;
using Microsoft.EntityFrameworkCore;
using Monitoring.Application.ExternalSystems.Commands;
using Monitoring.Application.ExternalSystems.DTOs;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
using Monitoring.Infrastructure.Persistence;

View File

@ -2,7 +2,6 @@ using System.Text.Json;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;

View File

@ -1,6 +1,5 @@
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json;
using Monitoring.Domain.Enums;
using Monitoring.Domain.Values;
namespace Monitoring.Domain.Entities.ExternalSystem;

View File

@ -1,8 +1,4 @@
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
using Monitoring.Domain.Enums;
namespace Monitoring.Domain.Services;

View File

@ -1,8 +1,4 @@
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
namespace Monitoring.Domain.Services;

View File

@ -1,9 +1,5 @@
using System.Globalization;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
using Monitoring.Domain.Services;
namespace Monitoring.Infrastructure.Alerting;

View File

@ -1,8 +1,5 @@
using System.Text.Json;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
namespace Monitoring.Infrastructure.Connectors;

View File

@ -1,10 +1,6 @@
using System.Net.Http.Json;
using System.Text.Json;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
using Monitoring.Domain.Enums;
using Monitoring.Domain.Services;

View File

@ -1,12 +1,7 @@
using System.Net.Http.Json;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
using Monitoring.Domain.Enums;
using Monitoring.Domain.Services;

View File

@ -1,11 +1,7 @@
using System.Net;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
namespace Monitoring.Infrastructure.Connectors;

View File

@ -1,10 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
namespace Monitoring.Infrastructure.Persistence.Configurations;

View File

@ -1,10 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
namespace Monitoring.Infrastructure.Persistence.Configurations;

View File

@ -1,10 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
namespace Monitoring.Infrastructure.Persistence.Configurations;

View File

@ -1,10 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Monitoring.Domain.Entities.AlertRule;
using Monitoring.Domain.Entities.ExternalSystem;
using Monitoring.Domain.Entities.SyncJob;
using Monitoring.Domain.Entities.SyncedRecord;
using Monitoring.Domain.Values;
namespace Monitoring.Infrastructure.Persistence.Configurations;

View File

@ -9,14 +9,8 @@ using Microsoft.Extensions.Configuration;
using Microsoft.IdentityModel.Tokens;
using BuildFlow.Platform.Application.Auth.DTOs;
using BuildFlow.Platform.Domain.Common;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
using BuildFlow.Platform.Application.Auth.Commands;

View File

@ -1,12 +1,7 @@
using BuildFlow.Shared.Domain.Errors;
using BuildFlow.Shared.Domain.Exceptions;
using MediatR;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;

View File

@ -3,13 +3,6 @@ using MediatR;
using BuildFlow.Platform.Application.Menus.DTOs;
using BuildFlow.Platform.Application.Menus.Helpers;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
using BuildFlow.Platform.Application.Menus.Commands;
using BuildFlow.Platform.Domain.Enums;

View File

@ -1,12 +1,5 @@
using MediatR;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
using BuildFlow.Platform.Application.Notifications.Commands;

View File

@ -1,11 +1,4 @@
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
namespace BuildFlow.Platform.Application.Notifications;

View File

@ -1,14 +1,7 @@
using BuildFlow.Shared.Domain.Exceptions;
using MediatR;
using BuildFlow.Platform.Application.Permissions.DTOs;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
using BuildFlow.Platform.Application.Permissions.Commands;

View File

@ -3,14 +3,7 @@ using BuildFlow.Shared.Domain.Exceptions;
using MediatR;
using BuildFlow.Platform.Application.Roles.DTOs;
using BuildFlow.Platform.Domain.Common;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
using BuildFlow.Platform.Application.Roles.Commands;

View File

@ -1,14 +1,7 @@
using BuildFlow.Shared.Domain.Exceptions;
using MediatR;
using BuildFlow.Platform.Application.Roles.DTOs;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
using BuildFlow.Platform.Application.Roles.Commands;

View File

@ -3,13 +3,6 @@ using BuildFlow.Shared.Domain.Exceptions;
using MediatR;
using BuildFlow.Platform.Application.Users.DTOs;
using BuildFlow.Platform.Domain.Common;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
using BuildFlow.Platform.Application.Users.Commands;

View File

@ -1,12 +1,6 @@
using BuildFlow.Shared.Domain.Exceptions;
using MediatR;
using BuildFlow.Platform.Application.Users.DTOs;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;

View File

@ -1,13 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Domain.Enums;
namespace BuildFlow.Platform.Infrastructure.Persistence.Configurations;

View File

@ -1,13 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
namespace BuildFlow.Platform.Infrastructure.Persistence.Configurations;

View File

@ -1,13 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
namespace BuildFlow.Platform.Infrastructure.Persistence.Configurations;

View File

@ -1,13 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
namespace BuildFlow.Platform.Infrastructure.Persistence.Configurations;

View File

@ -1,13 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
namespace BuildFlow.Platform.Infrastructure.Persistence.Configurations;

View File

@ -1,13 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
namespace BuildFlow.Platform.Infrastructure.Persistence.Configurations;

View File

@ -1,13 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
namespace BuildFlow.Platform.Infrastructure.Persistence.Configurations;

View File

@ -1,12 +1,5 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
namespace BuildFlow.Platform.Infrastructure.Persistence.Configurations;

View File

@ -1,7 +1,5 @@
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;

View File

@ -2,12 +2,7 @@ using MediatR;
using BuildFlow.Application.Chat.DTOs;
using BuildFlow.Shared.Domain.Common;
using BuildFlow.Shared.Domain.Exceptions;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Infrastructure.Persistence;
using BuildFlow.Application.Chat.Commands;

View File

@ -1,11 +1,6 @@
using MediatR;
using BuildFlow.Application.Chat.DTOs;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Shared.Domain.Exceptions;
using BuildFlow.Domain.Interfaces;

View File

@ -3,12 +3,8 @@ using MediatR;
using Microsoft.AspNetCore.Http;
using BuildFlow.Application.Document.DTOs;
using BuildFlow.Domain.Interfaces;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Shared.Domain.Exceptions;
using BuildFlow.Infrastructure.Persistence;

View File

@ -1,8 +1,3 @@
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
namespace BuildFlow.Domain.Interfaces;

View File

@ -2,8 +2,6 @@ using System.Runtime.CompilerServices;
using System.Text;
using System.Net.Http.Headers;
using Microsoft.Extensions.AI;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Enums;
using BuildFlow.Domain.Interfaces;

View File

@ -1,11 +1,6 @@
using System.Data.Common;
using System.Text.RegularExpressions;
using Microsoft.EntityFrameworkCore;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Domain.Interfaces;

View File

@ -1,11 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
namespace BuildFlow.Infrastructure.Persistence.Configurations;

View File

@ -1,11 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
namespace BuildFlow.Infrastructure.Persistence.Configurations;

View File

@ -1,11 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
namespace BuildFlow.Infrastructure.Persistence.Configurations;

View File

@ -1,11 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
namespace BuildFlow.Infrastructure.Persistence.Configurations;

View File

@ -1,11 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
namespace BuildFlow.Infrastructure.Persistence.Configurations;

View File

@ -1,10 +1,5 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
namespace BuildFlow.Infrastructure.Persistence.Configurations;

View File

@ -3,7 +3,6 @@ using MediatR;
using Microsoft.EntityFrameworkCore;
using Scripting.Application.Commands;
using Scripting.Application.DTOs;
using Scripting.Domain.Entities.ScriptExecutionLog;
using Scripting.Domain.Entities.ScriptFunction;
using Scripting.Domain.Enums;
using Scripting.Infrastructure.Persistence;

View File

@ -1,7 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Scripting.Domain.Entities.ScriptExecutionLog;
using Scripting.Domain.Entities.ScriptFunction;
namespace Scripting.Infrastructure.Persistence.Configurations;

View File

@ -1,6 +1,5 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Scripting.Domain.Entities.ScriptExecutionLog;
using Scripting.Domain.Entities.ScriptFunction;
namespace Scripting.Infrastructure.Persistence.Configurations;

View File

@ -3,11 +3,6 @@ using BuildFlow.Shared.Infrastructure;
using File.Application.Features.Files.Handlers;
using File.Application.Features.Files.Queries;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;
using FluentAssertions;

View File

@ -4,11 +4,6 @@ using File.Application.Common;
using File.Application.Features.Files.Commands;
using File.Application.Features.Files.Handlers;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;
using FluentAssertions;

View File

@ -14,11 +14,7 @@ using File.Application.Features.Shares.Commands;
using File.Application.Features.Shares.Handlers;
using File.Application.Features.Shares.Queries;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;
using FluentAssertions;

View File

@ -5,10 +5,7 @@ using File.Application.Features.Multipart.Commands;
using File.Application.Features.Multipart.DTOs;
using File.Application.Features.Multipart.Handlers;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;

View File

@ -6,11 +6,7 @@ using File.Application.Features.Multipart.Commands;
using File.Application.Features.Multipart.DTOs;
using File.Application.Features.Multipart.Handlers;
using File.Application.Features.Multipart.Queries;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Domain.Exceptions;
using File.Infrastructure.Persistence;

View File

@ -4,11 +4,7 @@ using BuildFlow.Shared.Infrastructure;
using File.Application.Features.Shares.Handlers;
using File.Application.Features.Shares.Queries;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Domain.Exceptions;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;

View File

@ -4,11 +4,6 @@ using File.Application.Common;
using File.Application.Features.Files.Commands;
using File.Application.Features.Files.Handlers;
using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using File.Domain.Values;
using File.Domain.Exceptions;
using File.Infrastructure.Persistence;
using File.Infrastructure.Storage;

View File

@ -1,7 +1,5 @@
using IM.Domain.Entities.Conversation;
using IM.Domain.Entities.ConversationParticipant;
using IM.Domain.Entities.Group;
using IM.Domain.Entities.GroupMember;
using IM.Domain.Enums;
namespace BuildFlow.IM.Tests;

View File

@ -2,12 +2,7 @@ using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Application.Menus.Commands;
using BuildFlow.Platform.Application.Menus.Handlers;
using BuildFlow.Platform.Application.Menus.Queries;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Domain.Enums;
@ -19,7 +14,6 @@ using Microsoft.Extensions.DependencyInjection;
using Xunit;
namespace BuildFlow.Platform.Tests.Menus;
/// <summary>
/// 菜单管理测试。约束菜单主键使用 int64,并保证拖拽排序按 long Id 落库。
/// </summary>
@ -31,19 +25,14 @@ public class MenuSortTests
typeof(MenuEntity).GetProperty(nameof(MenuEntity.Id))!.PropertyType.Should().Be(typeof(long));
typeof(MenuEntity).GetProperty(nameof(MenuEntity.ParentId))!.PropertyType.Should().Be(typeof(long?));
}
[Fact]
public async Task SortMenusCommand_ShouldUpdateMenusByInt64Ids()
{
await using var db = BuildInMemoryDb();
db.Menus.AddRange(
BuildMenu(1, "root", null, 0),
BuildMenu(2, "child-a", 1, 0),
BuildMenu(3, "child-b", 1, 1));
await db.SaveChangesAsync();
var handler = new SortMenusCommandHandler(db);
var affected = await handler.Handle(
new SortMenusCommand(
[
@ -51,7 +40,6 @@ public class MenuSortTests
new MenuSortItem(3, null, 0),
]),
CancellationToken.None);
affected.Should().Be(2);
var childA = await db.Menus.SingleAsync(m => m.Id == 2);
var childB = await db.Menus.SingleAsync(m => m.Id == 3);
@ -59,36 +47,17 @@ public class MenuSortTests
childA.Order.Should().Be(1);
childB.ParentId.Should().BeNull();
childB.Order.Should().Be(0);
}
[Fact]
public async Task SortMenusCommand_ShouldRejectMovingMenuUnderDescendant()
{
await using var db = BuildInMemoryDb();
db.Menus.AddRange(
BuildMenu(1, "root", null, 0),
BuildMenu(2, "child", 1, 0),
BuildMenu(3, "grand-child", 2, 0));
await db.SaveChangesAsync();
var handler = new SortMenusCommandHandler(db);
var act = () => handler.Handle(
new SortMenusCommand([new MenuSortItem(1, 3, 0)]),
CancellationToken.None);
await act.Should().ThrowAsync<BusinessException>()
.WithMessage("不能将菜单移动到自己的子菜单下面");
}
[Fact]
public async Task GetAllMenusQuery_ShouldExposeBuildFlowFormRuntimeMetadata()
{
await using var db = BuildInMemoryDb();
var userId = Guid.NewGuid();
var roleId = Guid.NewGuid();
var formId = Guid.NewGuid();
db.Users.Add(new UserEntity
{
Id = userId,
@ -100,20 +69,11 @@ public class MenuSortTests
OperatorIP = "127.0.0.1",
});
db.Roles.Add(new RoleEntity
{
Id = roleId,
Name = "Admin",
CreatedBy = "test",
UpdatedBy = "test",
OperatorIP = "127.0.0.1",
});
db.UserRoles.Add(new UserRoleEntity
{
UserId = userId,
RoleId = roleId,
CreatedBy = "test",
UpdatedBy = "test",
});
db.Menus.Add(BuildMenu(
100,
"expense.request",
@ -122,70 +82,24 @@ public class MenuSortTests
renderType: MenuRenderTypeEnum.BuildFlowForm,
formDefinitionId: formId,
runtimeViewMode: MenuRuntimeViewModeEnum.List));
await db.SaveChangesAsync();
var handler = new GetAllMenusQueryHandler(db);
var routes = await handler.Handle(new GetAllMenusQuery(userId.ToString()), CancellationToken.None);
var route = routes.Should().ContainSingle().Subject;
route.Component.Should().Be("/buildflow/runtime/index");
route.Meta.RenderType.Should().Be("BuildFlowForm");
route.Meta.FormDefinitionId.Should().Be(formId);
route.Meta.RuntimeViewMode.Should().Be("List");
}
[Fact]
public async Task GetAllMenusQuery_ShouldHideRestrictedMenuWithoutVisibleForbidden()
{
await using var db = BuildInMemoryDb();
var userId = Guid.NewGuid();
var roleId = Guid.NewGuid();
db.Users.Add(new UserEntity
{
Id = userId,
Username = "viewer",
Email = "viewer@buildflow.local",
PasswordHash = "hash",
CreatedBy = "test",
UpdatedBy = "test",
OperatorIP = "127.0.0.1",
});
db.Roles.Add(new RoleEntity
{
Id = roleId,
Name = "Viewer",
CreatedBy = "test",
UpdatedBy = "test",
OperatorIP = "127.0.0.1",
});
db.UserRoles.Add(new UserRoleEntity
{
UserId = userId,
RoleId = roleId,
CreatedBy = "test",
UpdatedBy = "test",
});
db.Menus.Add(BuildMenu(200, "finance.expense", null, 0, authority: "Admin"));
await db.SaveChangesAsync();
var handler = new GetAllMenusQueryHandler(db);
var routes = await handler.Handle(new GetAllMenusQuery(userId.ToString()), CancellationToken.None);
routes.Should().BeEmpty();
}
[Fact]
public async Task GetAllMenusQuery_ShouldReturnForbiddenVisibleMenuOnlyForUnauthorizedUser()
{
await using var db = BuildInMemoryDb();
var viewerId = Guid.NewGuid();
var adminId = Guid.NewGuid();
var viewerRoleId = Guid.NewGuid();
var adminRoleId = Guid.NewGuid();
db.Users.AddRange(
new UserEntity
{
@ -197,78 +111,38 @@ public class MenuSortTests
UpdatedBy = "test",
OperatorIP = "127.0.0.1",
},
new UserEntity
{
Id = adminId,
Username = "admin",
Email = "admin@buildflow.local",
PasswordHash = "hash",
CreatedBy = "test",
UpdatedBy = "test",
OperatorIP = "127.0.0.1",
});
db.Roles.AddRange(
new RoleEntity
{
Id = viewerRoleId,
Name = "Viewer",
CreatedBy = "test",
UpdatedBy = "test",
OperatorIP = "127.0.0.1",
},
new RoleEntity
{
Id = adminRoleId,
Name = "Admin",
CreatedBy = "test",
UpdatedBy = "test",
OperatorIP = "127.0.0.1",
});
db.UserRoles.AddRange(
new UserRoleEntity
{
UserId = viewerId,
RoleId = viewerRoleId,
CreatedBy = "test",
UpdatedBy = "test",
},
new UserRoleEntity
{
UserId = adminId,
RoleId = adminRoleId,
CreatedBy = "test",
UpdatedBy = "test",
});
db.Menus.Add(BuildMenu(
200,
"finance.expense",
null,
0,
authority: "Admin",
menuVisibleWithForbidden: true));
await db.SaveChangesAsync();
var handler = new GetAllMenusQueryHandler(db);
var viewerRoutes = await handler.Handle(new GetAllMenusQuery(viewerId.ToString()), CancellationToken.None);
var adminRoutes = await handler.Handle(new GetAllMenusQuery(adminId.ToString()), CancellationToken.None);
var viewerRoute = viewerRoutes.Should().ContainSingle().Subject;
viewerRoute.Meta.Authority.Should().Equal("Admin");
viewerRoute.Meta.MenuVisibleWithForbidden.Should().BeTrue();
var adminRoute = adminRoutes.Should().ContainSingle().Subject;
adminRoute.Meta.Authority.Should().Equal("Admin");
adminRoute.Meta.MenuVisibleWithForbidden.Should().BeNull();
}
private static PlatformDbContext BuildInMemoryDb()
{
var services = new ServiceCollection();
services.AddDbContext<PlatformDbContext>(o => o.UseInMemoryDatabase($"platform-menu-{Guid.NewGuid()}"));
return services.BuildServiceProvider().GetRequiredService<PlatformDbContext>();
}
private static MenuEntity BuildMenu(
long id,
string code,
@ -280,7 +154,6 @@ public class MenuSortTests
string? authority = null,
bool menuVisibleWithForbidden = false)
=> new()
{
Id = id,
Code = code,
Name = code.Replace(".", "-", StringComparison.Ordinal),
@ -293,10 +166,7 @@ public class MenuSortTests
RuntimeViewMode = runtimeViewMode,
Authority = authority,
MenuVisibleWithForbidden = menuVisibleWithForbidden,
CreatedBy = "test",
CreatedAt = DateTime.UtcNow,
UpdatedBy = "test",
UpdatedAt = DateTime.UtcNow,
OperatorIP = "127.0.0.1",
};
}

View File

@ -2,14 +2,6 @@ using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Application.Notifications.Commands;
using BuildFlow.Platform.Application.Notifications.Handlers;
using BuildFlow.Platform.Application.Notifications.Queries;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
using FluentAssertions;
using Microsoft.EntityFrameworkCore;
@ -18,7 +10,6 @@ using Xunit;
using INotificationDispatcher = BuildFlow.Platform.Application.Notifications.INotificationDispatcher;
namespace BuildFlow.Platform.Tests.Notifications;
/// <summary>
/// [SOP-PLATFORM-02] 通知系统全 Handler 覆盖测试。
/// 覆盖:Publish(Fanout) / GetNotifications(分页) / GetUnreadCount / MarkRead / MarkAllRead。
@ -28,7 +19,6 @@ public class NotificationHandlerTests
{
private static PlatformDbContext CreateDb([System.Runtime.CompilerServices.CallerMemberName] string name = "")
=> PlatformTestDb.CreateDbContext(name);
private static NotificationEntity NewNotification(Guid recipient, bool read = false, string type = "system")
=> PlatformTestDb.WithAudit(new NotificationEntity
{
@ -40,7 +30,6 @@ public class NotificationHandlerTests
IsRead = read,
ReadAt = read ? DateTime.UtcNow : null
});
[Fact]
public async Task Publish_WithRecipientUserIds_FanoutAndDispatch()
{
@ -49,11 +38,9 @@ public class NotificationHandlerTests
var u1 = Guid.NewGuid();
var u2 = Guid.NewGuid();
var handler = new PublishNotificationCommandHandler(db, dispatcher);
var count = await handler.Handle(new PublishNotificationCommand(
"task-arrived", "标题", "内容", "workflow", null, "workflow-instance",
new[] { u1, u2 }, null), CancellationToken.None);
count.Should().Be(2);
(await db.Notifications.IgnoreQueryFilters().ToListAsync())
.Should().HaveCount(2);
@ -61,116 +48,47 @@ public class NotificationHandlerTests
Arg.Is<IReadOnlyList<NotificationEntity>>(l => l.Count == 2),
Arg.Any<CancellationToken>());
}
[Fact]
public async Task Publish_NoRecipients_ReturnsZeroAndNoDispatch()
{
var db = CreateDb();
var dispatcher = Substitute.For<INotificationDispatcher>();
var handler = new PublishNotificationCommandHandler(db, dispatcher);
var count = await handler.Handle(new PublishNotificationCommand(
"system", "t", "c", "system", null, null, null, null), CancellationToken.None);
count.Should().Be(0);
await dispatcher.DidNotReceiveWithAnyArgs().DispatchAsync(default!, default);
}
[Fact]
public async Task GetNotifications_Paginated_ReturnsUserOnly()
{
var db = CreateDb();
var me = Guid.NewGuid();
var other = Guid.NewGuid();
db.Notifications.AddRange(NewNotification(me), NewNotification(me), NewNotification(other));
await db.SaveChangesAsync();
var handler = new GetNotificationsQueryHandler(db);
var result = await handler.Handle(
new GetNotificationsQuery(me, false, 1, 10), CancellationToken.None);
result.Items.Should().HaveCount(2);
result.Items.Should().OnlyContain(n => n.RecipientUserId == me);
result.Total.Should().Be(2);
}
[Fact]
public async Task GetNotifications_UnreadOnly_FiltersRead()
{
var db = CreateDb();
var me = Guid.NewGuid();
db.Notifications.AddRange(NewNotification(me, read: true), NewNotification(me, read: false));
await db.SaveChangesAsync();
var handler = new GetNotificationsQueryHandler(db);
var result = await handler.Handle(
new GetNotificationsQuery(me, true, 1, 10), CancellationToken.None);
result.Items.Should().HaveCount(1);
result.Items[0].IsRead.Should().BeFalse();
}
[Fact]
public async Task GetUnreadCount_ReturnsOnlyUnread()
{
var db = CreateDb();
var me = Guid.NewGuid();
db.Notifications.AddRange(
NewNotification(me, read: false),
NewNotification(me, read: false),
NewNotification(me, read: true));
await db.SaveChangesAsync();
var handler = new GetUnreadNotificationCountQueryHandler(db);
var count = await handler.Handle(new GetUnreadNotificationCountQuery(me), CancellationToken.None);
count.Should().Be(2);
}
[Fact]
public async Task MarkRead_ExistingUnread_MarksAndReturnsTrue()
{
var db = CreateDb();
var me = Guid.NewGuid();
var n = NewNotification(me, read: false);
db.Notifications.Add(n);
await db.SaveChangesAsync();
var handler = new MarkNotificationReadCommandHandler(db);
var ok = await handler.Handle(new MarkNotificationReadCommand(n.Id, me), CancellationToken.None);
ok.Should().BeTrue();
(await db.Notifications.FindAsync(n.Id))!.IsRead.Should().BeTrue();
}
[Fact]
public async Task MarkRead_NonExistent_ReturnsFalse()
{
var db = CreateDb();
var handler = new MarkNotificationReadCommandHandler(db);
var ok = await handler.Handle(
new MarkNotificationReadCommand(Guid.NewGuid(), Guid.NewGuid()), CancellationToken.None);
ok.Should().BeFalse();
}
[Fact]
public async Task MarkAllRead_MarksAllForUser()
{
var db = CreateDb();
var me = Guid.NewGuid();
var other = Guid.NewGuid();
db.Notifications.AddRange(
NewNotification(me, read: false),
NewNotification(me, read: false),
NewNotification(other, read: false));
await db.SaveChangesAsync();
var handler = new MarkAllNotificationsReadCommandHandler(db);
var affected = await handler.Handle(new MarkAllNotificationsReadCommand(me), CancellationToken.None);
affected.Should().Be(2);
(await db.Notifications.CountAsync(n => n.RecipientUserId == me && !n.IsRead)).Should().Be(0);
}
}

View File

@ -2,14 +2,8 @@ using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Application.Permissions.Commands;
using BuildFlow.Platform.Application.Permissions.Handlers;
using BuildFlow.Platform.Application.Permissions.Queries;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
using BuildFlow.Shared.Domain.Exceptions;
using FluentAssertions;
@ -17,7 +11,6 @@ using Microsoft.EntityFrameworkCore;
using Xunit;
namespace BuildFlow.Platform.Tests.Permissions;
/// <summary>
/// [SOP-PLATFORM] 权限管理全 Handler 覆盖测试。
/// 覆盖:Create / Update / Delete / GetList / GetById / GetTree。
@ -27,7 +20,6 @@ public class PermissionHandlerTests
{
private static PlatformDbContext CreateDb([System.Runtime.CompilerServices.CallerMemberName] string name = "")
=> PlatformTestDb.CreateDbContext(name);
private static PermissionEntity NewPermission(string code, string? group = "TestGroup")
=> PlatformTestDb.WithAudit(new PermissionEntity
{
@ -36,162 +28,70 @@ public class PermissionHandlerTests
Description = "desc",
Group = group
});
[Fact]
public async Task Create_Valid_ReturnsDto()
{
var db = CreateDb();
var handler = new CreatePermissionCommandHandler(db);
var result = await handler.Handle(
new CreatePermissionCommand("创建用户", "user:create", "描述", "UserManagement"),
CancellationToken.None);
result.Code.Should().Be("user:create");
result.Name.Should().Be("创建用户");
(await db.Permissions.CountAsync()).Should().Be(1);
}
[Fact]
public async Task Create_DuplicateCode_ThrowsBusiness()
{
var db = CreateDb();
db.Permissions.Add(NewPermission("user:create"));
await db.SaveChangesAsync();
var handler = new CreatePermissionCommandHandler(db);
var act = async () => await handler.Handle(
new CreatePermissionCommand("重复", "user:create", null, null), CancellationToken.None);
await act.Should().ThrowAsync<BusinessException>("Code 唯一,重复应拒绝");
}
[Fact]
public async Task Update_Existing_OverwritesNullableFields()
{
var db = CreateDb();
var p = NewPermission("user:read");
db.Permissions.Add(p);
await db.SaveChangesAsync();
var handler = new UpdatePermissionCommandHandler(db);
var result = await handler.Handle(
new UpdatePermissionCommand(p.Id, "新名称", "新描述", "NewGroup"), CancellationToken.None);
result.Name.Should().Be("新名称");
result.Description.Should().Be("新描述");
result.Group.Should().Be("NewGroup");
result.Code.Should().Be("user:read", "Code 不可改");
}
[Fact]
public async Task Update_NonExistent_ThrowsNotFound()
{
var db = CreateDb();
var handler = new UpdatePermissionCommandHandler(db);
var act = async () => await handler.Handle(
new UpdatePermissionCommand(Guid.NewGuid(), "x", null, null), CancellationToken.None);
await act.Should().ThrowAsync<NotFoundException>();
}
[Fact]
public async Task Delete_Existing_RemovesAndUnlinksRoles()
{
var db = CreateDb();
var p = NewPermission("user:delete");
var role = PlatformTestDb.WithAudit(new RoleEntity { Name = "Admin" });
var link = new RolePermissionEntity { RoleEntity = role, PermissionEntity = p };
db.Permissions.Add(p);
db.Roles.Add(role);
db.RolePermissions.Add(link);
await db.SaveChangesAsync();
var handler = new DeletePermissionCommandHandler(db);
await handler.Handle(new DeletePermissionCommand(p.Id), CancellationToken.None);
(await db.Permissions.AnyAsync(x => x.Id == p.Id)).Should().BeFalse("软删后不可见");
}
[Fact]
public async Task Delete_NonExistent_ThrowsNotFound()
{
var db = CreateDb();
var handler = new DeletePermissionCommandHandler(db);
var act = async () => await handler.Handle(new DeletePermissionCommand(Guid.NewGuid()), CancellationToken.None);
await act.Should().ThrowAsync<NotFoundException>();
}
[Fact]
public async Task GetList_ReturnsAll()
{
var db = CreateDb();
db.Permissions.AddRange(NewPermission("p1"), NewPermission("p2"));
await db.SaveChangesAsync();
var handler = new GetPermissionListQueryHandler(db);
var result = await handler.Handle(new GetPermissionListQuery(), CancellationToken.None);
result.Should().HaveCount(2);
}
[Fact]
public async Task GetById_Existing_ReturnsDto()
{
var db = CreateDb();
var p = NewPermission("user:read");
db.Permissions.Add(p);
await db.SaveChangesAsync();
var handler = new GetPermissionByIdQueryHandler(db);
var result = await handler.Handle(new GetPermissionByIdQuery(p.Id), CancellationToken.None);
result.Code.Should().Be("user:read");
}
[Fact]
public async Task GetById_NonExistent_ThrowsNotFound()
{
var db = CreateDb();
var handler = new GetPermissionByIdQueryHandler(db);
var act = async () => await handler.Handle(new GetPermissionByIdQuery(Guid.NewGuid()), CancellationToken.None);
await act.Should().ThrowAsync<NotFoundException>();
}
[Fact]
public async Task GetTree_GroupsByGroupField()
{
var db = CreateDb();
db.Permissions.AddRange(
NewPermission("a:1", "GroupA"),
NewPermission("a:2", "GroupA"),
NewPermission("b:1", "GroupB"));
await db.SaveChangesAsync();
var handler = new GetPermissionTreeQueryHandler(db);
var tree = await handler.Handle(new GetPermissionTreeQuery(), CancellationToken.None);
tree.Should().HaveCount(2);
tree.First(g => g.Group == "GroupA").Permissions.Should().HaveCount(2);
tree.First(g => g.Group == "GroupB").Permissions.Should().HaveCount(1);
}
[Fact]
public async Task GetTree_NullGroup_GoesToUngrouped()
{
var db = CreateDb();
db.Permissions.Add(NewPermission("no:group", null));
await db.SaveChangesAsync();
var handler = new GetPermissionTreeQueryHandler(db);
var tree = await handler.Handle(new GetPermissionTreeQuery(), CancellationToken.None);
tree.Should().ContainSingle();
tree[0].Group.Should().Be("未分组");
}
}

View File

@ -3,18 +3,9 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Primitives;
using BuildFlow.Platform.Domain.Entities.Menu;
using BuildFlow.Platform.Domain.Entities.Notification;
using BuildFlow.Platform.Domain.Entities.Permission;
using BuildFlow.Platform.Domain.Entities.RefreshToken;
using BuildFlow.Platform.Domain.Entities.Role;
using BuildFlow.Platform.Domain.Entities.RolePermission;
using BuildFlow.Platform.Domain.Entities.User;
using BuildFlow.Platform.Domain.Entities.UserRole;
using BuildFlow.Platform.Infrastructure.Persistence;
namespace BuildFlow.Platform.Tests;
/// <summary>
/// Platform 模块测试基础设施:InMemory PlatformDbContext 工厂 + JWT 配置构造 + 审计字段填充 helper。
/// </summary>
@ -38,10 +29,8 @@ internal static class PlatformTestDb
db.SavingChanges += AutoFillAuditFields;
return db;
}
/// <summary>SavingChanges 回调:自动填充审计字段,模拟生产 AuditInterceptor 行为。</summary>
private static void AutoFillAuditFields(object? sender, EventArgs _)
{
if (sender is not Microsoft.EntityFrameworkCore.DbContext ctx) return;
foreach (var entry in ctx.ChangeTracker.Entries())
{
@ -53,36 +42,26 @@ internal static class PlatformTestDb
if (a.UpdatedAt == default) a.UpdatedAt = DateTime.UtcNow;
}
if (entry.Entity is BuildFlow.Shared.Domain.Common.IHasOperatorIP o)
{
o.OperatorIP ??= "127.0.0.1";
}
}
}
/// <summary>构造测试用 IConfiguration(提供 JWT 签发所需的 SigningKey/Issuer/Audience)。</summary>
/// <remarks>
/// 用字典实现而非 NSubstitute mock:因为 <c>GetValue&lt;T&gt;</c> 是扩展方法,
/// 内部走 ConfigurationBinder 对 this[key] 做类型转换,mock 对未设置的 key 返回空串会导致 Int32 解析失败。
/// 字典实现让未设置的 key 返回 null,使扩展方法回退到默认值。
/// </remarks>
public static IConfiguration CreateConfig() => new DictionaryConfiguration
{
["Jwt:SigningKey"] = "TestSigningKeyMustBeAtLeast32CharsLong!!",
["Jwt:Issuer"] = "test-issuer",
["Jwt:Audience"] = "test-audience",
["Jwt:AccessTokenMinutes"] = "240",
["Jwt:RefreshTokenDays"] = "7",
};
/// <summary>填充 IFullAudit 实体的必填审计字段,避免 EF 保存时非空校验失败。</summary>
public static T WithAudit<T>(T entity) where T : class
{
var createdBy = entity.GetType().GetProperty("CreatedBy");
var updatedBy = entity.GetType().GetProperty("UpdatedBy");
var operatorIP = entity.GetType().GetProperty("OperatorIP");
var createdAt = entity.GetType().GetProperty("CreatedAt");
var updatedAt = entity.GetType().GetProperty("UpdatedAt");
if (createdBy is not null && createdBy.GetValue(entity) is null or "")
createdBy.SetValue(entity, "test");
if (updatedBy is not null && updatedBy.GetValue(entity) is null or "")
@ -93,10 +72,7 @@ internal static class PlatformTestDb
createdAt.SetValue(entity, DateTime.UtcNow);
if (updatedAt is not null && (DateTime)updatedAt.GetValue(entity)! == default)
updatedAt.SetValue(entity, DateTime.UtcNow);
return entity;
}
/// <summary>构造一个已持久化的测试用户(含 BCrypt 密码哈希)。</summary>
public static async Task<UserEntity> SeedUserAsync(
PlatformDbContext db,
@ -105,9 +81,7 @@ internal static class PlatformTestDb
string password = "Admin@123",
bool isActive = true,
int permissionVersion = 0)
{
var user = WithAudit(new UserEntity
{
Id = id,
Username = username,
Email = $"{username}@test.local",
@ -118,68 +92,39 @@ internal static class PlatformTestDb
db.Users.Add(user);
await db.SaveChangesAsync();
return user;
}
}
/// <summary>
/// 极简字典实现的 IConfiguration,仅供测试使用。
/// </summary>
/// <remarks>
/// 完整实现 GetSection/GetChildren,让 GetValue&lt;T&gt; 扩展方法(走 ConfigurationBinder)能正确工作。
/// 注意:ConfigurationBinder.GetValue 内部调用 GetSection(key).Value,故必须返回有效 section。
/// </remarks>
internal sealed class DictionaryConfiguration : IConfiguration
{
private readonly Dictionary<string, string?> _values = [];
public string? this[string key]
{
get => _values.TryGetValue(key, out var v) ? v : null;
set => _values[key] = value;
}
// 支持集合初始化器语法:new DictionaryConfiguration { ["k"] = "v" }
public void Add(string key, string? value) => _values[key] = value;
IEnumerable<IConfigurationSection> IConfiguration.GetChildren() =>
_values.Select(kv => (IConfigurationSection)new LeafSection(kv.Key, kv.Value)).ToList();
IChangeToken IConfiguration.GetReloadToken() => EmptyChangeToken.Instance;
IConfigurationSection IConfiguration.GetSection(string key) =>
new LeafSection(key, _values.TryGetValue(key, out var v) ? v : null);
private sealed class LeafSection(string key, string? value) : IConfigurationSection
{
public string Key => key;
public string Path => key;
public string? Value { get; set; } = value;
string? IConfiguration.this[string childKey]
{
get => null;
set { }
}
IConfigurationSection IConfiguration.GetSection(string childKey) =>
new LeafSection($"{key}:{childKey}", null);
IEnumerable<IConfigurationSection> IConfiguration.GetChildren() => [];
IChangeToken IConfiguration.GetReloadToken() => EmptyChangeToken.Instance;
}
/// <summary>永不变更的占位 IChangeToken,避免引入额外包依赖。</summary>
private sealed class EmptyChangeToken : IChangeToken
{
public static readonly EmptyChangeToken Instance = new();
public bool ActiveChangeCallbacks => false;
public bool HasChanged => false;
public IDisposable RegisterChangeCallback(Action<object> callback, object? state) =>
new NoopDisposable();
private sealed class NoopDisposable : IDisposable
{
public void Dispose() { }
}
}
}

View File

@ -1,9 +1,4 @@
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Infrastructure.AI;
using BuildFlow.Infrastructure.Persistence;

View File

@ -1,11 +1,6 @@
using BuildFlow.Application.Chat.Commands;
using BuildFlow.Application.Chat.Handlers;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Infrastructure.Persistence;
using BuildFlow.Rag.Tests.Stub;

View File

@ -5,12 +5,9 @@ using BuildFlow.Application.Embedding.Handlers;
using BuildFlow.Application.Chat.Commands;
using BuildFlow.Application.Chat.Handlers;
using BuildFlow.Application.Chat.Queries;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Domain.Interfaces;
using BuildFlow.Infrastructure.Persistence;

View File

@ -1,10 +1,6 @@
using BuildFlow.Application.Document.Handlers;
using BuildFlow.Application.Document.Queries;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Domain.Interfaces;

View File

@ -1,10 +1,6 @@
using BuildFlow.Application.RagQA.Commands;
using BuildFlow.Application.RagQA.Handlers;
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Enums;
using BuildFlow.Domain.Interfaces;

View File

@ -1,8 +1,3 @@
using BuildFlow.Domain.Entities.AiModel;
using BuildFlow.Domain.Entities.ChatMessage;
using BuildFlow.Domain.Entities.Conversation;
using BuildFlow.Domain.Entities.Document;
using BuildFlow.Domain.Entities.DocumentChunk;
using BuildFlow.Domain.Entities.KnowledgeBase;
using BuildFlow.Domain.Interfaces;

View File

@ -3,7 +3,6 @@ using FluentAssertions;
using Microsoft.EntityFrameworkCore;
using Scripting.Application.Commands;
using Scripting.Application.Handlers;
using Scripting.Domain.Entities.ScriptExecutionLog;
using Scripting.Domain.Entities.ScriptFunction;
using Scripting.Domain.Enums;
using Scripting.Infrastructure.Persistence;

View File

@ -5,7 +5,6 @@ using MediatR;
using Microsoft.EntityFrameworkCore;
using NSubstitute;
using Scripting.Application.Services;
using Scripting.Domain.Entities.ScriptExecutionLog;
using Scripting.Domain.Entities.ScriptFunction;
using Scripting.Domain.Enums;
using Scripting.Infrastructure.Persistence;

Some files were not shown because too many files have changed in this diff Show More