Пример #1
0
        public BaseApiResponse MyInvotes()
        {
            TryInitUserModel();

            //递归获取分类包含子类
            Func <ReadModel.Users.Dtos.UserAlis, int, object> getNodeData = null;

            getNodeData = (user, level) => {
                dynamic node = new ExpandoObject();
                node.Id        = user.Id;
                node.NickName  = user.NickName;
                node.Mobile    = user.Mobile;
                node.CreatedOn = user.CreatedOn.GetTimeSpan();
                node.Portrait  = user.Portrait;
                node.Role      = user.Role.ToDescription();
                node.Invotes   = new List <dynamic>();
                if (level <= 1)
                {
                    level++;
                    var invotes = _userQueryService.UserChildrens(user.Id).OrderByDescending(x => x.CreatedOn);
                    foreach (var invote in invotes)
                    {
                        node.Invotes.Add(getNodeData(invote, level));
                    }
                }
                return(node);
            };

            var           myInvotes = _userQueryService.UserChildrens(_user.Id).OrderByDescending(x => x.CreatedOn);
            List <object> nodes     = myInvotes.Select(x => getNodeData(x, 0)).ToList();

            return(new MyInvotesResponse
            {
                MyInvotes = nodes
            });
        }