Exemple #1
0
        /// <summary>
        ///  取得新的資訊
        /// </summary>
        /// <param name="token"></param>
        /// <param name="circleKey"></param>
        /// <param name="activityOuterKey"></param>
        /// <param name="commentOuterKey"></param>
        /// <param name="maxResult"></param>
        /// <returns></returns>
        public Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionLoadComment> LoadNewerComments(Guid token, string circleKey, string activityOuterKey, string commentOuterKey, int maxResult = 10)
        {
            var response = new Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionLoadComment>();

            response.Success = false;
            response.Data    = new DiscussionLoadComment[0];
            var checkToken = CheckToken(token.ToString());

            if (checkToken == null)
            {
                response.Message = "身分驗證失敗";
            }

            try
            {
                var msgData    = new List <DiscussionMessage>();
                var resultData = new DiscussionLoadComment();

                // 是否為合法使用者
                int memberId = checkToken.MemberId;
                if (memberId > 0)
                {
                    var replyOuterKey = Guid.Empty;
                    var eventId       = Service.Utility.OuterKeyHelper.CheckOuterKey(activityOuterKey);
                    if (eventId.HasValue == false)
                    {
                        response.Message = "outerKey格式錯誤";
                        return(response);
                    }
                    //如果要查中間
                    if (commentOuterKey != null)
                    {
                        var commentEventId = Service.Utility.OuterKeyHelper.CheckOuterKey(commentOuterKey);
                        if (commentEventId.HasValue == false)
                        {
                            response.Message = "outerKey格式錯誤";
                            return(response);
                        }
                        replyOuterKey       = commentEventId.Value;
                        resultData.OuterKey = commentOuterKey;
                        msgData             = discussionMsgService.GetMessageList(eventId.Value, replyOuterKey).OrderByDescending(t => t.CreateTime).Take(maxResult).Reverse().ToList();
                        msgData.Remove(msgData.FirstOrDefault(t => t.EventId == replyOuterKey));
                    }
                    //查全部
                    // else
                    // {

                    //  msgData = service.GetMessageList(eventId).OrderBy(t => t.CreateTime).ToList();
                    //resultData.OuterKey = activityOuterKey;
                    // }

                    if (msgData != null)
                    {
                        resultData.Comments = msgData;
                        response.Success    = true;
                        response.Message    = "查詢成功";
                        response.Data       = new DiscussionLoadComment[1] {
                            resultData
                        };

                        // 將訊息發送給群組
                        Clients.Group(circleKey.ToLower()).loadNewerComments(resultData);
                    }
                    else
                    {
                        response.Success = false;
                        response.Message = "查詢失敗";
                    }
                }
                else
                {
                    Clients.Caller.onError("loadNewerComments", "身分驗證失敗,請重新登入!token:[" + token + "]");
                }
                return(response);
            }
            catch (Exception ex)
            {
                var msg = string.Format("{0}\n\n{1}", ex.Message, ex.StackTrace);

                Clients.Caller.onError("loadNewerComments", "取得新留言發生意外: " + msg);
                response.Success = false;
                response.Message = "取得新留言發生意外: " + msg;
                return(response);
            }
        }
Exemple #2
0
        public Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionLoadComment> Get(Guid token, string circleKey, string activityOuterKey, string commentOuterKey, int maxResult = 10, bool?isNewer = true)
        {
            var response = new Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionLoadComment>();

            response.Success = false;
            response.Data    = new DiscussionLoadComment[0];
            try
            {
                //訊息列表
                var msgData = new List <DiscussionMessage>();
                //回應資訊
                var resultData = new DiscussionLoadComment();
                memberService = new MemberService();
                // 是否為合法使用者
                var checkMember = memberService.TokenToMember(token);
                discussionMsgService = new DiscussionFuncMsg();

                if (checkMember != null)
                {
                    var replyOuterKey = Guid.Empty;
                    var eventId       = Service.Utility.OuterKeyHelper.CheckOuterKey(activityOuterKey);
                    if (eventId.HasValue == false)
                    {
                        response.Message = "outerKey格式錯誤";
                        return(response);
                    }
                    //如果要查中間
                    if (commentOuterKey != null)
                    {
                        var replyEventId = Service.Utility.OuterKeyHelper.CheckOuterKey(activityOuterKey);
                        if (replyEventId.HasValue == false)
                        {
                            response.Message = "outerKey格式錯誤";
                            return(response);
                        }
                        replyOuterKey       = replyEventId.Value;
                        resultData.OuterKey = commentOuterKey;
                        msgData             = discussionMsgService.GetMessageList(eventId.Value, replyOuterKey, isNewer).OrderByDescending(t => t.CreateTime).Take(maxResult).Reverse().ToList();
                    }
                    //查全部
                    else
                    {
                        msgData             = discussionMsgService.GetMessageList(eventId.Value, null, isNewer).OrderBy(t => t.CreateTime).ToList();
                        resultData.OuterKey = activityOuterKey;
                    }
                    if (msgData != null)
                    {
                        resultData.Comments = msgData;
                        response.Success    = true;
                        response.Message    = "查詢成功";
                        response.Data       = new DiscussionLoadComment[1] {
                            resultData
                        };
                    }
                    else
                    {
                        response.Success = false;
                        response.Message = "查詢失敗";
                    }
                }
                return(response);
            }
            catch (Exception ex)
            {
                var msg = string.Format("{0}\n\n{1}", ex.Message, ex.StackTrace);
                response.Success = false;
                response.Message = "取得留言發生意外: " + msg;
                return(response);
            }
        }