Procházet zdrojové kódy

添加课件分类接口

guqiang před 1 měsícem
rodič
revize
4ed4027791
100 změnil soubory, kde provedl 405 přidání a 96 odebrání
  1. 0 7
      Hotline.sln
  2. 9 0
      src/01.Infrastructure/Exam.Infrastructure.Data/Entity/ActionRequest.cs
  3. 11 1
      src/01.Infrastructure/Exam.Infrastructure.Data/Entity/EntityQueryRequest.cs
  4. 0 2
      src/01.Infrastructure/Exam.Infrastructure.Validation/Exam.Infrastructure.Validation.csproj
  5. 15 0
      src/01.Infrastructure/Exam.Infrastructure.Web/Constants/RouteApi.cs
  6. 1 1
      src/01.Infrastructure/Exam.Infrastructure.Web/Exam.Infrastructure.Web.csproj
  7. 4 5
      src/01.Infrastructure/Exam.Infrastructure.Web/Utilities/ServiceUtility.cs
  8. 0 2
      src/01.Infrastructure/Exam.Insfrastructure.Service/Exam.Insfrastructure.Service.csproj
  9. 0 3
      src/01.Infrastructure/Exam.Insfrastructure.Service/Interface/IApiService.cs
  10. 0 5
      src/01.Infrastructure/Exam.Insfrastructure.Service/Interface/IExamRepository.cs
  11. 0 2
      src/01.Infrastructure/Exam.Insfrastructure.Service/Service/ApiService.cs
  12. 23 0
      src/Hotline.Api/Controllers/Exam/QuestionController.cs
  13. 73 0
      src/Hotline.Api/Controllers/Exam/SourcewareCategoryController.cs
  14. 66 0
      src/Hotline.Api/Controllers/Exam/SourcewaresController.cs
  15. 1 1
      src/Hotline.Api/Controllers/IPPbxController.cs
  16. 1 1
      src/Hotline.Api/StartupExtensions.cs
  17. 9 0
      src/Hotline.Application/Exam/Constants/SourcewareCategoryRouteApi.cs
  18. 9 0
      src/Hotline.Application/Exam/Constants/SourcewareRouteApi.cs
  19. 25 0
      src/Hotline.Application/Exam/Extensions/ActionRequestExtensions.cs
  20. 2 1
      src/Hotline.Application/Exam/Interface/ExamManages/IExamManageService.cs
  21. 2 1
      src/Hotline.Application/Exam/Interface/ExamManages/IExamTagService.cs
  22. 2 1
      src/Hotline.Application/Exam/Interface/ExamManages/IExtractRuleService.cs
  23. 2 1
      src/Hotline.Application/Exam/Interface/ExamManages/IUnExamUserService.cs
  24. 2 1
      src/Hotline.Application/Exam/Interface/ExamManages/IUserExamResultService.cs
  25. 2 1
      src/Hotline.Application/Exam/Interface/ExamManages/IUserExamService.cs
  26. 2 1
      src/Hotline.Application/Exam/Interface/Practices/IPracticeService.cs
  27. 2 1
      src/Hotline.Application/Exam/Interface/Questions/IQuestionAnswerService.cs
  28. 2 1
      src/Hotline.Application/Exam/Interface/Questions/IQuestionKnowladgeService.cs
  29. 2 1
      src/Hotline.Application/Exam/Interface/Questions/IQuestionOptionsService.cs
  30. 2 1
      src/Hotline.Application/Exam/Interface/Questions/IQuestionService.cs
  31. 2 1
      src/Hotline.Application/Exam/Interface/Questions/IQuestionSourcewareService.cs
  32. 2 1
      src/Hotline.Application/Exam/Interface/Questions/IQuestionTagService.cs
  33. 3 1
      src/Hotline.Application/Exam/Interface/Sourcewares/ISourcewareCategoryService.cs
  34. 1 1
      src/Hotline.Application/Exam/Interface/Sourcewares/ISourcewareService.cs
  35. 2 1
      src/Hotline.Application/Exam/Interface/TestPapers/ITestPaperService.cs
  36. 2 1
      src/Hotline.Application/Exam/Interface/Train/ITrainPlanService.cs
  37. 2 1
      src/Hotline.Application/Exam/Interface/Train/ITrainRecordAnswerService.cs
  38. 2 1
      src/Hotline.Application/Exam/Interface/Train/ITrainRecordService.cs
  39. 2 1
      src/Hotline.Application/Exam/Interface/Train/ITrainTemplateService.cs
  40. 5 0
      src/Hotline.Application/Exam/Service/Questions/QuestionService.cs
  41. 28 1
      src/Hotline.Application/Exam/Service/Sourcewares/SourcewareCategoryService.cs
  42. 1 1
      src/Hotline.Application/Hotline.Application.csproj
  43. 9 0
      src/Hotline.Repository.SqlSugar/Entitys/StatusActionRequest.cs
  44. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExamAnswerRepository.cs
  45. 3 6
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExamManageRepository.cs
  46. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExamQuestionScoreRepository.cs
  47. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExamTagRepository.cs
  48. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExtractRuleRepository.cs
  49. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IRuleTagRepository.cs
  50. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IUserExamItemRepository.cs
  51. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IUserExamRepository.cs
  52. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeAnswerRepository.cs
  53. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeQuestionRepository.cs
  54. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeRecordRepository.cs
  55. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeRepository.cs
  56. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeResultItemRepository.cs
  57. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeResultRepository.cs
  58. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeTagRepository.cs
  59. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionAnswerRepository.cs
  60. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionKnowladgeRepository.cs
  61. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionOptionsRepository.cs
  62. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionRepository.cs
  63. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionSourcewareRepository.cs
  64. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionTagRepository.cs
  65. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/ITagQuestionRepository.cs
  66. 4 2
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Sourcewares/ISourcewareCategoryRepository.cs
  67. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Sourcewares/ISourcewareRepository.cs
  68. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/TestPapers/ITestPaperItemRepository.cs
  69. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/TestPapers/ITestPaperRepository.cs
  70. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/TestPapers/ITestPaperRuleRepository.cs
  71. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/TestPapers/ITestPaperRuleTagRepository.cs
  72. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainKnowladgeRepository.cs
  73. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainPlanRepository.cs
  74. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainPracticeRepository.cs
  75. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainRecordAnswerRepository.cs
  76. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainRecordItemRepository.cs
  77. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainRecordRepository.cs
  78. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainTemplateRepository.cs
  79. 1 1
      src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainUserRepository.cs
  80. 1 2
      src/Hotline.Repository.SqlSugar/Exam/Repositories/ExamRepository.cs
  81. 14 0
      src/Hotline.Repository.SqlSugar/Exam/Repositories/Sourcewares/SourcewareCategoryRepository.cs
  82. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExamAnswerValidator.cs
  83. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExamManageValidator.cs
  84. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExamQuestionScoreValidator.cs
  85. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExamTagValidator.cs
  86. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExtractRuleValidator.cs
  87. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/RuleTagValidator.cs
  88. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/UserExamItemValidator.cs
  89. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/UserExamValidator.cs
  90. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeAnswerValidator.cs
  91. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeQuestionValidator.cs
  92. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeRecordValidator.cs
  93. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeResultItemValidator.cs
  94. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeResultValidator.cs
  95. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeTagValidator.cs
  96. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeValidator.cs
  97. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Questions/QuestionAnswerValidator.cs
  98. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Questions/QuestionKnowladgeValidator.cs
  99. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Questions/QuestionOptionsValidator.cs
  100. 1 0
      src/Hotline.Repository.SqlSugar/Exam/Validators/Questions/QuestionSourcewareValidator.cs

+ 0 - 7
Hotline.sln

@@ -71,8 +71,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exam.Infrastructure.Validat
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exam.Infrastructure.Web", "src\01.Infrastructure\Exam.Infrastructure.Web\Exam.Infrastructure.Web.csproj", "{19E169D6-7A9A-26D1-6C57-4DDD1D32FF72}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exam.Insfrastructure.Service", "src\01.Infrastructure\Exam.Insfrastructure.Service\Exam.Insfrastructure.Service.csproj", "{1B71F63E-916A-185B-6A02-31C10FDED2AD}"
-EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -191,10 +189,6 @@ Global
 		{19E169D6-7A9A-26D1-6C57-4DDD1D32FF72}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{19E169D6-7A9A-26D1-6C57-4DDD1D32FF72}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{19E169D6-7A9A-26D1-6C57-4DDD1D32FF72}.Release|Any CPU.Build.0 = Release|Any CPU
-		{1B71F63E-916A-185B-6A02-31C10FDED2AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{1B71F63E-916A-185B-6A02-31C10FDED2AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{1B71F63E-916A-185B-6A02-31C10FDED2AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{1B71F63E-916A-185B-6A02-31C10FDED2AD}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -232,7 +226,6 @@ Global
 		{A0A928D1-0AF2-AECD-BF87-0E85442F9E47} = {D041C554-B78E-4AAF-B597-E309DC8EEF4F}
 		{FB1785EE-2C30-E682-F02A-32A37C351273} = {D041C554-B78E-4AAF-B597-E309DC8EEF4F}
 		{19E169D6-7A9A-26D1-6C57-4DDD1D32FF72} = {D041C554-B78E-4AAF-B597-E309DC8EEF4F}
-		{1B71F63E-916A-185B-6A02-31C10FDED2AD} = {D041C554-B78E-4AAF-B597-E309DC8EEF4F}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {4B8EA790-BD13-4422-8D63-D6DBB77B823F}

+ 9 - 0
src/01.Infrastructure/Exam.Infrastructure.Data/Entity/ActionRequest.cs

@@ -60,6 +60,7 @@ namespace Exam.Infrastructure.Data.Entity
         [Description("组织名称")]
         [JsonIgnore]
         public string OrgName { get; set; }
+
         /// <summary>
         /// 组织层级
         /// </summary>
@@ -67,6 +68,14 @@ namespace Exam.Infrastructure.Data.Entity
         [JsonIgnore]
         public int OrgLevel { get; set; }
 
+
+        /// <summary>
+        /// 区域
+        /// </summary>
+        [Description("区域")]
+        [JsonIgnore]
+        public string AreaId { get; set; }
+
         /// <summary>
         /// 操作状态
         /// </summary>

+ 11 - 1
src/01.Infrastructure/Exam.Infrastructure.Data/Entity/EntityQueryRequest.cs

@@ -1,9 +1,19 @@
-namespace Exam.Infrastructure.Data.Entity
+using System.ComponentModel;
+
+namespace Exam.Infrastructure.Data.Entity
 {
     public class EntityQueryRequest
     {
+        /// <summary>
+        /// 主键
+        /// </summary>
+        [Description("主键")]
         public string Id { get; set; }
 
+        /// <summary>
+        /// 主键集合
+        /// </summary>
+        [Description("主键集合")]
         public List<string> Ids { get; set; }
     }
 }

+ 0 - 2
src/01.Infrastructure/Exam.Infrastructure.Validation/Exam.Infrastructure.Validation.csproj

@@ -8,8 +8,6 @@
 
   <ItemGroup>
     <PackageReference Include="FluentValidation" Version="11.10.0" />
-    <PackageReference Include="XF.Domain" Version="1.0.11" />
-    <PackageReference Include="XF.Domain.Repository" Version="1.0.8" />
   </ItemGroup>
 
   <ItemGroup>

+ 15 - 0
src/01.Infrastructure/Exam.Infrastructure.Web/Constants/RouteApi.cs

@@ -0,0 +1,15 @@
+namespace Exam.Infrastructure.Web.Constants
+{
+    public class RouteApi
+    {
+        public const string Add = "Add";
+
+        public const string Update = "Update";
+
+        public const string Delete = "Delete";
+
+        public const string GetPagedList = "GetPagedList";
+
+        public const string Get = "Get";
+    }
+}

+ 1 - 1
src/01.Infrastructure/Exam.Infrastructure.Web/Exam.Infrastructure.Web.csproj

@@ -7,8 +7,8 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <ProjectReference Include="..\..\Hotline.Repository.SqlSugar\Hotline.Repository.SqlSugar.csproj" />
     <ProjectReference Include="..\Exam.Infrastructure\Exam.Infrastructure.csproj" />
-    <ProjectReference Include="..\Exam.Insfrastructure.Service\Exam.Insfrastructure.Service.csproj" />
   </ItemGroup>
 
 </Project>

+ 4 - 5
src/01.Infrastructure/Exam.Infrastructure.Web/Utilities/ServiceUtility.cs

@@ -1,10 +1,9 @@
-using Exam.Infrastructure.Web.Utilities;
-using Exam.Insfrastructure.Service.Interface;
+using Hotline.Repository.SqlSugar.Interface;
 using Microsoft.Extensions.DependencyInjection;
 using System.Reflection;
 using System.Text.RegularExpressions;
 
-namespace Exam.Insfrastructure.Service.Utilities
+namespace Exam.Infrastructure.Web.Utilities
 {
     public static class ServiceUtility
     {
@@ -16,7 +15,7 @@ namespace Exam.Insfrastructure.Service.Utilities
 
             var domainEvents = new List<IDomainService>();
 
-            var apiServiceAssemblies = assemblies.Where(item => Regex.IsMatch(Path.GetFileNameWithoutExtension(item.CodeBase), AssemblyUtility.VITRUALAPPLICATION)).ToList();
+            var apiServiceAssemblies = assemblies.Where(item => Regex.IsMatch(Path.GetFileNameWithoutExtension(item.CodeBase), Infrastructure.Utilities.BaseAssemblyUtility.VITRUALAPPLICATION)).ToList();
 
             foreach (var assembly in apiServiceAssemblies)
             {
@@ -59,7 +58,7 @@ namespace Exam.Insfrastructure.Service.Utilities
                 return provider.GetService<T>();
             }
 
-            return default(T);
+            return default;
         }
     }
 }

+ 0 - 2
src/01.Infrastructure/Exam.Insfrastructure.Service/Exam.Insfrastructure.Service.csproj

@@ -9,8 +9,6 @@
   <ItemGroup>
     <PackageReference Include="FluentValidation" Version="11.10.0" />
     <PackageReference Include="Mapster" Version="7.4.0" />
-    <PackageReference Include="XF.Domain" Version="1.0.11" />
-    <PackageReference Include="XF.Domain.Repository" Version="1.0.8" />
   </ItemGroup>
 
   <ItemGroup>

+ 0 - 3
src/01.Infrastructure/Exam.Insfrastructure.Service/Interface/IApiService.cs

@@ -1,9 +1,6 @@
 using Exam.Infrastructure.Data.Entity;
 using Exam.Infrastructure.Data.Interface;
 using Exam.Insfrastructure.Service.Entitys;
-using FluentValidation;
-using XF.Domain.Dependency;
-using XF.Domain.Entities;
 
 namespace Exam.Insfrastructure.Service.Interface
 {

+ 0 - 5
src/01.Infrastructure/Exam.Insfrastructure.Service/Interface/IExamRepository.cs

@@ -1,10 +1,5 @@
 using Exam.Infrastructure.Data.Entity;
-using Exam.Insfrastructure.Service.Entitys;
 using FluentValidation;
-using Mapster;
-using SqlSugar;
-using XF.Domain.Entities;
-using XF.Domain.Repository;
 
 namespace Exam.Insfrastructure.Service.Interface
 {

+ 0 - 2
src/01.Infrastructure/Exam.Insfrastructure.Service/Service/ApiService.cs

@@ -4,8 +4,6 @@ using Exam.Insfrastructure.Service.Extensions;
 using Exam.Insfrastructure.Service.Interface;
 using FluentValidation;
 using Mapster;
-using SqlSugar;
-using XF.Domain.Entities;
 
 namespace Exam.Insfrastructure.Service.Service
 {

+ 23 - 0
src/Hotline.Api/Controllers/Exam/QuestionController.cs

@@ -0,0 +1,23 @@
+using Exam.Application.Interface.Questions;
+using Hotline.Share.Dtos.Questions;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Hotline.Api.Controllers.Exam
+{
+    public class QuestionController : BaseController
+    {
+        private readonly IQuestionService _questionService;
+        public QuestionController(IQuestionService questionService)
+        {
+            _questionService = questionService;
+        }
+
+        [HttpPost]
+        [AllowAnonymous]
+        public async Task Add([FromBody] QuestionDto questionDto)
+        {
+            await _questionService.AddAsync(questionDto, HttpContext.RequestAborted);
+        }
+    }
+}

+ 73 - 0
src/Hotline.Api/Controllers/Exam/SourcewareCategoryController.cs

@@ -0,0 +1,73 @@
+using Exam.Application;
+using Exam.Infrastructure.Data.Entity;
+using Exam.Infrastructure.Data.Extensions;
+using Exam.Share.Dtos.Sourcewares;
+using Exam.Share.ViewResponses.Sourceware;
+using Hotline.Application.Exam.Constants;
+using Hotline.Repository.SqlSugar.Exam.Interfaces.Sourcewares;
+using Hotline.Share.Requests.Sourceware;
+using Microsoft.AspNetCore.Mvc;
+using XF.Domain.Authentications;
+
+namespace Hotline.Api.Controllers.Exam
+{
+    public class SourcewareCategoryController : BaseController
+    {
+        private ISourcewareCategoryService _sourcewareCategoryService;
+        private ISessionContext _sessionContext;
+        public SourcewareCategoryController(ISourcewareCategoryService sourcewareCategoryService,ISessionContext sessionContext)
+        {
+            _sourcewareCategoryService = sourcewareCategoryService;
+            _sessionContext = sessionContext;
+        }
+
+        /// <summary>
+        /// 新增课件类型
+        /// </summary>
+        /// <param name="sourcewareCategoryDto"></param>
+        /// <returns></returns>
+        [HttpPost(SourcewareCategoryRouteApi.Add)]
+        public async Task Add([FromBody] SourcewareCategoryDto sourcewareCategoryDto)
+        {
+            sourcewareCategoryDto.InitRequest(_sessionContext);
+            await _sourcewareCategoryService.AddAsync(sourcewareCategoryDto, HttpContext.RequestAborted);
+        }
+
+        /// <summary>
+        /// 修改课件类型
+        /// </summary>
+        /// <param name="sourcewareCategoryDto"></param>
+        /// <returns></returns>
+        [HttpPut(SourcewareCategoryRouteApi.Update)]
+        public async Task Update([FromBody] SourcewareCategoryDto sourcewareCategoryDto)
+        {
+            sourcewareCategoryDto.InitRequest(_sessionContext);
+            await _sourcewareCategoryService.UpdateAsync(sourcewareCategoryDto,HttpContext.RequestAborted);
+        }
+
+        /// <summary>
+        /// 删除课件类型
+        /// </summary>
+        /// <param name="entityQueryRequest"></param>
+        /// <returns></returns>
+        [HttpDelete(SourcewareCategoryRouteApi.Delete)]
+
+        public async Task Delete(EntityQueryRequest entityQueryRequest)
+        {
+            await _sourcewareCategoryService.DeleteAsync(entityQueryRequest, HttpContext.RequestAborted);
+        }
+
+        /// <summary>
+        /// 获取树形列表
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost(SourcewareCategoryRouteApi.GetTreeList)]
+        public async Task<List<SourcewareCategoryViewResponse>> GetTreeList([FromBody] SourcewareCategoryRequest sourcewareCategoryRequest)
+        {
+            var sourcewareCategorys = await _sourcewareCategoryService.GetTreeAsync(sourcewareCategoryRequest);
+
+            return sourcewareCategorys;
+        }
+
+    }
+}

+ 66 - 0
src/Hotline.Api/Controllers/Exam/SourcewaresController.cs

@@ -0,0 +1,66 @@
+using Exam.Application.Interface.Sourcewares;
+using Exam.Infrastructure.Data.Entity;
+using Exam.Share;
+using Exam.Share.Dtos.Sourcewares;
+using Hotline.Application.Exam.Constants;
+using Hotline.Share.Requests.Sourceware;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Hotline.Api.Controllers.Exam
+{
+    public class SourcewaresController : BaseController
+    {
+        private ISourcewareService _sourcewareService;
+
+        public SourcewaresController(ISourcewareService sourcewareService)
+        {
+            _sourcewareService = sourcewareService;
+        }
+
+        /// <summary>
+        /// 新增课件
+        /// </summary>
+        /// <param name="sourcewareDto"></param>
+        /// <returns></returns>
+        [HttpPost(SourcewareRouteApi.Add)]
+        public async Task Add([FromBody] SourcewareDto sourcewareDto)
+        {
+            await _sourcewareService.AddAsync(sourcewareDto, HttpContext.RequestAborted);
+        }
+
+        /// <summary>
+        /// 修改课件
+        /// </summary>
+        /// <param name="sourcewareDto"></param>
+        /// <returns></returns>
+        [HttpPut(SourcewareRouteApi.Update)]
+        public async Task Update([FromBody] SourcewareDto sourcewareDto)
+        {
+            await _sourcewareService.UpdateAsync(sourcewareDto, HttpContext.RequestAborted);
+        }
+
+        /// <summary>
+        /// 删除课件
+        /// </summary>
+        /// <param name="entityQueryRequest"></param>
+        /// <returns></returns>
+        [HttpDelete(SourcewareRouteApi.Delete)]
+        public async Task Delete([FromBody] EntityQueryRequest entityQueryRequest)
+        {
+            await _sourcewareService.DeleteAsync(entityQueryRequest, HttpContext.RequestAborted);
+        }
+
+        /// <summary>
+        /// 获取课件分页列表
+        /// </summary>
+        /// <param name="sourcewarePagedRequest"></param>
+        /// <returns></returns>
+        [HttpPost(SourcewareRouteApi.GetPagedList)]
+        public async Task<SourcewarePageViewResponse> GetPagedList([FromBody] SourcewarePagedRequest sourcewarePagedRequest)
+        {
+            var sourcewarePageViewResponse = await _sourcewareService.GetPagedListAsync(sourcewarePagedRequest);
+
+            return sourcewarePageViewResponse as SourcewarePageViewResponse; 
+        }
+    }
+}

+ 1 - 1
src/Hotline.Api/Controllers/IPPbxController.cs

@@ -1,6 +1,6 @@
 using DotNetCore.CAP;
 using Hotline.CallCenter.Tels.CallTelDomain;
-using ExtendedNumerics.Exceptions;
+//using ExtendedNumerics.Exceptions;
 using Hotline.Ai.Quality;
 using Hotline.Application.CallCenter.Calls;
 using Hotline.Application.Systems;

+ 1 - 1
src/Hotline.Api/StartupExtensions.cs

@@ -200,7 +200,7 @@ internal static class StartupExtensions
         services.AddMq(configuration);
 
         //job
-        services.RegisterJob(appConfiguration);
+        //services.RegisterJob(appConfiguration);
 
         services.AddPdfManager();
 

+ 9 - 0
src/Hotline.Application/Exam/Constants/SourcewareCategoryRouteApi.cs

@@ -0,0 +1,9 @@
+using Exam.Infrastructure.Web.Constants;
+
+namespace Hotline.Application.Exam.Constants
+{
+    public class SourcewareCategoryRouteApi:RouteApi
+    {
+        public const string GetTreeList = "GetTreeList";
+    }
+}

+ 9 - 0
src/Hotline.Application/Exam/Constants/SourcewareRouteApi.cs

@@ -0,0 +1,9 @@
+using Exam.Infrastructure.Web.Constants;
+
+namespace Hotline.Application.Exam.Constants
+{
+    public class SourcewareRouteApi:RouteApi
+    {
+        
+    }
+}

+ 25 - 0
src/Hotline.Application/Exam/Extensions/ActionRequestExtensions.cs

@@ -0,0 +1,25 @@
+using Exam.Infrastructure.Data.Entity;
+using Exam.Infrastructure.Extensions;
+using XF.Domain.Authentications;
+
+namespace Exam.Infrastructure.Data.Extensions
+{
+    public static class ActionRequestExtensions
+    {
+
+        public static void InitRequest(this ActionRequest actionRequest,ISessionContext sessionContext)
+        {
+            if (actionRequest.Id == null || actionRequest.Id.IsNullOrEmpty())
+            {
+                actionRequest.Id = Guid.NewGuid().ToString();
+            }
+
+            actionRequest.UserId = sessionContext.UserId;
+            actionRequest.UserName = sessionContext.UserName;
+            actionRequest.OrgId = sessionContext.OrgId;
+            actionRequest.AreaId = sessionContext.AreaId;
+            actionRequest.OrgName = sessionContext.OrgName;
+            actionRequest.OrgLevel = sessionContext.OrgLevel;
+        }
+    }
+}

+ 2 - 1
src/Hotline.Application/Exam/Interface/ExamManages/IExamManageService.cs

@@ -1,7 +1,8 @@
 using Exam.ExamManages;
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share;
 using Exam.Share.ViewResponses.Exam;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Requests.Exam;
 
 namespace Hotline.Application.Exam.Interface.ExamManages

+ 2 - 1
src/Hotline.Application/Exam/Interface/ExamManages/IExamTagService.cs

@@ -1,7 +1,8 @@
 using Exam.ExamManages;
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share.Dtos.TestPapers;
 using Exam.Share.ViewResponses.Exam;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Requests.Exam;
 
 namespace Exam.Application.Interface.Exam

+ 2 - 1
src/Hotline.Application/Exam/Interface/ExamManages/IExtractRuleService.cs

@@ -1,6 +1,7 @@
 using Exam.ExamManages;
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share.ViewResponses.Exam;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.TestPapers;
 using Hotline.Share.Requests.Exam;
 

+ 2 - 1
src/Hotline.Application/Exam/Interface/ExamManages/IUnExamUserService.cs

@@ -1,6 +1,7 @@
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share;
 using Exam.Share.ViewResponses.Exam;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Requests.Exam;
 
 namespace Exam.Application.Interface.Exam

+ 2 - 1
src/Hotline.Application/Exam/Interface/ExamManages/IUserExamResultService.cs

@@ -1,6 +1,7 @@
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share;
 using Exam.Share.ViewResponses.Exam;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Requests.Exam;
 
 namespace Exam.Application.Interface.Exam

+ 2 - 1
src/Hotline.Application/Exam/Interface/ExamManages/IUserExamService.cs

@@ -1,8 +1,9 @@
 using Exam.ExamManages;
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share;
 using Exam.Share.Dtos.ExamManage;
 using Exam.Share.ViewResponses.Exam;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Requests.Exam;
 
 namespace Exam.Application.Interface.Exam

+ 2 - 1
src/Hotline.Application/Exam/Interface/Practices/IPracticeService.cs

@@ -1,7 +1,8 @@
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Practices;
 using Exam.Share;
 using Exam.Share.ViewResponses.Practices;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Requests.Exam;
 
 namespace Exam.Application.Interface.Practices

+ 2 - 1
src/Hotline.Application/Exam/Interface/Questions/IQuestionAnswerService.cs

@@ -1,7 +1,8 @@
 
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Questions;
 using Exam.Share;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.Questions;
 using Hotline.Share.Requests.Question;
 using System.ComponentModel;

+ 2 - 1
src/Hotline.Application/Exam/Interface/Questions/IQuestionKnowladgeService.cs

@@ -1,7 +1,8 @@
 
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Questions;
 using Exam.Share;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.Questions;
 using Hotline.Share.Requests.Question;
 using System.ComponentModel;

+ 2 - 1
src/Hotline.Application/Exam/Interface/Questions/IQuestionOptionsService.cs

@@ -1,7 +1,8 @@
 
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Questions;
 using Exam.Share;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.Questions;
 using Hotline.Share.Requests.Question;
 using System.ComponentModel;

+ 2 - 1
src/Hotline.Application/Exam/Interface/Questions/IQuestionService.cs

@@ -1,6 +1,7 @@
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Questions;
 using Exam.Share.ViewResponses.Question;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.Questions;
 using Hotline.Share.Requests.Question;
 

+ 2 - 1
src/Hotline.Application/Exam/Interface/Questions/IQuestionSourcewareService.cs

@@ -1,7 +1,8 @@
 
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Questions;
 using Exam.Share;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.Questions;
 using Hotline.Share.Requests.Question;
 using System.ComponentModel;

+ 2 - 1
src/Hotline.Application/Exam/Interface/Questions/IQuestionTagService.cs

@@ -1,7 +1,8 @@
 
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Questions;
 using Exam.Share;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.Questions;
 using Hotline.Share.Requests.Question;
 using System.ComponentModel;

+ 3 - 1
src/Hotline.Application/Exam/Interface/Sourcewares/ISourcewareCategoryService.cs

@@ -1,8 +1,9 @@
 
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share.Dtos.Sourcewares;
 using Exam.Share.ViewResponses.Sourceware;
 using Exam.Sourcewares;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Requests.Sourceware;
 using System.ComponentModel;
 
@@ -14,6 +15,7 @@ namespace Exam.Application
     [Description("课件类型服务接口")]
     public interface ISourcewareCategoryService:IQueryService<SourcewareCategoryViewResponse,SourcewareCategoryDto,SourcewareCategoryRequest>,IApiService<SourcewareCategoryDto,SourcewareCategory>
     {
+        public Task<List<SourcewareCategoryViewResponse>> GetTreeAsync(SourcewareCategoryRequest sourcewareCategoryRequest);
     }
 }
 

+ 1 - 1
src/Hotline.Application/Exam/Interface/Sourcewares/ISourcewareService.cs

@@ -1,7 +1,7 @@
-using Exam.Insfrastructure.Service.Interface;
 using Exam.Share;
 using Exam.Share.Dtos.Sourcewares;
 using Exam.Sourcewares;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Requests.Sourceware;
 using System.ComponentModel;
 

+ 2 - 1
src/Hotline.Application/Exam/Interface/TestPapers/ITestPaperService.cs

@@ -1,6 +1,7 @@
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share.ViewResponses.TestPaper;
 using Exam.TestPapers;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.TestPapers;
 using Hotline.Share.Requests.Exam;
 

+ 2 - 1
src/Hotline.Application/Exam/Interface/Train/ITrainPlanService.cs

@@ -1,7 +1,8 @@
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share;
 using Exam.Share.ViewResponses.Train;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Requests.Train;
 
 namespace Exam.Application.Interface.Train

+ 2 - 1
src/Hotline.Application/Exam/Interface/Train/ITrainRecordAnswerService.cs

@@ -1,5 +1,6 @@
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.Trains;
 
 namespace Exam.Application.Interface.Train

+ 2 - 1
src/Hotline.Application/Exam/Interface/Train/ITrainRecordService.cs

@@ -1,7 +1,8 @@
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share.Dtos.Trains;
 using Exam.Share.ViewResponses.Train;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.Trains;
 using Hotline.Share.Requests.Train;
 

+ 2 - 1
src/Hotline.Application/Exam/Interface/Train/ITrainTemplateService.cs

@@ -1,6 +1,7 @@
-using Exam.Insfrastructure.Service.Interface;
+
 using Exam.Share.ViewResponses.Train;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 using Hotline.Share.Dtos.Trains;
 using Hotline.Share.Requests.Train;
 

+ 5 - 0
src/Hotline.Application/Exam/Service/Questions/QuestionService.cs

@@ -10,6 +10,7 @@ using Hotline.Application.Exam.QueryExtensions.Questions;
 using Hotline.Repository.SqlSugar;
 using Hotline.Repository.SqlSugar.DataPermissions;
 using Hotline.Repository.SqlSugar.Exam.Interfaces.Questions;
+using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Share.Dtos.Questions;
 using Hotline.Share.Requests.Question;
 using Mapster;
@@ -129,6 +130,8 @@ namespace Hotline.Application.Exam.Service.Questions
 
             var questionTags = actionRequest.QuestionTagDtos.Adapt<QuestionTag>();
 
+            questionTags.ToInsert(actionRequest);
+
             await _questionTagRepository.AddWithValidateAsync(questionTags,cancellationToken);           
         }
 
@@ -138,6 +141,8 @@ namespace Hotline.Application.Exam.Service.Questions
 
             var questionOptionses = actionRequest.QuestionOptionsDtos.Adapt<QuestionOptions>();
 
+            questionOptionses.ToInsert(actionRequest);
+
             await _questionOptionRepository.AddWithValidateAsync(questionOptionses, cancellationToken);
         }
         #endregion

+ 28 - 1
src/Hotline.Application/Exam/Service/Sourcewares/SourcewareCategoryService.cs

@@ -1,3 +1,4 @@
+using Exam.Application.QueryExtensions.Sourcewares;
 using Exam.Infrastructure.Data.Entity;
 using Exam.Insfrastructure.Service.Service;
 using Exam.Share.Dtos.Sourcewares;
@@ -33,7 +34,8 @@ namespace Exam.Application.Service.Sourcewares
 
         public async Task<(int, List<SourcewareCategoryViewResponse>)> GetListAsync(SourcewareCategoryRequest queryRequest)
         {
-            var query = _repository.Queryable();
+            var expression = queryRequest.GetExpression();
+            var query = _repository.Queryable().Where(expression);
 
             var result = await query.Select(m => new SourcewareCategoryViewResponse { 
                 				Name = m.Name,
@@ -50,6 +52,31 @@ namespace Exam.Application.Service.Sourcewares
         {
             throw new NotImplementedException();
         }
+
+        /// <summary>
+        /// 获取树状
+        /// </summary>
+        /// <param name="sourcewareCategoryDto"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public async Task<List<SourcewareCategoryViewResponse>> GetTreeAsync(SourcewareCategoryRequest sourcewareCategoryRequest)
+        {
+            var expression = sourcewareCategoryRequest.GetExpression();
+
+            var sourcewareCategorys = await _repository.GetTreeAsync(expression);
+
+            var sourcewareCategoryViewResponses = sourcewareCategorys.Select(m => new SourcewareCategoryViewResponse
+            {
+                Id = m.Id,
+                Name = m.Name,
+                ParentId = m.ParentId,
+                SortIndex = m.SortIndex,
+                Children = m.Children.Adapt<List<SourcewareCategoryViewResponse>>()
+            }).ToList();
+
+
+            return sourcewareCategoryViewResponses;
+        }
     }
 }
 

+ 1 - 1
src/Hotline.Application/Hotline.Application.csproj

@@ -16,7 +16,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\01.Infrastructure\Exam.Insfrastructure.Service\Exam.Insfrastructure.Service.csproj" />
+    <ProjectReference Include="..\01.Infrastructure\Exam.Infrastructure.Web\Exam.Infrastructure.Web.csproj" />
     <ProjectReference Include="..\Hotline.Ai.Jths\Hotline.Ai.Jths.csproj" />
     <ProjectReference Include="..\Hotline.Ai.XingTang\Hotline.Ai.XingTang.csproj" />
     <ProjectReference Include="..\Hotline.Application.Contracts\Hotline.Application.Contracts.csproj" />

+ 9 - 0
src/Hotline.Repository.SqlSugar/Entitys/StatusActionRequest.cs

@@ -0,0 +1,9 @@
+using Exam.Infrastructure.Data.Entity;
+using System.ComponentModel;
+
+namespace Hotline.Repository.SqlSugar.Entitys
+{
+    public class StatusActionRequest:ActionRequest
+    {
+    }
+}

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExamAnswerRepository.cs

@@ -1,10 +1,10 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.ExamManages;
 using Hotline.Repository.SqlSugar;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.ExamManages
 {

+ 3 - 6
src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExamManageRepository.cs

@@ -1,10 +1,7 @@
-
-using SqlSugar;
-using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
-using System.ComponentModel;
 using Exam.ExamManages;
-using Hotline.Repository.SqlSugar;
+using Hotline.Repository.SqlSugar.Interface;
+using System.ComponentModel;
+using XF.Domain.Repository;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.ExamManages
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExamQuestionScoreRepository.cs

@@ -1,10 +1,10 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.ExamManages;
 using Hotline.Repository.SqlSugar;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.ExamManages
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExamTagRepository.cs

@@ -1,10 +1,10 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.ExamManages;
 using Hotline.Repository.SqlSugar;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.ExamManages
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IExtractRuleRepository.cs

@@ -1,10 +1,10 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.ExamManages;
 using Hotline.Repository.SqlSugar;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.ExamManages
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IRuleTagRepository.cs

@@ -1,10 +1,10 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.ExamManages;
 using Hotline.Repository.SqlSugar;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.ExamManages
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IUserExamItemRepository.cs

@@ -1,10 +1,10 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.ExamManages;
 using Hotline.Repository.SqlSugar;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.ExamManages
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/ExamManages/IUserExamRepository.cs

@@ -1,10 +1,10 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.ExamManages;
 using Hotline.Repository.SqlSugar;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.ExamManages
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeAnswerRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Practices;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Practices
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeQuestionRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Practices;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Practices
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeRecordRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Practices;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Practices
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Practices;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Practices
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeResultItemRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Practices;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Practices
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeResultRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Practices;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Practices
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Practices/IPracticeTagRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Practices;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Practices
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionAnswerRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Questions;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Questions
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionKnowladgeRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Questions;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Questions
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionOptionsRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Questions;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Questions
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Questions;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Questions
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionSourcewareRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Questions;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Questions
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/IQuestionTagRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Questions;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Questions
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Questions/ITagQuestionRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.ExamManages;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Questions
 {

+ 4 - 2
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Sourcewares/ISourcewareCategoryRepository.cs

@@ -1,9 +1,11 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Sourcewares;
+using Hotline.Repository.SqlSugar.Interface;
+using Hotline.Share.Requests.Sourceware;
+using System.Linq.Expressions;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Sourcewares
 {
@@ -13,7 +15,7 @@ namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Sourcewares
     [Description("课件类型仓储接口")]
     public interface ISourcewareCategoryRepository:IRepository<SourcewareCategory>,IExamRepository<SourcewareCategory,HotlineDbContext>
     {
-       
+        public Task<List<SourcewareCategory>> GetTreeAsync(Expression<Func<SourcewareCategory, bool>> expression);
     }
 }
 

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Sourcewares/ISourcewareRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Sourcewares;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Sourcewares
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/TestPapers/ITestPaperItemRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.TestPapers;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.TestPapers
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/TestPapers/ITestPaperRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.TestPapers;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.TestPapers
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/TestPapers/ITestPaperRuleRepository.cs

@@ -1,10 +1,10 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 
 using Exam.TestPapers;
+using Hotline.Repository.SqlSugar.Interface;
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.TestPapers
 {
     /// <summary>

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/TestPapers/ITestPaperRuleTagRepository.cs

@@ -1,10 +1,10 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 
 using Exam.TestPapers;
+using Hotline.Repository.SqlSugar.Interface;
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.TestPapers
 {
     /// <summary>

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainKnowladgeRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Trains
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainPlanRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Trains
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainPracticeRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Trains
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainRecordAnswerRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Trains
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainRecordItemRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Trains
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainRecordRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Trains
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainTemplateRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Trains
 {

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Interfaces/Trains/ITrainUserRepository.cs

@@ -1,9 +1,9 @@
 
 using SqlSugar;
 using XF.Domain.Repository;
-using Exam.Insfrastructure.Service.Interface;
 using System.ComponentModel;
 using Exam.Trains;
+using Hotline.Repository.SqlSugar.Interface;
 
 namespace Hotline.Repository.SqlSugar.Exam.Interfaces.Trains
 {

+ 1 - 2
src/Hotline.Repository.SqlSugar/Exam/Repositories/ExamRepository.cs

@@ -2,11 +2,10 @@
 using Exam.Infrastructure.Validation.Exceptions;
 using Exam.Infrastructure.Validation.Extensions;
 using Exam.Infrastructure.Validation.Validation;
-using Exam.Insfrastructure.Service.Entitys;
-using Exam.Insfrastructure.Service.Interface;
 using FluentValidation;
 using Hotline.Repository.SqlSugar;
 using Hotline.Repository.SqlSugar.DataPermissions;
+using Hotline.Repository.SqlSugar.Interface;
 using SqlSugar;
 using XF.Domain.Entities;
 using XF.Domain.Exceptions;

+ 14 - 0
src/Hotline.Repository.SqlSugar/Exam/Repositories/Sourcewares/SourcewareCategoryRepository.cs

@@ -3,8 +3,10 @@ using Exam.Sourcewares;
 using Hotline.Repository.SqlSugar;
 using Hotline.Repository.SqlSugar.DataPermissions;
 using Hotline.Repository.SqlSugar.Exam.Interfaces.Sourcewares;
+using Hotline.Share.Requests.Sourceware;
 using SqlSugar;
 using System.ComponentModel;
+using System.Linq.Expressions;
 using XF.Domain.Dependency;
 
 namespace Exam.Repository.Sqlsugar.Repositories.Sourcewares
@@ -19,6 +21,18 @@ namespace Exam.Repository.Sqlsugar.Repositories.Sourcewares
         {
             Validator = new SourcewareCategoryValidator();
         }
+
+        /// <summary>
+        /// 获取树形接口
+        /// </summary>
+        /// <param name="expression"></param>
+        /// <returns></returns>
+        public async Task<List<SourcewareCategory>> GetTreeAsync(Expression<Func<SourcewareCategory, bool>> expression)
+        {
+            var sourcewareCategoryList = await base.Queryable().Where(expression).OrderBy(o=>o.SortIndex).ToTreeAsync(m=>m.Children,p=>p.ParentId,"");
+
+            return sourcewareCategoryList;
+        }
     }
 }
 

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExamAnswerValidator.cs

@@ -2,6 +2,7 @@ using Exam.ExamManages;
 using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Hotline.Repository.SqlSugar.Exam.Validators.ExamManages
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExamManageValidator.cs

@@ -3,6 +3,7 @@ using Exam.ExamManages;
 using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Application
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExamQuestionScoreValidator.cs

@@ -3,6 +3,7 @@ using Exam.ExamManages;
 using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.ExamManages
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExamTagValidator.cs

@@ -2,6 +2,7 @@ using Exam.ExamManages;
 using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.ExamManages
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/ExtractRuleValidator.cs

@@ -2,6 +2,7 @@ using Exam.ExamManages;
 using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.ExamManages
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/RuleTagValidator.cs

@@ -2,6 +2,7 @@ using Exam.ExamManages;
 using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.ExamManages
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/UserExamItemValidator.cs

@@ -2,6 +2,7 @@ using Exam.ExamManages;
 using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.ExamManages
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/UserExamValidator.cs

@@ -2,6 +2,7 @@ using Exam.ExamManages;
 using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.ExamManages
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeAnswerValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Practices;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Practices
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeQuestionValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Practices;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Practices
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeRecordValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Practices;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Practices
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeResultItemValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Practices;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Practices
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeResultValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Practices;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Practices
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeTagValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Practices;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Practices
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Practices/PracticeValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Practices;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Practices
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Questions/QuestionAnswerValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Questions;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Questions
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Questions/QuestionKnowladgeValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Questions;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Questions
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Questions/QuestionOptionsValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Questions;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Questions
 {

+ 1 - 0
src/Hotline.Repository.SqlSugar/Exam/Validators/Questions/QuestionSourcewareValidator.cs

@@ -2,6 +2,7 @@ using Exam.Infrastructure.Extensions;
 using Exam.Infrastructure.Validation.Validation;
 using Exam.Questions;
 using FluentValidation;
+using Hotline.Repository.SqlSugar.Validate;
 
 namespace Exam.Repository.Sqlsugar.Validators.Questions
 {

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů