コード例 #1
0
        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));
        }
コード例 #2
0
        //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));
            }
        }
    }
コード例 #3
0
        //加注事件
        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);
        }