Exemplo n.º 1
0
        public async Task <HttpResponseMessage> Post(ClientMessageRequest request)
        {
            Response <string> responseResult = new Response <string>();

            try
            {
                var id   = Guid.NewGuid();
                var user = await Utils.GetUserIdAsync(User);

                if (user == null)
                {
                    throw new ArgumentNullException("no found any user");
                }
                using (_messageRepository)
                {
                    var res = await _messageRepository.CreateMessage(
                        new MessageRequest
                    {
                        ClientId     = request.ClientId,
                        Messsage     = request.Messsage,
                        MesssageType = request.MesssageType,
                        NickName     = request.NickName,
                        User         = user
                    });
                }


                //using (_unitOfWork)
                //{
                //    var dt=DateTime.UtcNow;
                //    List<object> parameters = new List<object>();
                //    var query = "exec [dbo].[createMessage] @message,@user,@clientid,@messageType,@nickName,@replay ";
                //    parameters.Add(new SqlParameter("@message", request.Messsage));
                //    parameters.Add(new SqlParameter("@user", user));
                //    parameters.Add(new SqlParameter("@clientid", request.ClientId));
                //    parameters.Add(new SqlParameter("@messageType", request.MesssageType));
                //    parameters.Add(new SqlParameter("@nickName", request.NickName));
                //    parameters.Add(new SqlParameter("@replay", true));

                //    var resultSp = await _unitOfWork.Database.SqlQuery<object>(query, parameters.ToArray()).FirstOrDefaultAsync();
                //}

                responseResult.Message = "add to queue";
                responseResult.Result  = "";// resultSp.ToString();
            }
            catch (Exception eee)
            {
                responseResult.IsError = true;
                responseResult.Message = eee.Message;
            }
            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new ObjectContent <ResponseBase>(responseResult,
                                                           new JsonMediaTypeFormatter(),
                                                           new MediaTypeWithQualityHeaderValue("application/json"))
            };

            return(response);
        }
        protected override void DataOperation()
        {
            // fix the message must be sent by query report server

            // !Fix this
            var request = new ClientMessageRequest()
            {
                Message          = _request.RawRequest,
                InstantKey       = _gameServer.InstantKey,
                TargetIPEndPoint = _gameServer.QueryReportIPEndPoint,
                CommandName      = QueryReport.Entity.Enumerate.RequestType.ClientMessage
            };

            _redisChannel.PublishMessage(request);
            // set adhoc message to null
            _client.Info.AdHocMessage = null;
        }
 protected MessageACKHandler(ISession session, IRequest request) : base(session, request)
 {
     _request = (ClientMessageRequest)request;
     throw new NotImplementedException();
 }
 public ClientMessageResponse(ClientMessageRequest request) : base(request, null)
 {
 }