Example #1
0
        public async Task <ActionResult> GetAttentionQuestionForQAndAHomePageNew(string userId, int pageIndex = 1,
                                                                                 int pageSize = 10)
        {
            var dic = new Dictionary <string, object>();

            if (string.IsNullOrWhiteSpace(userId))
            {
                dic["Code"]    = "0";
                dic["Message"] = "参数错误";
                return(Json(dic, JsonRequestBehavior.AllowGet));
            }

            var dataList = await DiscoverBLL.GetAttentionQuestionForQAndAHomePage(userId, pageIndex, pageSize);


            if (!dataList.Any())
            {
                dic["Code"] = "1";
                dic["AttentionQuestion"] = new object[0];
                return(Json(dic, JsonRequestBehavior.AllowGet));
            }

            var timeLineList = new List <object>();

            foreach (var timeLine in dataList)
            {
                //if (timeLine.UserIdentity > 0)
                //    continue;
                Tuhu.Service.Member.Models.UserObjectModel userInfo = null;
                if (!string.IsNullOrWhiteSpace(timeLine.UserId))
                {
                    Guid UserID;
                    if (Guid.TryParse(timeLine.UserId, out UserID))
                    {
                        userInfo = HttpClientHelper.SelectUserInfoByUserId(timeLine.UserId);
                    }
                }

                timeLineList.Add(new
                {
                    PKID    = timeLine.PKID,
                    Content = timeLine.Question,
                    FirstAttentionUserId = timeLine.UserId,
                    UserId        = timeLine.UserId,
                    AnswerId      = timeLine.AnswerId,
                    AnswerContent = timeLine.AnswerContent,
                    CommentImage  = timeLine.CommentImage,
                    UserHead      =
                        userInfo?.HeadImage == null
                            ? (timeLine.UserIdentity > 0
                                ? timeLine.UserHead
                                : GetDefaultUserHeadByUserGrade(string.Empty))
                            : (userInfo.HeadImage.Contains("http")
                                ? userInfo.HeadImage
                                : DomainConfig.ImageSite + userInfo.HeadImage),
                    UserName =
                        userInfo == null
                            ? (timeLine.UserIdentity > 0 ? timeLine.UserName : "******")
                            : ArticleController.GetUserName(userInfo.Nickname),
                    Type         = timeLine.Type,
                    UserIdentity = timeLine.UserIdentity,
                    Praise       = timeLine.Praise,
                    CommentTimes = 0,
                    VoteNum      = 0,
                    timeLine.QuestionStatus,
                    timeLine.Vehicle,
                    timeLine.VehicleTagId,
                    timeLine.PublishNewDateTime,
                    Image =
                        string.IsNullOrWhiteSpace(timeLine.Image)
                            ? new string[0]
                            : timeLine.Image.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries)?.Take(3)
                });
            }
            dic["Code"] = "1";
            dic.Add("AttentionQuestion", timeLineList);

            return(Json(dic, JsonRequestBehavior.AllowGet));
        }
Example #2
0
        /// <summary>
        /// 查询问答板块中我关注的标签和问题列表
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public async Task <ActionResult> GetAttentionQuestionForQAndAHomePage(string userId, int pageIndex = 1, int pageSize = 10)
        {
            var dic = new Dictionary <string, object>();

            try
            {
                //查询热门问答
                if (string.IsNullOrWhiteSpace(userId))
                {
                    await GetPopularQAndAForQuestionBrand(pageIndex, pageSize, dic);
                }
                else
                {
                    var dataList = await DiscoverBLL.GetAttentionQuestionForQAndAHomePage(userId, pageIndex, pageSize);

                    if (dataList.Any() == false)
                    {
                        await GetPopularQAndAForQuestionBrand(pageIndex, pageSize, dic);
                    }
                    else
                    {
                        dic.Add("Code", "1");

                        var timeLineList = new List <object>();
                        foreach (var timeLine in dataList)
                        {
                            //if (timeLine.UserIdentity > 0)
                            //    continue;
                            Tuhu.Service.UserAccount.Models.User userInfo = null;
                            if (!string.IsNullOrWhiteSpace(timeLine.UserId))
                            {
                                Guid UserID;
                                if (Guid.TryParse(timeLine.UserId, out UserID))
                                {
                                    using (var userClient = new Tuhu.Service.UserAccount.UserAccountClient())
                                    {
                                        var userInfoResult = await userClient.GetUserByIdAsync(new Guid(timeLine.UserId));

                                        if (userInfoResult.Result != null)
                                        {
                                            userInfo = userInfoResult.Result;
                                        }
                                    }
                                }
                                else
                                {
                                    //WebLog.LogException(new Exception(JsonConvert.SerializeObject(timeLine)));
                                }
                            }

                            if (userInfo != null && userInfo.Profile != null)
                            {
                                userInfo.Profile.HeadUrl = userInfo.Profile.HeadUrl ?? string.Empty;
                            }

                            timeLineList.Add(new
                            {
                                PKID    = timeLine.PKID,
                                Content = timeLine.Question,
                                FirstAttentionUserId = timeLine.UserId,
                                UserId        = timeLine.UserId,
                                AnswerId      = timeLine.AnswerId,
                                AnswerContent = timeLine.AnswerContent,
                                CommentImage  = timeLine.CommentImage,

                                UserHead     = userInfo == null ? (timeLine.UserIdentity > 0 ? timeLine.UserHead : GetDefaultUserHeadByUserGrade(string.Empty)) : (userInfo.Profile.HeadUrl.Contains("http") ? userInfo.Profile.HeadUrl : DomainConfig.ImageSite + userInfo.Profile.HeadUrl),
                                UserName     = userInfo == null ? (timeLine.UserIdentity > 0 ? timeLine.UserName : "******") : (GetUserName(userInfo.Profile.NickName, userInfo.Profile.NickName, userInfo.MobileNumber)),
                                Type         = timeLine.Type,
                                UserIdentity = timeLine.UserIdentity,
                                Praise       = timeLine.Praise
                            });
                        }
                        dic.Add("Data", new { TimeLineList = timeLineList });
                    }
                }
            }
            catch (Exception ex)
            {
                WebLog.LogException("GetAttentionQuestionForQAndAHomePage", ex);
                dic.Clear();
                dic.Add("Messages", ex.Message);
                dic.Add("Code", "0");
            }
            return(Json(dic, JsonRequestBehavior.AllowGet));
        }