/// <summary> /// 根据数据元编号查询字典类型 /// </summary> /// yand 16.07.07 /// zouql 16.09.20 过滤返回结果 /// <param name="MetaCode">数据元编号</param> /// <returns></returns> public List <ComboInfo> ComboInfoLoad(int SegmentRulesID) { SegmentRulesInfo SegmentRulesInfo = new DAL.BankCredit.SegmentRulesMapper().Find(SegmentRulesID); var comboList = methodMapper.ComboInfoLoad(SegmentRulesInfo.MetaCode); return(FilterComboInfo(comboList, SegmentRulesID)); }
/// <summary> /// /// </summary> /// <param name="segments">需要的段标识</param> /// <param name="segmentRules">段规则ID</param> /// <param name="mates">数据元标识</param> protected void Find(string[] segments, string[] segmentRules, string[] mates, MessageInfo data) { SegmentRulesInfo Rules = new SegmentRulesInfo(); // 段 var segs = new Dictionary <string, bool>(); // 段规则 var segsRule = new Dictionary <string, string>(); // 数据元 var meta = new Dictionary <string, string>(); //将数据段转换成字典类型并且都设置为False segments.ToList().ForEach(m => segs.Add(m, false)); //修改段属性 foreach (var item in data.GetType().GetProperties()) { if (segments.Contains(item.Name)) { segs[item.Name] = true; } } //将数据段规则转换成字典类型并且都设置为False segmentRules.ToList().ForEach(m => segsRule.Add(m, null)); //修改段规则属性 foreach (var item in data.GetType().GetProperties()) { List <Dictionary <string, string> > list = (List <Dictionary <string, string> >)item.GetValue(data); if (list != null) { foreach (Dictionary <string, string> dic in list) { foreach (var info in dic) { if (segmentRules.Contains(info.Key)) { segsRule[info.Key] = info.Value; } } } } } //将数据元转换成字典类型并且都设置为False mates.ToList().ForEach(m => meta.Add(m, null)); //修改数据元属性 foreach (var item in data.GetType().GetProperties()) { List <Dictionary <string, string> > list = (List <Dictionary <string, string> >)item.GetValue(data); if (list != null) { foreach (Dictionary <string, string> dic in list) { foreach (var info in dic) { Rules = new DAL.BankCredit.SegmentRulesMapper().Find(Convert.ToInt32(info.Key.Substring(1, info.Key.Length - 1))); if (mates.Contains(Rules.MetaCode.ToString())) { meta[Rules.MetaCode.ToString()] = info.Value; } } } } } PData = new Parameters { Segments = segs, SegmentRules = segsRule, Mates = meta, }; }