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); }
/// <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); } }
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); }
public async Task <IEnumerable <InvationsPlayerToClan> > GetInvitationList(BaseRequestData model) { return(await _clanService.GetInvitationList(model)); }
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)); }
public WXForResponse(BaseRequestData _request, MsgType _msgtype) { request = _request; msgtype = _msgtype; }
public async Task <IEnumerable <InvationsPlayerToClan> > GetInvitationList(BaseRequestData model) { return(await _context.InvationsPlayerToClan.Where(t => t.PlayerId == model.PlayerId).ToListAsync()); }
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("")); }
/// <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)); }
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)); }