|
|
|
@ -32,17 +32,23 @@ namespace Shentun.Peis.SampleGroupDetails |
|
|
|
public class SampleGroupDetailAppService : ApplicationService |
|
|
|
{ |
|
|
|
private readonly IRepository<SampleGroupDetail> _repository; |
|
|
|
private readonly IRepository<SampleGroup, Guid> _sampleGroupRepository; |
|
|
|
private readonly IRepository<IdentityUser, Guid> _userRepository; |
|
|
|
private readonly IRepository<Asbitem, Guid> _asbitemRepository; |
|
|
|
private readonly SampleGroupDetailManager _manager; |
|
|
|
|
|
|
|
public SampleGroupDetailAppService( |
|
|
|
IRepository<SampleGroupDetail> repository, |
|
|
|
IRepository<IdentityUser, Guid> userRepository, |
|
|
|
SampleGroupDetailManager manager) |
|
|
|
SampleGroupDetailManager manager, |
|
|
|
IRepository<Asbitem, Guid> asbitemRepository, |
|
|
|
IRepository<SampleGroup, Guid> sampleGroupRepository) |
|
|
|
{ |
|
|
|
this._repository = repository; |
|
|
|
this._userRepository = userRepository; |
|
|
|
this._manager = manager; |
|
|
|
_repository = repository; |
|
|
|
_userRepository = userRepository; |
|
|
|
_manager = manager; |
|
|
|
_asbitemRepository = asbitemRepository; |
|
|
|
_sampleGroupRepository = sampleGroupRepository; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -71,6 +77,24 @@ namespace Shentun.Peis.SampleGroupDetails |
|
|
|
await _manager.CheckAndDeleteAsync(input.SampleGroupId); |
|
|
|
if (input.Details.Any()) |
|
|
|
{ |
|
|
|
#region 加限制
|
|
|
|
if (input.Details.Any()) |
|
|
|
{ |
|
|
|
var isAsbitemEnt = (from sampleGroupDetail in await _repository.GetQueryableAsync() |
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() on sampleGroupDetail.AsbitemId equals asbitem.Id |
|
|
|
join sampleGroup in await _sampleGroupRepository.GetQueryableAsync() on sampleGroupDetail.SampleGroupId equals sampleGroup.Id into sampleGroupTemp |
|
|
|
from sampleGrouphaveEmpty in sampleGroupTemp.DefaultIfEmpty() |
|
|
|
where input.Details.Select(s => s.AsbitemId).Contains(sampleGroupDetail.AsbitemId) |
|
|
|
select new |
|
|
|
{ |
|
|
|
asbitemName = asbitem.DisplayName, |
|
|
|
sampleGroupName = sampleGrouphaveEmpty != null ? sampleGrouphaveEmpty.DisplayName : "" |
|
|
|
}).FirstOrDefault(); |
|
|
|
if (isAsbitemEnt != null) |
|
|
|
throw new UserFriendlyException($"组合项目{isAsbitemEnt.asbitemName}已在{isAsbitemEnt.sampleGroupName}条码分组中,不允许添加"); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
List<SampleGroupDetail> sampleGroupDetails = new List<SampleGroupDetail>(); |
|
|
|
foreach (var details in input.Details) |
|
|
|
{ |
|
|
|
|