public JsonResult CarouselPictures(long UserId, int IsOpen)
        {
            using (var result = new ResponseResult <List <ExpertQuestionCarouselOutput> >())
            {
                long totalCount;
                //判断是否有专家身份
                var isExpert = _expertPermissionService.Count(m => m.IsEnabled && m.UserId == UserId) > 0;

                Expression <Func <T_QUESTION, bool> > predicate;
                if (isExpert && IsOpen == 0)
                {
                    predicate = m => !m.IsDeleted && !m.IsOpen && m.IsPutOnCarousel;
                }
                else
                {
                    predicate = m => !m.IsDeleted && m.IsOpen && m.IsPutOnCarousel;
                }

                //获取符合条件的问题列表
                var list = _expertQuestionService.GetAll(predicate, null, m => m.LastModifiedTime, 1, 3, out totalCount, "User");

                var enumerable = list as T_QUESTION[] ?? list.ToArray();
                if (enumerable.Any())
                {
                    result.Entity = Mapper.Map <List <ExpertQuestionCarouselOutput> >(list);

                    //从每个问题条目中提取一个图片编号
                    var pictureIdDictionary = new Dictionary <long, long>();
                    GetOnePictureIdFromPerQuestion(enumerable, pictureIdDictionary);

                    var picIdArray = pictureIdDictionary.Values.ToArray();
                    //根据图片编号列表获取图片信息
                    var fileInfoList = _fileInfoRepository.GetAll(m => picIdArray.Contains(m.Id));

                    //提取每个问题的用户编号
                    var userIdList = enumerable.Select(m => m.UserId).Distinct().ToArray();
                    var userList   = _userService.GetAll(m => userIdList.Contains(m.Id));

                    //图片路径赋值
                    foreach (var item in result.Entity)
                    {
                        if (pictureIdDictionary.ContainsKey(item.QuestionId))
                        {
                            var fileInfo = fileInfoList.FirstOrDefault(m => m.Id == pictureIdDictionary[item.QuestionId]);
                            if (fileInfo != null)
                            {
                                item.PictureUrl = fileInfo.Path;
                            }
                        }

                        var user = userList.First(m => m.Id == item.UserId);
                        item.UserName = string.IsNullOrEmpty(user.UserName) ? user.LoginUserName : user.UserName;
                    }
                }
                result.TotalNums = totalCount;
                result.Message   = "获取问题列表轮播图成功!";
                return(new JsonResultEx(result));
            }
        }
Exemple #2
0
        //
        // GET: /Expert/Permission/
        public ActionResult Check(long UserId)
        {
            var isExpert = _expertPermissionService.Count(m => m.IsEnabled && m.UserId == UserId);

            using (var result = new ResponseResult <ExpertPermissionCheckOutput>())
            {
                result.Entity.IsExpert = isExpert;

                return(new JsonResultEx(result));
            }
        }