Ejemplo n.º 1
0
    private void SendRequest(Client client, byte type, BaseRequestData data)
    {
        NetworkStream stream = client.CurrentClient.GetStream();

        BaseData d = new BaseData(type, Utils.ToByteArray(data));

        List <byte> bytesInfo = new List <byte>();
        List <byte> bytes     = new List <byte>();

        bytes.AddRange(Utils.ToByteArray(d));
        bytesInfo.AddRange(Utils.ToByteArray(new DataInfo(DataInfo.Types.RequestData, bytes.Count)));

        stream.Write(bytesInfo.ToArray(), 0, bytesInfo.Count);
        Thread.Sleep(50);
        stream.Write(bytes.ToArray(), 0, bytes.Count);
    }
Ejemplo n.º 2
0
 /// <summary>
 /// 添加请求信息记录
 /// </summary>
 /// <param name="data">信息实体</param>
 /// <param name="json">信息json串</param>
 /// <returns></returns>
 public int AddRequestMsgLog(BaseRequestData data, string json, string requestxml)
 {
     using (var wxdb = new WXDBEntity())
     {
         WX_RequestMsgLog log = new WX_RequestMsgLog();
         log.ToUserName   = data.ToUserName;
         log.FromUserName = data.FromUserName;
         log.CreateTime   = data.CreateTime;
         log.MsgType      = data.MsgType;
         log.MsgId        = data.MsgId;
         log.RequestJson  = json;
         log.RequestXML   = requestxml;
         log.CreateDate   = DateTime.Now;
         wxdb.WX_RequestMsgLog.Add(log);
         wxdb.SaveChanges();
         return(log.Id);
     }
 }
Ejemplo n.º 3
0
        public async Task <UserDetailsResponseModel> GetUserDetails(BaseRequestData data)
        {
            var userExists = await GetPlayerById(data.PlayerId);

            if (userExists != null)
            {
                var result      = new UserDetailsResponseModel();
                var playerStats = await _context.PlayerStatistics.FirstOrDefaultAsync(t => t.PlayerId == userExists.Id);

                result.Kills       = playerStats.Kills;
                result.Deaths      = playerStats.Deaths;
                result.Assists     = playerStats.Assists;
                result.GamesPlayed = playerStats.GamesPlayed;
                result.GamesWon    = playerStats.GamesWon;
                result.GameLose    = playerStats.GameLose;

                var clanMemberEntity = await _context.ClanMembers.FirstOrDefaultAsync(t => t.PlayerId == userExists.Id);

                if (clanMemberEntity != null)
                {
                    result.Function   = clanMemberEntity.Function;
                    result.DateOfJoin = clanMemberEntity.DateOfJoin;

                    var clanEntity = await _context.Clans.FirstOrDefaultAsync(t => t.Id == clanMemberEntity.ClanId);

                    result.AvatarId   = clanEntity.AvatarId;
                    result.Acronym    = clanEntity.Acronym;
                    result.AvatarUrl  = clanEntity.AvatarUrl;
                    result.Experience = clanEntity.Experience;
                    result.Name       = clanEntity.Name;

                    var clanStatsEntity = await _context.ClanStatistics.FirstOrDefaultAsync(t => t.ClanId == clanEntity.Id);

                    result.Wins   = clanStatsEntity.Wins;
                    result.Losses = clanStatsEntity.Losses;
                    result.Draws  = clanStatsEntity.Draws;
                }

                return(result);
            }

            return(new UserDetailsResponseModel());
        }
        public async Task <IEnumerable <FriendResponseModel> > GetFriends(BaseRequestData data)
        {
            var friendIds = await _context.Friends.Where(t => t.OwnerPlayerId == data.PlayerId).Select(t => t.FriendId).ToListAsync();

            var friends = await _context.PlayerIdentity.Where(t => friendIds.Contains(t.Id)).ToListAsync();

            var responseFriends = new List <FriendResponseModel>();

            foreach (var friend in friends)
            {
                responseFriends.Add(new FriendResponseModel()
                {
                    PlayerId = friend.Id,
                    NickName = friend.Nick,
                    IsActive = false
                });
            }
            return(responseFriends);
        }
Ejemplo n.º 5
0
 public async Task <IEnumerable <InvationsPlayerToClan> > GetInvitationList(BaseRequestData model)
 {
     return(await _clanService.GetInvitationList(model));
 }
Ejemplo n.º 6
0
        public async Task <bool> DeletePlayerAccount(BaseRequestData model)
        {
            var playerEntity = await GetPlayerById(model.PlayerId);

            if (playerEntity == null)
            {
                return(false);
            }

            var clanMemberEntity = await _context.ClanMembers.FirstOrDefaultAsync(t => t.PlayerId == model.PlayerId);

            bool deleteClanResult = false;

            if (clanMemberEntity != null)
            {
                if (clanMemberEntity.Function == (byte)ClanFunction.Leader)
                {
                    deleteClanResult = await _clanService.RemoveClan(new RemoveClanRequestModel()
                    {
                        ClanId = clanMemberEntity.ClanId, PlayerId = model.PlayerId
                    }, true);
                }
                else
                {
                    deleteClanResult = await _clanService.RemoveMember(new RemoveUserRequestModel()
                    {
                        ClanId = clanMemberEntity.ClanId, PlayerId = model.PlayerId
                    }, true);
                }
            }

            var playerStatisticsEntity = await _context.PlayerStatistics.FirstOrDefaultAsync(t => t.PlayerId == model.PlayerId);

            var playerSaltEntity = await _context.PlayerSalt.FirstOrDefaultAsync(t => t.PlayerId == model.PlayerId);

            var playerBansEntity = await _context.PlayerBans.FirstOrDefaultAsync(t => t.PlayerId == model.PlayerId);

            var playerDatesEntity = await _context.PlayerDates.FirstOrDefaultAsync(t => t.PlayerId == model.PlayerId);

            EntityEntry <PlayerBans> deleteResultBansEntity = null;

            if (playerBansEntity != null)
            {
                deleteResultBansEntity = _context.PlayerBans.Remove(playerBansEntity);
            }

            var deleteResultPlayerStatistics = _context.PlayerStatistics.Remove(playerStatisticsEntity);
            var deleteResultDatesEntity      = _context.PlayerDates.Remove(playerDatesEntity);
            var deleteResultPlayerSalt       = _context.PlayerSalt.Remove(playerSaltEntity);
            var deleteResultPlayerEntity     = _context.PlayerIdentity.Remove(playerEntity);

            if (deleteResultPlayerStatistics.State == EntityState.Deleted &&
                deleteResultDatesEntity.State == EntityState.Deleted &&
                deleteResultPlayerSalt.State == EntityState.Deleted &&
                deleteResultPlayerEntity.State == EntityState.Deleted &&
                (deleteResultBansEntity == null || deleteResultBansEntity.State == EntityState.Deleted) &&
                ((clanMemberEntity != null && deleteClanResult) || clanMemberEntity == null))
            {
                await _context.SaveChangesAsync();

                return(true);
            }

            return(false);
        }
 public async Task <bool> DeletePlayerAccount(BaseRequestData model)
 {
     return(await _userService.DeletePlayerAccount(model));
 }
 public async Task <UserDetailsResponseModel> GetUserDetails(BaseRequestData data)
 {
     return(await _userService.GetUserDetails(data));
 }
Ejemplo n.º 9
0
 public WXForResponse(BaseRequestData _request, MsgType _msgtype)
 {
     request = _request;
     msgtype = _msgtype;
 }
Ejemplo n.º 10
0
 public async Task <IEnumerable <InvationsPlayerToClan> > GetInvitationList(BaseRequestData model)
 {
     return(await _context.InvationsPlayerToClan.Where(t => t.PlayerId == model.PlayerId).ToListAsync());
 }
Ejemplo n.º 11
0
        public ActionResult Action()
        {
            try
            {
                #region 获取请求xml内容
                Stream requestStream = Request.InputStream;
                long   requestlength = requestStream.Length;
                byte[] requestBytes  = new byte[requestlength];
                requestStream.Read(requestBytes, 0, (int)requestlength);
                string requestStr = Encoding.UTF8.GetString(requestBytes);
                //                string requestStr = @"<xml><ToUserName><![CDATA[gh_4ce5c62397ff]]></ToUserName>
                //                                    <FromUserName><![CDATA[oiI62v8GLf52lVLsQyQvrRKGUrRk]]></FromUserName>
                //                                    <CreateTime>1464965475</CreateTime>
                //                                    <MsgType><![CDATA[text]]></MsgType>
                //                                    <Content><![CDATA[趣图]]></Content>
                //                                    <MsgId>6291978805302987227</MsgId>
                //                                </xml>";



                #endregion
                string             requestJson      = requestStr.ToXMLJson();
                MsgType            requestmsgType   = WXQueryFactory.GetMsgType(requestJson);
                BaseRequestData    requestData      = WXQueryFactory.GetRequestModel(requestJson, requestmsgType);
                WX_RequestBusiness _requestBusiness = new WX_RequestBusiness();
                if (requestData != null)
                {
                    int           requestid     = _requestBusiness.AddRequestMsgLog(requestData, requestJson, requestStr);
                    WXForResponse responsecmd   = new WXForResponse(requestData, requestmsgType);
                    var           responsemodel = responsecmd.GetResponseModel();
                    var           resuponsexml  = responsecmd.GetResponseXML(responsemodel);
                    //var model = new WXModel.WXTransmitData.ResponseData.Image_TextResponseMsg();
                    //model.Title = "图文消息title";
                    //model.ToUserName = "******";
                    //model.FromUserName = "******";
                    //model.MsgType = "news";
                    //model.Articles = new WXModel.WXTransmitData.ResponseData.Article[2];
                    //model.Articles[0] = (new WXModel.WXTransmitData.ResponseData.Article { Description = "第一个描述", PicUrl = "图片1", Url = "跳转url1", Title = "第一个" });
                    //model.Articles[1] = (new WXModel.WXTransmitData.ResponseData.Article { Description = "第2个描述", PicUrl = "图片2", Url = "跳转url2", Title = "第2个" });
                    //resuponsexml = model.ToResponseXml<WXModel.WXTransmitData.ResponseData.Image_TextResponseMsg>();
                    _requestBusiness.AddResponseMsgLog(responsemodel, requestid, resuponsexml);

                    //                    resuponsexml = string.Format(@"<xml>
                    //            <Content><![CDATA[你好,这是一条测试回复信息]]></Content>
                    //            <ToUserName><![CDATA[{0}]]></ToUserName>
                    //            <FromUserName><![CDATA[{1}]]></FromUserName>
                    //            <CreateTime><![CDATA[12345678]]></CreateTime>
                    //            <MsgType><![CDATA[text]]></MsgType>
                    //            </xml>", requestData.FromUserName, requestData.ToUserName);
                    return(Content(resuponsexml, "text/xml"));
                }
                else
                {
                    _requestBusiness.AddRequestParserFail(requestStr, requestJson);
                }

                return(Content(requestJson, "text/xml")); //将随机生成的 echostr 参数 原样输出就能通过token验证了。
            }
            catch (Exception ex)
            {
                GlobalBusiness.AddGlobalError(ex.Message + ex.StackTrace);
                throw ex;
            }
            return(Content(""));
        }
Ejemplo n.º 12
0
 /// <summary>
 /// 添加请求信息记录
 /// </summary>
 /// <param name="data">信息实体</param>
 /// <param name="json">信息json串</param>
 /// <returns></returns>
 public int AddRequestMsgLog(BaseRequestData data, string json, string requestxml)
 {
     data.CreateTime = WXCommon.formtToDate(data.CreateTime);
     return(_repository.AddRequestMsgLog(data, json, requestxml));
 }
Ejemplo n.º 13
0
 public void DeleteRequestData(BaseRequestData reqData)
 {
     _ctxt.RequestData.Remove(reqData);
 }
 public async Task <bool> CancelBan(BaseRequestData model)
 {
     return(await _banService.CancelBan(model.PlayerId));
 }
 public async Task <IEnumerable <FriendResponseModel> > GetFriends(BaseRequestData data)
 {
     return(await _friendService.GetFriends(data));
 }