替换字典中项目关键字
parent
c3e9024a57
commit
14cd5dd91c
|
|
@ -96,6 +96,8 @@ namespace IRaCIS.Application.Contracts
|
|||
public Guid? TrialReadingCriterionId { get; set; }
|
||||
|
||||
public Guid? SystemReadingCriterionId { get; set; }
|
||||
|
||||
public Guid? TrialId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -452,14 +452,14 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
if (inDto.TrialReadingCriterionId == null && inDto.SystemReadingCriterionId == null)
|
||||
{
|
||||
return result;
|
||||
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 result;
|
||||
return await ChangeTrialObjectNameList(result, inDto.TrialId);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -505,7 +505,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
result[item.Key] = item.Value;
|
||||
}
|
||||
|
||||
return result;
|
||||
return await ChangeTrialObjectNameList(result, inDto.TrialId);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -548,12 +548,76 @@ namespace IRaCIS.Core.Application.Service
|
|||
result[item.Key] = item.Value;
|
||||
}
|
||||
|
||||
return result;
|
||||
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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue