Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        /// <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,
            };
        }