irc-netcore-api/IRaCIS.Core.Application/Service/Common/DictionaryService.cs

673 lines
28 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using IRaCIS.Application.Contracts;
using IRaCIS.Application.Interfaces;
using IRaCIS.Core.Domain.Share;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Text;
namespace IRaCIS.Core.Application.Service
{
/// <summary>
/// 数据字典-基础数据维护
/// </summary>
[ApiExplorerSettings(GroupName = "Common")]
public class DictionaryService(IRepository<Dictionary> _dicRepository,
IRepository<DoctorDictionary> _doctorDictionaryRepository,
IRepository<TrialDictionary> _trialDictionaryRepository,
IRepository<Doctor> _doctorRepository,
IRepository<Trial> _trialRepository,
IRepository<SystemCriterionDictionaryCode> _systemCriterionDictionaryCodeRepository,
IRepository<TrialCriterionDictionaryCode> _trialCriterionDictionaryCodeRepository,
IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository,
IRepository<ReadingSystemCriterionDictionary> _readingSystemCriterionDictionaryRepository,
IRepository<ReadingSystemCriterionDictionary> _readingCriterionDictionaryRepository,
IRepository<ReadingQuestionCriterionSystem> _readingQuestionCriterionSystem,
IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrial, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IDictionaryService
{
/// <summary>
/// 添加bool
/// </summary>
/// <param name="addOrEditBasic"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput> AddBoolDic(AddOrEditBasicDic addOrEditBasic)
{
var entity = await _dicRepository.InsertFromDTOAsync(addOrEditBasic);
var child1 = entity.Clone();
child1.Id = Guid.Empty;
child1.Code = "true";
child1.ParentId = entity.Id;
entity.ChildList.Add(child1);
var child2 = entity.Clone();
child2.Id = Guid.Empty;
child2.Code = "false";
child2.ParentId = entity.Id;
entity.ChildList.Add(child2);
await _dicRepository.SaveChangesAsync();
return ResponseOutput.Ok(entity.Id.ToString());
}
/// <summary>
/// 获取所有字典的Key
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<List<string>> GetAllDictionaryKey()
{
var result = await _dicRepository.Where(t => t.ParentId == null).OrderBy(x => x.Code).Select(x => x.Code).ToListAsync();
return result;
}
/// <summary>
/// 添加字典 的同时 一起添加子项 --New
/// </summary>
/// <param name="addBasicDicAndChild"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput> AddBasicDicAndChild(AddBasicDicAndChild addBasicDicAndChild)
{
var verifyExp1 = new EntityVerifyExp<Dictionary>()
{
VerifyExp = t => t.Code == addBasicDicAndChild.Code && t.ParentId == null,
VerifyMsg = $"已有{addBasicDicAndChild.Code}名称的字典",
IsVerify = true
};
if ((addBasicDicAndChild.DataTypeEnum == DicDataTypeEnum.Enum || addBasicDicAndChild.DataTypeEnum == DicDataTypeEnum.Bool))
{
if (addBasicDicAndChild.ChildList.GroupBy(t => t.Code).Where(g => g.Count() > 1).Any())
{
return ResponseOutput.NotOk(_localizer["Dictionary_RepeateCode"]);
}
}
var entity = await _dicRepository.InsertFromDTOAsync(addBasicDicAndChild, false, verifyExp1);
var childList = _mapper.Map<List<Dictionary>>(addBasicDicAndChild.ChildList);
foreach (var item in childList)
{
item.DataTypeEnum = addBasicDicAndChild.DataTypeEnum;
item.ParentId = entity.Id;
}
await _dicRepository.AddRangeAsync(childList);
await _dicRepository.SaveChangesAsync();
return ResponseOutput.Ok(entity.Id.ToString());
}
/// <summary>
/// New 查询条件
/// </summary>
/// <param name="inQuery"></param>
/// <returns></returns>
[HttpPost]
public async Task<PageOutput<BasicDicView>> GetBasicDicList(BasicDicQuery inQuery)
{
var systemBasicDataQueryable = _dicRepository.Where(t => t.ParentId == null)
.WhereIf(!string.IsNullOrEmpty(inQuery.Code), t => t.Code.Contains(inQuery.Code!))
.WhereIf(!string.IsNullOrEmpty(inQuery.keyInfo), t => t.Description.Contains(inQuery.keyInfo!)
|| t.Code.Contains(inQuery.keyInfo!)
|| t.ChildList.Any(u => u.ValueCN.Contains(inQuery.keyInfo!))
|| t.ChildList.Any(u => u.Description.Contains(inQuery.keyInfo!))
|| t.ChildList.Any(u => u.Value.Contains(inQuery.keyInfo!)))
.WhereIf(inQuery.ConfigTypeId != null, t => t.ConfigTypeId == inQuery.ConfigTypeId!)
.WhereIf(inQuery.DataTypeEnum != null, t => t.DataTypeEnum == inQuery.DataTypeEnum)
.WhereIf(inQuery.DataTypeEnum == null, t => t.DataTypeEnum != DicDataTypeEnum.Config)
.ProjectTo<BasicDicView>(_mapper.ConfigurationProvider);
return await systemBasicDataQueryable.ToPagedListAsync(inQuery, new[] { nameof(BasicDicView.ConfigType), nameof(BasicDicView.ShowOrder) });
}
/// <summary>
/// 添加和编辑
/// </summary>
/// <param name="addOrEditBasic"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput> AddOrUpdateBasicDic(AddOrEditBasicDic addOrEditBasic)
{
var verifyExp1 = new EntityVerifyExp<Dictionary>()
{
VerifyExp = t => t.Code == addOrEditBasic.Code && t.ParentId == addOrEditBasic.ParentId,
//---------- $"已有{addOrEditBasic.Code}名称的字典"
VerifyMsg = _localizer["Dictionary_DictionaryName", addOrEditBasic.Code],
IsVerify = addOrEditBasic.ParentId == null
};
var verifyExp2 = new EntityVerifyExp<Dictionary>()
{
VerifyExp = t => t.Code == addOrEditBasic.Code && t.ParentId == addOrEditBasic.ParentId && t.Code == addOrEditBasic.Code,
VerifyMsg = _localizer["Dictionary_RepeateCode"],
IsVerify = addOrEditBasic.ParentId != null && (addOrEditBasic.DataTypeEnum == DicDataTypeEnum.Enum || addOrEditBasic.DataTypeEnum == DicDataTypeEnum.Bool)
};
if (addOrEditBasic.Id != null && addOrEditBasic.ParentId == null)
{
await _dicRepository.UpdatePartialFromQueryAsync(t => t.ParentId == addOrEditBasic.Id, c => new Dictionary() { DataTypeEnum = addOrEditBasic.DataTypeEnum });
//await _dicRepository.BatchUpdateNoTrackingAsync(t => t.ParentId == addOrEditBasic.Id, c => new Dictionary() { DataTypeEnum = addOrEditBasic.DataTypeEnum });
}
var entity = await _dicRepository.InsertOrUpdateAsync(addOrEditBasic, true, verifyExp1, verifyExp2);
await _dicRepository.SaveChangesAsync();
return ResponseOutput.Ok(entity.Id.ToString());
}
/// <summary>
/// 获取子项数组
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<List<BasicDicView>> GetChildList(ChildInQuery inQuery)
{
return await _dicRepository.Where(t => t.ParentId == inQuery.ParentId)
.ProjectTo<BasicDicView>(_mapper.ConfigurationProvider).SortToListAsync(inQuery);
}
/// <summary> 删除字典数据 </summary>
[HttpDelete("{id:guid}")]
public async Task<IResponseOutput> DeleteDictionary(Guid id)
{
if (await _readingCriterionDictionaryRepository.AnyAsync(x => x.DictionaryId == id))
{
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(t => t.DictionaryId == id);
//---当前字典在标准中被引用,不允许删除!
//return ResponseOutput.NotOk(_localizer["Dictionary_DictionaryDeletion"]);
}
if (await _readingTrialCriterionDictionaryRepository.AnyAsync(x => x.DictionaryId == id))
{
await _readingTrialCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(t => t.DictionaryId == id);
//---当前字典在标准中被引用,不允许删除!
//return ResponseOutput.NotOk(_localizer["Dictionary_DictionaryDeletion"]);
}
if (await _dicRepository.AnyAsync(t => t.ParentId == id))
{
//---有子项数据,不允许直接删除!
return ResponseOutput.NotOk(_localizer["Dictionary_SubitemDeletion"]);
}
if ((await _doctorDictionaryRepository.AnyAsync(t => t.DictionaryId == id)) ||
(await _doctorRepository.AnyAsync(t => t.SpecialityId == id || t.PositionId == id || t.DepartmentId == id || t.RankId == id))
)
{
//---当前条目已经在阅片人的简历中被引用。
return ResponseOutput.NotOk(_localizer["Dictionary_ResumeReference"]);
}
if (await _trialDictionaryRepository.AnyAsync(t => t.DictionaryId == id) ||
await _trialRepository.AnyAsync(t => t.ReviewModeId == id))
{
//---当前条目已经在项目信息中被引用。
return ResponseOutput.NotOk(_localizer["Dictionary_ProjectReference"]);
}
var success = await _dicRepository.BatchDeleteNoTrackingAsync(t => t.Id == id);
return ResponseOutput.Result(success);
}
/// <summary>
/// 传递父亲 code 字符串 数组 返回多个下拉框数据
/// </summary>
/// <param name="searchArray"></param>
/// <returns></returns>
[HttpPost]
public async Task<Dictionary<string, List<BasicDicSelectCopy>>> GetBasicDataSelect(string[] searchArray)
{
var searchList = await _dicRepository.Where(t => searchArray.Contains(t.Parent.Code) && t.ParentId != null && t.IsEnable).ProjectTo<BasicDicSelectCopy>(_mapper.ConfigurationProvider, new { isEn_Us = _userInfo.IsEn_Us }).ToListAsync();
return searchList.GroupBy(t => t.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList());
}
/// <summary>
/// 根据父亲Code 获取单个下拉框数据
/// </summary>
/// <param name="searchKey"></param>
/// <returns></returns>
public async Task<List<BasicDicSelect>> GetBasicDataSelect(string searchKey)
{
var searchList = await _dicRepository.Where(t => t.Parent.Code == searchKey && t.ParentId != null && t.IsEnable).ProjectTo<BasicDicSelect>(_mapper.ConfigurationProvider).ToListAsync();
return searchList;
}
/// <summary>
/// 根据父亲字典分组 获取子项
/// </summary>
/// <param name="searchKey"></param>
/// <returns></returns>
public async Task<List<BasicDicSelect>> GetBasicConfigSelect(string searchKey)
{
var searchList = await _dicRepository.Where(t => t.ConfigDictionary.Code == searchKey && t.ParentId == null && t.IsEnable).ProjectTo<BasicDicSelect>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
return searchList;
}
/// <summary>
/// 获取标准字典
/// </summary>
/// <returns></returns>
public async Task<List<GetCriterionDictionaryListOutDto>> GetCriterionDictionaryList(GetCriterionDictionaryListInDto inDto)
{
var criterionCodes = await _systemCriterionDictionaryCodeRepository.Where(x => x.SystemCriterionId == inDto.SystemCriterionId).ToListAsync();
var parentCodes = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.SystemCriterionId).Select(x => x.ParentCode).ToListAsync();
var codes = criterionCodes.Select(x => x.Code).ToList();
var dictionaryList = await _dicRepository.Where(x => codes.Contains(x.Code) && x.ParentId == null)
.OrderBy(x => x.ShowOrder).Select(x => new GetCriterionDictionaryListOutDto()
{
Code = x.Code,
ShowOrder = x.ShowOrder,
Description = x.Description
}).ToListAsync();
dictionaryList.ForEach(x =>
{
x.Count = parentCodes.Count(y => y == x.Code);
x.Id = criterionCodes.Where(y => y.Code == x.Code).Select(x => x.Id).FirstOrDefault();
});
return dictionaryList;
}
/// <summary>
/// 获取标准字典
/// </summary>
/// <returns></returns>
public async Task<List<GetCriterionDictionaryListOutDto>> GetTrialCriterionDictionaryList(GetTrialCriterionDictionaryListInDto inDto)
{
var criterionCodes = await _trialCriterionDictionaryCodeRepository.Where(x => x.TrialCriterionId == inDto.TrialCriterionId).ToListAsync();
var parentCodes = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialCriterionId).Select(x => x.ParentCode).ToListAsync();
var codes = criterionCodes.Select(x => x.Code).ToList();
var dictionaryList = await _dicRepository.Where(x => codes.Contains(x.Code) && x.ParentId == null)
.OrderBy(x => x.ShowOrder).Select(x => new GetCriterionDictionaryListOutDto()
{
Code = x.Code,
ShowOrder = x.ShowOrder,
Description = x.Description
}).ToListAsync();
dictionaryList.ForEach(x =>
{
x.Count = parentCodes.Count(y => y == x.Code);
x.Id = criterionCodes.Where(y => y.Code == x.Code).Select(x => x.Id).FirstOrDefault();
});
return dictionaryList;
}
/// <summary>
/// 获取标准指定字典
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[AllowAnonymous]
[HttpPost]
public async Task<Dictionary<string, List<BasicDicSelect>>> GetCriterionDictionary(GetCriterionDictionaryInDto inDto)
{
var searchList = await _dicRepository.Where(t => t.ParentId != null && t.IsEnable)
.WhereIf(!inDto.DictionaryCode.IsNullOrEmpty(), x => x.Parent.Code == inDto.DictionaryCode)
.WhereIf(inDto.DictionaryCodeList.Count() > 0, x => inDto.DictionaryCodeList.Contains(x.Parent.Code))
.ProjectTo<BasicDicSelect>(_mapper.ConfigurationProvider).ToListAsync();
var result = searchList.GroupBy(t => t.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList());
if (inDto.ReadingCriterionId == null)
{
return result;
}
else
{
List<string> selectCode = new List<string>();
List<BasicDicSelect> criterionDictionList = new List<BasicDicSelect>();
var isSystemCriterion = await _readingQuestionCriterionSystem.AnyAsync(x => x.Id == inDto.ReadingCriterionId);
if (isSystemCriterion)
{
selectCode = await _systemCriterionDictionaryCodeRepository.Where(x => x.SystemCriterionId == inDto.ReadingCriterionId).Select(x => x.Code).ToListAsync();
criterionDictionList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.ReadingCriterionId).Select(x => new BasicDicSelect()
{
ChildGroup = x.Dictionary.ChildGroup,
Code = x.Dictionary.Code,
DataTypeEnum = x.Dictionary.DataTypeEnum,
ShowOrder = x.Dictionary.ShowOrder,
ParentCode = x.ParentCode,
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
Id = x.DictionaryId,
ParentId = x.Dictionary.ParentId,
Value = x.Dictionary.Value,
ValueCN = x.Dictionary.ValueCN
}).ToListAsync();
}
else
{
selectCode = await _trialCriterionDictionaryCodeRepository.Where(x => x.TrialCriterionId == inDto.ReadingCriterionId).Select(x => x.Code).ToListAsync();
criterionDictionList = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.ReadingCriterionId).Select(x => new BasicDicSelect()
{
ChildGroup = x.Dictionary.ChildGroup,
Code = x.Dictionary.Code,
DataTypeEnum = x.Dictionary.DataTypeEnum,
ShowOrder = x.Dictionary.ShowOrder,
ParentCode = x.ParentCode,
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
Id = x.DictionaryId,
ParentId = x.Dictionary.ParentId,
Value = x.Dictionary.Value,
ValueCN = x.Dictionary.ValueCN
}).ToListAsync();
}
var criterionCode = await _dicRepository.Where(x => x.ConfigDictionary.Code == "Reading_eCRF_Criterion").Select(x => x.Code).ToListAsync();
foreach (var item in criterionCode)
{
if (result.ContainsKey(item))
{
result[item] = new List<BasicDicSelect>();
}
}
criterionDictionList = criterionDictionList.Where(x => selectCode.Contains(x.ParentCode)).ToList();
var criterionDic = criterionDictionList.GroupBy(x => x.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList());
foreach (var item in criterionDic)
{
if (result.ContainsKey(item.Key))
{
result[item.Key] = item.Value;
}
}
return result;
}
}
/// <summary>
/// 获取所有下拉框 枚举 bool 数据
/// </summary>
/// <returns></returns>
[AllowAnonymous]
public async Task<Dictionary<string, List<BasicDicSelect>>> GetBasicDataAllSelect(GetBasicDataAllSelectInDto inDto)
{
var searchList = await _dicRepository.Where(t => t.ParentId != null && t.IsEnable).ProjectTo<BasicDicSelect>(_mapper.ConfigurationProvider).ToListAsync();
var result = searchList.GroupBy(t => t.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList());
if (inDto.TrialReadingCriterionId == null && inDto.SystemReadingCriterionId == null)
{
return await ChangeTrialObjectNameList(result,inDto.TrialId);
}
else if (inDto.TrialReadingCriterionId != null)
{
var trialCriterionType = await _readingQuestionCriterionTrial.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => x.CriterionType).FirstOrDefaultAsync();
if (trialCriterionType == CriterionType.SelfDefine)
{
return await ChangeTrialObjectNameList(result, inDto.TrialId);
}
List<string> selectCode = await _trialCriterionDictionaryCodeRepository.Where(x => x.TrialCriterionId == inDto.TrialReadingCriterionId).Select(x => x.Code).ToListAsync();
var criterionCode = await _dicRepository.Where(x => x.ConfigDictionary.Code == "Reading_eCRF_Criterion").Select(x => x.Code).ToListAsync();
foreach (var item in criterionCode)
{
if (result.ContainsKey(item))
{
result[item] = new List<BasicDicSelect>();
}
}
var criterionDictionList = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId).Select(x => new BasicDicSelect()
{
ChildGroup = x.Dictionary.ChildGroup,
Code = x.Dictionary.Code,
Description = x.Dictionary.Description,
DataTypeEnum = x.Dictionary.DataTypeEnum,
ShowOrder = x.Dictionary.ShowOrder,
ParentCode = x.ParentCode,
Id = x.DictionaryId,
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
ParentId = x.Dictionary.ParentId,
Value = x.Dictionary.Value,
ValueCN = x.Dictionary.ValueCN
}).ToListAsync();
criterionDictionList = criterionDictionList.Where(x => selectCode.Contains(x.ParentCode)).ToList();
var criterionDic = criterionDictionList.GroupBy(x => x.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList());
foreach (var item in criterionDic)
{
result[item.Key] = item.Value;
}
return await ChangeTrialObjectNameList(result, inDto.TrialId);
}
else
{
List<string> selectCode = await _systemCriterionDictionaryCodeRepository.Where(x => x.SystemCriterionId == inDto.SystemReadingCriterionId).Select(x => x.Code).ToListAsync();
var criterionCode = await _dicRepository.Where(x => x.ConfigDictionary.Code == "Reading_eCRF_Criterion").Select(x => x.Code).ToListAsync();
foreach (var item in criterionCode)
{
if (result.ContainsKey(item))
{
result[item] = new List<BasicDicSelect>();
}
}
var criterionDictionList = await _readingSystemCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.SystemReadingCriterionId).Select(x => new BasicDicSelect()
{
ChildGroup = x.Dictionary.ChildGroup,
Code = x.Dictionary.Code,
Description = x.Dictionary.Description,
DataTypeEnum = x.Dictionary.DataTypeEnum,
ShowOrder = x.Dictionary.ShowOrder,
ParentCode = x.ParentCode,
Id = x.DictionaryId,
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
ParentId = x.Dictionary.ParentId,
Value = x.Dictionary.Value,
ValueCN = x.Dictionary.ValueCN
}).ToListAsync();
criterionDictionList = criterionDictionList.Where(x => selectCode.Contains(x.ParentCode)).ToList();
var criterionDic = criterionDictionList.GroupBy(x => x.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList());
foreach (var item in criterionDic)
{
result[item.Key] = item.Value;
}
return await ChangeTrialObjectNameList(result, inDto.TrialId);
}
}
/// <summary>
/// 替换字典中的项目名称为试验对象名称 --New
/// </summary>
/// <param name="data"></param>
/// <param name="trialId"></param>
/// <returns></returns>
private async Task<Dictionary<string, List<BasicDicSelect>>> ChangeTrialObjectNameList(Dictionary<string, List<BasicDicSelect>> data,Guid? trialId)
{
if (!trialId.HasValue)
{
return data;
}
// 查询映射集合
var trialObjectNameList = await _trialRepository
.Where(x => x.Id == trialId)
.Select(x => x.TrialObjectNameList)
.FirstOrDefaultAsync();
// 无映射数据直接返回
if (trialObjectNameList == null || !trialObjectNameList.Any())
{
return data;
}
// 构建映射字典,过滤空名称,避免无效替换
var replaceDict = trialObjectNameList
.Where(m => !string.IsNullOrEmpty(m.Name))
.ToDictionary(m => m.Name, m => m.TrialName);
// 遍历替换
foreach (var (_, selectList) in data)
{
foreach (var selectItem in selectList)
{
// 替换Value判null保护
if (selectItem.Value != null)
{
string tempVal = selectItem.Value;
foreach (var (oldStr, newStr) in replaceDict)
{
tempVal = tempVal.Replace(oldStr, newStr);
}
selectItem.Value = tempVal;
}
// 替换中文名称ValueCN
if (selectItem.ValueCN != null)
{
string tempCn = selectItem.ValueCN;
foreach (var (oldStr, newStr) in replaceDict)
{
tempCn = tempCn.Replace(oldStr, newStr);
}
selectItem.ValueCN = tempCn;
}
}
}
return data;
}
#region 稽查相关
/// <summary>
/// 获取是和否
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public async Task<string> GetBoolValueState(bool value)
{
return await _dicRepository.Where(t => t.Parent.Code == "YesOrNo" && t.Code == value.ToString()).Select(x => x.ValueCN).FirstOrDefaultAsync() ?? string.Empty;
}
/// <summary>
/// 获取审核状态
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="trial"></param>
/// <param name="childCode"></param>
/// <returns></returns>
public async Task<string> GetAuditState<T>(Guid trial, T childCode)
{
var QCProcessEnum = _trialRepository.Where(x => x.Id == trial).Select(x => x.QCProcessEnum).FirstOrDefault();
switch (QCProcessEnum)
{
case TrialQCProcess.SingleAudit:
return await _dicRepository.Where(t => t.Parent.Code == "AuditStatePE" && t.Code == Convert.ToInt32(childCode).ToString()).Select(x => x.ValueCN).FirstOrDefaultAsync() ?? string.Empty;
case TrialQCProcess.DoubleAudit:
return await _dicRepository.Where(t => t.Parent.Code == "AuditStateRC" && t.Code == Convert.ToInt32(childCode).ToString()).Select(x => x.ValueCN).FirstOrDefaultAsync() ?? string.Empty;
default:
return string.Empty;
}
}
public async Task<string> GetBasicDataTranslateItem<T>(string parentCode, T childCode)
{
return await _dicRepository.Where(t => t.Parent.Code == parentCode && t.Code == Convert.ToInt32(childCode).ToString()).Select(x => x.ValueCN).FirstOrDefaultAsync() ?? string.Empty;
}
#endregion
}
}