/// <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); } }
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); } }