Ejemplo n.º 1
0
        public SpinData SP_SlotsKingPoker_Spin(InputSpin valueSpin)
        {
            try
            {
                var db = new DBHelper(ConnectionString.GameConnectionString);

                var oCommand = new SqlCommand(valueSpin.BetType == 1 ? "SP_Spins_CreateTransaction" : "SP_Spins_CreateTransaction_Coin") { CommandType = CommandType.StoredProcedure };
                oCommand.Parameters.AddWithValue("@_AccountID", valueSpin.AccountId);
                oCommand.Parameters.AddWithValue("@_UserName", valueSpin.UserName);
                oCommand.Parameters.AddWithValue("@_RoomID", valueSpin.RoomId);
                oCommand.Parameters.AddWithValue("@_LinesData", valueSpin.LinesData);
                oCommand.Parameters.AddWithValue("@_ClientIP", valueSpin.ClientIp);

                var outSpinId = new SqlParameter("@_SpinID", SqlDbType.BigInt) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outSpinId);

                var outSlotsData = new SqlParameter("@_SlotsData", SqlDbType.NVarChar, 50) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outSlotsData);

                var outPrizesData = new SqlParameter("@_PrizesData", SqlDbType.NVarChar, 500) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outPrizesData);

                var outTotalBetValue = new SqlParameter("@_TotalBetValue", SqlDbType.Int) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outTotalBetValue);

                var outTotalPrizeValue = new SqlParameter("@_TotalPrizeValue", SqlDbType.BigInt) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outTotalPrizeValue);


                var outIsJackpot = new SqlParameter("@_IsJackpot", SqlDbType.Bit) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outIsJackpot);

                var outJackpot = new SqlParameter("@_Jackpot", SqlDbType.BigInt) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outJackpot);

                var outBalance = new SqlParameter("@_Balance", SqlDbType.BigInt) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outBalance);

                var outResponseStatus = new SqlParameter("@_ResponseStatus", SqlDbType.Int) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outResponseStatus);

                var outLuckyData = new SqlParameter("@_LuckyData", SqlDbType.NVarChar) { Direction = ParameterDirection.Output, Size = 500 };
                oCommand.Parameters.Add(outLuckyData);

                var outTotalJP = new SqlParameter("@_TotalJackpot", SqlDbType.Int) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outTotalJP);


                db.ExecuteNonQuery(oCommand);

                var spinData = new SpinData();
                spinData.SpinId = (long)outSpinId.Value;
                spinData.SlotData = outSlotsData.Value.ToString();
                spinData.PrizesData = outPrizesData.Value.ToString();
                spinData.TotalBetValue = (int)outTotalBetValue.Value;
                spinData.TotalPrizeValue = (long)outTotalPrizeValue.Value;
                spinData.Jackpot = (long)outJackpot.Value;
                spinData.Balance = (long)outBalance.Value;
                spinData.IsJackpot = (bool) outIsJackpot.Value;
                spinData.ResponseStatus = (int)outResponseStatus.Value;
                spinData.LuckyData = (string)outLuckyData.Value;
                spinData.TotalJackPot = (int)outTotalJP.Value;
                return spinData;
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
                return new SpinData()
                {
                    ResponseStatus = -10000
                };
            }
        }
Ejemplo n.º 2
0
        public int VuaBai_Spins(int id, int betType, string linesData)
        {
            if (betType != 1 & betType != 2)
            {
                // Loại tiền không đúng
                return(-2);
            }

            //var roomLst = Room.RoomList.Where(x => x.BetType == betType).ToList();

            //if (id <= 0 && id > roomLst.Count)
            //{
            //    return -1;
            //}

            //var currentRoom = roomLst.ElementAt(id - 1);

            if (!CheckLinesInput(linesData))
            {
                return(-3);
            }

            var inputSpin = new InputSpin();

            inputSpin.ServiceId   = _serviceId;
            inputSpin.AccessToken = string.Empty;
            inputSpin.AccountId   = AccountSession.AccountID;
            inputSpin.UserName    = AccountSession.AccountName;
            inputSpin.BetType     = betType;
            inputSpin.RoomId      = id;
            inputSpin.LinesData   = linesData;
            inputSpin.ClientIp    = Utils.GetIp();
            inputSpin.SourceId    = _sourceId;
            inputSpin.MerchantId  = _merchantId;
            var objReturn = new SpinsInfo();

            try
            {
                long   accountId   = AccountSession.AccountID;
                string accountName = AccountSession.AccountName;
                if (accountId > 0)
                {
                    var blockBet         = false;
                    int countInvalidSpin = CachingHandler.CheckAccountAction(accountName, "InvalidSpin");
                    if (countInvalidSpin > 4)
                    {
                        if (countInvalidSpin == 5)
                        {
                            NLogManager.LogMessage(string.Format("Blocked_InvalidSpin => accId: {0} | accName: {1} | ip: {2}", inputSpin.AccountId, inputSpin.UserName, inputSpin.ClientIp));
                        }
                        CachingHandler.AddAccountAction(accountName, "InvalidSpin", 120);
                        blockBet = true;
                    }
                    int countNumOfPlays = CachingHandler.CheckAccountAction(accountName, "UserSpin");
                    if (countNumOfPlays > 0)
                    {
                        if (countNumOfPlays == 1)
                        {
                            NLogManager.LogMessage(string.Format("Blocked_FastSpin => accId: {0} | accName: {1} | ip: {2}", inputSpin.AccountId, inputSpin.UserName, inputSpin.ClientIp));
                        }
                        blockBet = true;
                    }
                    if (!blockBet)
                    {
                        var spinData = AbstractDaoFactory.Instance().CreateEventDao()
                                       .SP_SlotsKingPoker_Spin(inputSpin);
                        objReturn._SpinID          = spinData.SpinId;
                        objReturn._SlotsData       = spinData.SlotData;
                        objReturn._PrizesData      = spinData.PrizesData;
                        objReturn._TotalBetValue   = spinData.TotalBetValue;
                        objReturn._TotalPrizeValue = spinData.TotalPrizeValue;
                        objReturn._IsJackpot       = spinData.IsJackpot;
                        objReturn._Jackpot         = spinData.Jackpot;
                        objReturn._Balance         = spinData.Balance;
                        objReturn._ResponseStatus  = spinData.ResponseStatus;
                        objReturn.LuckyData        = spinData.LuckyData;
                        objReturn.TotalJackPot     = spinData.TotalJackPot;
                        NLogManager.LogMessage(string.Format("Spin => accId: {0} | accname: {1} | ip: {2} | SpinId: {7} | Balance: {8}| response: {3} | TotalPrize: {4}|PrizeValue: {5} | lineBet: {6}|TotalSo10:{9}|IsX2:{10}",
                                                             inputSpin.AccountId, inputSpin.UserName, inputSpin.ClientIp, spinData.ResponseStatus, spinData.TotalPrizeValue, spinData.PrizesData, linesData, spinData.SpinId, spinData.Balance, spinData.LuckyData, spinData.TotalJackPot));
                        Clients.Caller.ResultSpin(objReturn);
                        if (spinData.ResponseStatus < 0)
                        {
                            CachingHandler.AddAccountAction(accountName, "InvalidSpin", 1);
                            return(spinData.ResponseStatus);
                        }
                        else
                        {
                            CachingHandler.AddAccountAction(accountName, "UserSpin", 1);
                        }
                        ConnectionHandler.Instance.UpdateJackpot(id, betType, spinData.Jackpot);
                        //Clients.Group("room" + (roomId + 4 * (betType - 1))).UpdateJackPot(spinData.Jackpot);
                    }
                    else
                    {
                        objReturn._ResponseStatus = -10002;
                        return(-10002);
                    }
                }
                else
                {
                    objReturn._ResponseStatus = -999;//Chua dang nhap
                    return(-999);
                }
                return(1);
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
                return(-10000); //Loi he thong web
            }
        }