From 33b3be8e5b5f04a361405f8be61f5b1acea2a6f4 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Fri, 22 Mar 2024 15:09:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Shentun.Peis.Domain/Items/ItemManager.cs | 31 ++++----- .../ItemManagerTest.cs | 63 +++++++++++++++++++ 2 files changed, 79 insertions(+), 15 deletions(-) create mode 100644 test/Shentun.Peis.Domain.Tests/ItemManagerTest.cs diff --git a/src/Shentun.Peis.Domain/Items/ItemManager.cs b/src/Shentun.Peis.Domain/Items/ItemManager.cs index e190b4e..bfa3d0f 100644 --- a/src/Shentun.Peis.Domain/Items/ItemManager.cs +++ b/src/Shentun.Peis.Domain/Items/ItemManager.cs @@ -29,6 +29,7 @@ namespace Shentun.Peis.Items private readonly IRepository _itemResultMatchRepository; private readonly IRepository _patientRegisterRepository; private readonly IRepository _registerAsbitemRepository; + private readonly IRepository _registerCheckRepository; public ItemManager( IRepository repository, @@ -38,8 +39,7 @@ namespace Shentun.Peis.Items IRepository asbtiemDetailRepository, IRepository itemTemplateDetailRepository, IRepository registerCheckItemRepository, - IRepository sexHormoneReferenceRangeRepository -, + IRepository sexHormoneReferenceRangeRepository, IRepository patientRegisterRepository, IRepository registerAsbitemRepository, IRepository registerCheckRepository) @@ -48,6 +48,7 @@ namespace Shentun.Peis.Items this._asbtiemDetailRepository = asbtiemDetailRepository; this._itemTemplateDetailRepository = itemTemplateDetailRepository; this._registerCheckItemRepository = registerCheckItemRepository; + this._registerCheckRepository = registerCheckRepository; this._referenceRangeRepository = referenceRangeRepository; this._itemResultTemplateRepository = itemResultTemplateRepository; this._itemResultMatchRepository = itemResultMatchRepository; @@ -214,20 +215,20 @@ namespace Shentun.Peis.Items var itemEnt = await _repository.FindAsync(m => m.Id == id); if (itemEnt != null) { - var registerCheckItemEntity = await _registerCheckItemRepository.FirstOrDefaultAsync(m => m.ItemId == id); - if (registerCheckItemEntity != null) - { - string PatientName = ""; - var query = (from a in await _patientRegisterRepository.GetQueryableAsync() + + var IsRegister = from a in await _patientRegisterRepository.GetQueryableAsync() join b in await _registerAsbitemRepository.GetQueryableAsync() on a.Id equals b.PatientRegisterId - where b.RegisterCheckId == registerCheckItemEntity.RegisterCheckId - select a).ToList(); - if (query.Count > 0) - { - PatientName = query.First().PatientName; - } - - throw new UserFriendlyException($"该项目已被{PatientName}登记,无法删除"); + join c in await _registerCheckRepository.GetQueryableAsync() on b.RegisterCheckId equals c.Id + join d in await _registerCheckItemRepository.GetQueryableAsync() on c.Id equals d.RegisterCheckId + where d.ItemId == id + select new + { + PatientName = a.PatientName + }; + + if (IsRegister.Count() > 0) + { + throw new UserFriendlyException($"该项目已被{IsRegister.ToList().FirstOrDefault().PatientName}登记,无法删除"); } diff --git a/test/Shentun.Peis.Domain.Tests/ItemManagerTest.cs b/test/Shentun.Peis.Domain.Tests/ItemManagerTest.cs new file mode 100644 index 0000000..e2f22e1 --- /dev/null +++ b/test/Shentun.Peis.Domain.Tests/ItemManagerTest.cs @@ -0,0 +1,63 @@ +using Shentun.Peis.CardRegisters; +using Shentun.Peis.Enums; +using Shentun.Peis.IncludeDetails; +using Shentun.Peis.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Uow; +using Xunit.Abstractions; +using Xunit; +using Shentun.Peis.Items; +using Shentun.Utilities; + +namespace Shentun.Peis +{ + + + public class ItemManagerTest : PeisDomainTestBase + { + private readonly ItemManager _itemManager; + + private readonly ITestOutputHelper _output; + private readonly IUnitOfWorkManager _unitOfWorkManager; + + public ItemManagerTest(ITestOutputHelper output) + { + _output = output; + _itemManager = GetRequiredService(); + _unitOfWorkManager = GetRequiredService(); + } + + + [Fact] + [UnitOfWork] + public async void CheckAndDeleteAsyncTest() + { + var id = new Guid("3a0e8292-6c97-0866-4047-de7c8390a94c"); + using (IUnitOfWork unitOfWork = _unitOfWorkManager.Begin()) + { + await _itemManager.CheckAndDeleteAsync(id); + + _output.WriteLine("123"); + } + } + + + + + + //[Fact] + //public async void CreateAsyncTest() + //{ + // var entity = new Item(); + // var newentity = await _itemManager.CreateAsync(entity); + // _output.WriteLine(newentity.Id.ToString()); + //} + + + } +}