예제 #1
0
        /// <summary>
        /// 获取已回复消息 查询已回复消息 需要判断是否已回复过消息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public PageResponse <string> getHaveRelied(QueryMessageRequest request)
        {
            var query = Db.Queryable <Comment, Users, Users>((c, u1, u2) => new object[]
            {
                JoinType.Left, c.SubmitterId == u1.userId, JoinType.Left, c.TargetId == u2.userId
            }).Where((c, u1, u2) => c.Content.Contains(request.key) && c.Type == request.type && c.TargetId == user.UserId &&
                     c.SubmitterId == user.UserId);

            if (!string.IsNullOrEmpty(request.startTime) && !string.IsNullOrEmpty(request.endTime))
            {
                query = query.Where((c, u1, u2) => SqlFunc.Between(c.CreateTime, request.startTime, request.endTime));
            }

            var total = 0;
            var json  = query.Select((c, u1, u2) => new
            {
                id         = c.Id, submitterName = u1.userName, content = c.Content, type = c.Type, createTime = c.CreateTime,
                attachment = c.Attachment, targetName = u2.userName, docId = c.DocId, haveRead = c.HaveRead
            }).ToPageList(request.page, request.limit, ref total).ToJson();

            var pageResponse = new PageResponse <string> {
                Total = total, Result = json
            };

            return(pageResponse);
        }
        public PageResponse <string> getHaveRelied(QueryMessageRequest request)
        {
            var result = new PageResponse <string>();

            try
            {
                result = _service.getHaveRelied(request);
            }
            catch (Exception ex)
            {
                result.Code    = 500;
                result.Message = ex.Message;
            }

            return(result);
        }
예제 #3
0
        public QueryMessageResponse QueryMessages(string topic, int?queueId, int?code, string routingKey, int pageIndex, int pageSize)
        {
            var request          = new QueryMessageRequest(topic, queueId, code, routingKey, pageIndex, pageSize);
            var requestData      = _binarySerializer.Serialize(request);
            var remotingRequest  = new RemotingRequest((int)RequestCode.QueryMessage, requestData);
            var remotingResponse = _remotingClient.InvokeSync(remotingRequest, 30000);

            if (remotingResponse.Code == (int)ResponseCode.Success)
            {
                return(_binarySerializer.Deserialize <QueryMessageResponse>(remotingResponse.Body));
            }
            else
            {
                throw new Exception(string.Format("QueryMessages failed, errorMessage: {0}", Encoding.UTF8.GetString(remotingResponse.Body)));
            }
        }