public async Task <ActionResult> SendCarInfo(SendCardInfo sendCardInfo) { var idCustomerSession = System.Web.HttpContext.Current.Session["idCustomerSession"] as string; if (string.IsNullOrWhiteSpace(idCustomerSession)) { return(Json(new { IsSuccess = false, Message = "Section expired.", SessionExpirer = true, id = idCustomerSession, }, JsonRequestBehavior.AllowGet)); } System.Web.HttpContext.Current.Session["idCustomerSession"] = idCustomerSession; System.Web.HttpContext.Current.Session.Timeout = 2160; sendCardInfo.ExpDate = $"{sendCardInfo.ExpMonth}/{sendCardInfo.ExpYear}"; sendCardInfo.Id = idCustomerSession; var response = await _serviceZoho.SendCardInfo(sendCardInfo, 1); return(Json(new { response.IsSuccess, response.Message, SessionExpirer = false, id = idCustomerSession, }, JsonRequestBehavior.AllowGet)); }
//public async Task<ReturnCardInfo> SendCardInfo1(SendCardInfo sendCardInfo, int tryCallService) //{ // var idLog = GetIdLog(); // try // { // using (var client = new HttpClient()) // { // var url = $"{LoggerBase.UrlBase}{LoggerBase.ApiCreditCardinfo}" + // $"auth_type={LoggerBase.AuthType}&zapikey={LoggerBase.ZApiKey}"; // LoggerBase.WriteLog($"{idLog} - SendCardInfo - tryCallService: {tryCallService}", $"{url} - {sendCardInfo.Id}", TypeError.Trace); // MultipartFormDataContent content = new MultipartFormDataContent(); // var request = JsonConvert.SerializeObject(new // { // sendCardInfo.CardNum, // sendCardInfo.CVV, // sendCardInfo.ExpDate, // sendCardInfo.Id, // }); // var contentMultipart = new StringContent(request, Encoding.UTF8, "application/json"); // content.Add(contentMultipart, "arguments"); // var urlnew= "https://www.zohoapis.com/crm/v2/functions/payterms/actions/execute?auth_type=apikey&zapikey=1003.c501090155e5b666305bfb9da1374afb.e359e73389e177b57233b4147ce21b34"; // //System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; // return InterpretarRespuesta<ReturnCardInfo>( // await client.PostAsync(urlnew, content), idLog).Result; // } // } // catch (Exception ex) // { // LoggerBase.WriteLog($"{idLog} - SendCardInfo - tryCallService: {tryCallService}", $"{ex.Serializar()}", TypeError.Error); // if (tryCallService > LoggerBase.TryCallService) // return new ReturnCardInfo(); // tryCallService += 1; // return await SendCardInfo(sendCardInfo, tryCallService); // } //} public async Task <ResponseCard> SendCardInfo(SendCardInfo sendCardInfo, int tryCallService) { var idLog = GetIdLog(); try { using (var client = new HttpClient()) { // var url = "https://www.zohoapis.com/crm/v2/functions/payterms/actions/execute?auth_type=apikey&zapikey=1003.c501090155e5b666305bfb9da1374afb.e359e73389e177b57233b4147ce21b34"; var url = $"{LoggerBase.UrlBase}{LoggerBase.ApiCreditCardinfo}" + $"auth_type={LoggerBase.AuthType}&zapikey={LoggerBase.ZApiKey}"; LoggerBase.WriteLog($"{idLog} - SendCardInfo - tryCallService: {tryCallService}", $"{url} - {sendCardInfo.Id}", TypeError.Trace); MultipartFormDataContent content = new MultipartFormDataContent(); var request = JsonConvert.SerializeObject(new { sendCardInfo.NameCard, sendCardInfo.CardNum, sendCardInfo.CVV, sendCardInfo.ExpDate, sendCardInfo.Id, }); var contentMultipart = new StringContent(request, Encoding.UTF8, "application/json"); content.Add(contentMultipart, "arguments"); System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; var httpResponse = await client.PostAsync(url, content); LoggerBase.WriteLog($"{idLog} - Respuesta del Servicio", $"StatusCode: {httpResponse.StatusCode}", TypeError.Trace); if (httpResponse.IsSuccessStatusCode) { return(new ResponseCard { IsSuccess = true, Message = string.Empty, }); } try { var respuesta = await httpResponse.Content.ReadAsAsync <ReturnCardInfo>(); LoggerBase.WriteLog($"{idLog} - Respuesta del Servicio Excepción", $"StatusCode: {httpResponse.StatusCode}, Respuesta: {respuesta.Serializar()}", TypeError.Trace); return(new ResponseCard { IsSuccess = false, Message = respuesta.message, }); } catch (Exception ex) { LoggerBase.WriteLog($"{idLog} - Respuesta del Servicio Excepción", $"StatusCode: {httpResponse.StatusCode}, Excepcion: {ex.Serializar()}", TypeError.Trace); return(new ResponseCard { IsSuccess = false, Message = ex.Message, }); } } } catch (Exception ex) { LoggerBase.WriteLog($"{idLog} - Excepción", $" Excepcion: {ex.Serializar()}", TypeError.Trace); if (tryCallService > LoggerBase.TryCallService) { return new ResponseCard { IsSuccess = false, Message = ex.Message, } } ; tryCallService += 1; return(await SendCardInfo(sendCardInfo, tryCallService)); } } }
//加注事件 bool OnUserAddScore(int wChairID, int lScore, bool bGiveUp) { DzCardInfo dzCardInfo = (DzCardInfo)_GameTable._TableInfo; //校验用户 //ASSERT(m_wCurrentUser==wChairID); if (dzCardInfo.m_wCurrentUser != wChairID) { return(false); } //校验金币 //ASSERT((lScore +m_lTotalScore[wChairID])<= m_lUserMaxScore[wChairID]); if ((lScore + dzCardInfo.m_lTotalScore[wChairID]) > dzCardInfo.m_lUserMaxScore[wChairID]) { return(false); } //ASSERT(lScore>=0L); if ((lScore < 0)) { return(false); } //累计金币 dzCardInfo.m_lTableScore[wChairID] += lScore; dzCardInfo.m_lTotalScore[wChairID] += lScore; //平衡下注 if (dzCardInfo.m_lTableScore[wChairID] > dzCardInfo.m_lBalanceScore) { dzCardInfo.m_lBalanceScore = dzCardInfo.m_lTableScore[wChairID]; } //梭哈判断 if (dzCardInfo.m_lTotalScore[wChairID] == dzCardInfo.m_lUserMaxScore[wChairID]) { dzCardInfo.m_cbShowHand[wChairID] = true; } //用户切换 int wNextPlayer = GameDefine.INVALID_CHAIR; for (int i = 1; i < DzCardDefine.GAME_PLAYER; i++) { //设置变量 dzCardInfo.m_wOperaCount++; wNextPlayer = (dzCardInfo.m_wCurrentUser + i) % DzCardDefine.GAME_PLAYER; //继续判断 if ((dzCardInfo.m_cbPlayStatus[wNextPlayer] == true) && (dzCardInfo.m_cbShowHand[wNextPlayer] == false)) { break; } } //ASSERT(wNextPlayer < m_wPlayerCount); //完成判断 bool bFinishTurn = false; if (dzCardInfo.m_wOperaCount >= DzCardDefine.GAME_PLAYER) { int i = 0; for (i = 0; i < DzCardDefine.GAME_PLAYER; i++) { //过滤未平衡 和未梭哈用户 if ((dzCardInfo.m_cbPlayStatus[i] == true) && (dzCardInfo.m_lTableScore[i] < dzCardInfo.m_lBalanceScore) && (dzCardInfo.m_cbShowHand[i] == false)) { break; } } if (i == DzCardDefine.GAME_PLAYER) { bFinishTurn = true; } } //A家show190,B放弃,C还选择? if (!bFinishTurn) { int wPlayCount = 0; int wShowCount = 0; for (int i = 0; i < DzCardDefine.GAME_PLAYER; i++) { if (dzCardInfo.m_cbPlayStatus[i] == true) { if (dzCardInfo.m_cbShowHand[i] == true) { wShowCount++; } wPlayCount++; } } if (wPlayCount - 1 == wShowCount && dzCardInfo.m_lTableScore[wNextPlayer] >= dzCardInfo.m_lBalanceScore) { bFinishTurn = true; } } //继续加注 if (!bFinishTurn) { //当前用户 dzCardInfo.m_wCurrentUser = wNextPlayer; //最小值为平衡下注 -桌面下注 和 剩余金币中取小 可能梭哈 dzCardInfo.m_lTurnLessScore = Math.Min(dzCardInfo.m_lBalanceScore - dzCardInfo.m_lTableScore[dzCardInfo.m_wCurrentUser], dzCardInfo.m_lUserMaxScore[dzCardInfo.m_wCurrentUser] - dzCardInfo.m_lTotalScore[dzCardInfo.m_wCurrentUser]); dzCardInfo.m_lTurnMaxScore = dzCardInfo.m_lUserMaxScore[dzCardInfo.m_wCurrentUser] - dzCardInfo.m_lTotalScore[dzCardInfo.m_wCurrentUser]; if (dzCardInfo.m_lTotalScore[dzCardInfo.m_wCurrentUser] == dzCardInfo.m_lCellScore) { int bTemp = (dzCardInfo.m_lBalanceScore == dzCardInfo.m_lCellScore * 2) ? (dzCardInfo.m_lCellScore * 2) : ((dzCardInfo.m_lBalanceScore - dzCardInfo.m_lCellScore * 2) * 2); dzCardInfo.m_lAddLessScore = dzCardInfo.m_lCellScore + bTemp; } else { dzCardInfo.m_lAddLessScore = (int)((dzCardInfo.m_lBalanceScore == 0) ? (2 * dzCardInfo.m_lCellScore) : (Math.Max((dzCardInfo.m_lBalanceScore - dzCardInfo.m_lTableScore[dzCardInfo.m_wCurrentUser]) * 2, 2L * dzCardInfo.m_lCellScore))); } //构造数据 AddScoreInfo AddScore = new AddScoreInfo(); AddScore.lAddScoreCount = lScore; AddScore.wAddScoreUser = wChairID; AddScore.wCurrentUser = dzCardInfo.m_wCurrentUser; AddScore.lTurnLessScore = dzCardInfo.m_lTurnLessScore; AddScore.lTurnMaxScore = dzCardInfo.m_lTurnMaxScore; AddScore.lAddLessScore = dzCardInfo.m_lAddLessScore; //发送数据 _GameTable.BroadCastGame(NotifyType.Reply_AddScore, AddScore); //m_pITableFrame->SendTableData(INVALID_CHAIR,SUB_S_ADD_SCORE,&AddScore,sizeof(AddScore)); //m_pITableFrame->SendLookonData(INVALID_CHAIR,SUB_S_ADD_SCORE,&AddScore,sizeof(AddScore)); return(true); } //平衡次数 dzCardInfo.m_cbBalanceCount++; dzCardInfo.m_wOperaCount = 0; //第1次下注平衡后就开始发给三张公牌 //第2次下注平衡后就开始发第四张公牌 //第3次下注平衡后就开始发第五张公牌 //第4次下注平衡后就结束游戏 //D家下注 int wDUser = dzCardInfo.m_wDUser; for (int i = 0; i < DzCardDefine.GAME_PLAYER; i++) { wDUser = (dzCardInfo.m_wDUser + i) % DzCardDefine.GAME_PLAYER; if (dzCardInfo.m_cbPlayStatus[wDUser] == true && dzCardInfo.m_cbShowHand[wDUser] == false) { break; } } //重值变量 dzCardInfo.m_lBalanceScore = 0; dzCardInfo.m_lTurnLessScore = 0; dzCardInfo.m_lTurnMaxScore = dzCardInfo.m_lUserMaxScore[wDUser] - dzCardInfo.m_lTotalScore[wDUser]; dzCardInfo.m_lAddLessScore = 2 * dzCardInfo.m_lCellScore; //构造数据 AddScoreInfo AddScoreInfo = new AddScoreInfo(); AddScoreInfo.wAddScoreUser = wChairID; AddScoreInfo.wCurrentUser = GameDefine.INVALID_CHAIR; AddScoreInfo.lAddScoreCount = lScore; AddScoreInfo.lTurnLessScore = dzCardInfo.m_lTurnLessScore; AddScoreInfo.lTurnMaxScore = dzCardInfo.m_lTurnMaxScore; AddScoreInfo.lAddLessScore = dzCardInfo.m_lAddLessScore; //清理数据 Array.Clear(dzCardInfo.m_lTableScore, 0, dzCardInfo.m_lTableScore.Length); dzCardInfo.m_lBalanceScore = 0; //发送数据 _GameTable.BroadCastGame(NotifyType.Reply_AddScore, AddScoreInfo); //m_pITableFrame->SendTableData(INVALID_CHAIR,SUB_S_ADD_SCORE,&AddScore,sizeof(AddScore)); //m_pITableFrame->SendLookonData(INVALID_CHAIR,SUB_S_ADD_SCORE,&AddScore,sizeof(AddScore)); //结束判断 if (dzCardInfo.m_cbBalanceCount == 4) { //OnEventGameEnd(INVALID_CHAIR,NULL,GER_NORMAL); _isEnd = true; dzCardInfo.cbTotalEnd = 1; return(true); } //梭哈用户统计 int wShowHandCount = 0; int wPlayerCount = 0; for (int i = 0; i < DzCardDefine.GAME_PLAYER; i++) { if (dzCardInfo.m_cbShowHand[i] == true) { wShowHandCount++; } if (dzCardInfo.m_cbPlayStatus[i] == true) { wPlayerCount++; } } //只剩一玩家没梭或者全梭 if ((wShowHandCount >= wPlayerCount - 1) && dzCardInfo.m_cbBalanceCount < 4) { //构造数据 SendCardInfo SendCard = new SendCardInfo(); SendCard.cbPublic = dzCardInfo.m_cbBalanceCount; SendCard.wCurrentUser = GameDefine.INVALID_CHAIR; SendCard.cbSendCardCount = DzCardDefine.MAX_CENTERCOUNT; SendCard.cbCenterCardData = dzCardInfo.m_cbCenterCardData; ////发送数据 _GameTable.BroadCastGame(NotifyType.Reply_SendCard, SendCard); //m_pITableFrame->SendTableData(INVALID_CHAIR,SUB_S_SEND_CARD,&SendCard,sizeof(SendCard)); //m_pITableFrame->SendLookonData(INVALID_CHAIR,SUB_S_SEND_CARD,&SendCard,sizeof(SendCard)); ////结束游戏 //OnEventGameEnd(INVALID_CHAIR,NULL,GER_NORMAL); dzCardInfo.m_cbSendCardCount = DzCardDefine.MAX_CENTERCOUNT; _isEnd = true; dzCardInfo.cbTotalEnd = 1; return(true); } //盲注玩家 for (int i = 0; i < DzCardDefine.GAME_PLAYER; i++) { //临时变量 int cbNextUser = (dzCardInfo.m_wDUser + i) % DzCardDefine.GAME_PLAYER; //获取用户 UserInfo pIServerUserItem = dzCardInfo.m_Seatter[cbNextUser]; //无效用户 梭哈用户过滤 if (pIServerUserItem == null || dzCardInfo.m_cbPlayStatus[cbNextUser] == false || dzCardInfo.m_cbShowHand[cbNextUser] == true) { continue; } dzCardInfo.m_wCurrentUser = cbNextUser; break; } //构造数据 SendCardInfo sendCardInfo = new SendCardInfo(); sendCardInfo.cbPublic = 0; sendCardInfo.wCurrentUser = dzCardInfo.m_wCurrentUser; sendCardInfo.cbSendCardCount = 3 + (dzCardInfo.m_cbBalanceCount - 1); sendCardInfo.cbCenterCardData = dzCardInfo.m_cbCenterCardData; ////发送数据 _GameTable.BroadCastGame(NotifyType.Reply_SendCard, sendCardInfo); //m_pITableFrame->SendTableData(INVALID_CHAIR,SUB_S_SEND_CARD,&SendCard,sizeof(SendCard)); //m_pITableFrame->SendLookonData(INVALID_CHAIR,SUB_S_SEND_CARD,&SendCard,sizeof(SendCard)); dzCardInfo.m_cbSendCardCount = 3 + (dzCardInfo.m_cbBalanceCount - 1); return(true); }