Esempio n. 1
0
        /// <summary>
        /// 父类迭代子类返回实体
        /// </summary>
        /// <param name="roots"></param>
        /// <param name="all"></param>
        /// <param name="models"></param>
        /// <param name="currentModel"></param>
        public static void Recursion(IEnumerable<CardType> roots, List<CardType> all, ICollection<CardTypeModel> models,
            CardTypeModel currentModel = null)
        {
            foreach (var root in roots)
            {
                var model = Mapper.Map<CardType, CardTypeModel>(root);

                if (currentModel != null && currentModel.Id == root.Parent.Id)
                {
                    if (currentModel.SubCardTypeModels == null)
                    {
                        currentModel.SubCardTypeModels = new List<CardTypeModel>();
                    }
                    currentModel.SubCardTypeModels.Add(model);
                }
                else
                {
                    models.Add(model);
                }
                var subs = all.Where(n => n.Parent == root).ToArray();
                if (subs.Any())
                {
                    Recursion(subs, all, models, model);
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 父类迭代子类返回实体
 /// </summary>
 /// <param name="root"></param>
 /// <param name="all"></param>
 /// <param name="currentModel"></param>
 public static void Recursion(CardType root, List<CardType> all,CardTypeModel currentModel = null)
 {
     currentModel = Mapper.Map<CardType, CardTypeModel>(root);
     var subs = all.Where(n => n.Parent.Id == currentModel.Id);
     foreach (var cardType in subs)
     {
         if (currentModel.SubCardTypeModels == null)
         {
             currentModel.SubCardTypeModels = new List<CardTypeModel>();
         }
         currentModel.SubCardTypeModels.Add(Mapper.Map<CardType, CardTypeModel>(cardType));
         Recursion(cardType, all, currentModel);
     }
 }
Esempio n. 3
0
 public object Get(Guid id)
 {
     Mapper.Reset();
     Mapper.CreateMap<CardDemo, CardDemoModel>();
     Mapper.CreateMap<CardType, CardTypeModel>().ForMember(n => n.CardDemoModels, opt => opt.MapFrom(src => src.CardDemos));
     var all = _cardTypeService.GetCardTypes().ToList();
     var root = all.FirstOrDefault(n => n.Id == id);
     var result = new CardTypeModel();
     Recursion(root, all, result);
     return result;
 }