public void RecordHyperBonusCancel(CasinoGamesEnum casinoGameEnum)
        {
            var parameters = new Dictionary <string, object>();

            parameters[WynnAnalyticsDataConstants.AT_GAME_NAME]      = casinoGameEnum.ToString();
            parameters[WynnAnalyticsDataConstants.AT_IS_HIGH_ROLLER] = WynnEngine.IsHighRoller.ToString();
            RecordCustomEvent(WynnAnalyticsDataConstants.AE_RECORD_HYPER_BONUS_CANCEL, parameters);
        }
        public void RecordResumeGameInvoked(string gameId, CasinoGamesEnum gameEnum)
        {
            var parameters = new Dictionary <string, object>();

            parameters[WynnAnalyticsDataConstants.AT_GAME_ID]   = gameId;
            parameters[WynnAnalyticsDataConstants.AT_GAME_NAME] = gameEnum.ToString();

            RecordCustomEvent(WynnAnalyticsDataConstants.AE_RESUME_GAME_INVOKED, parameters);
        }
        public void RecordFeatureGameSelection(string gameId, CasinoGamesEnum gameEnum, int currentTriggerCount,
                                               string featureGameType, bool playFeature)
        {
            var parameters = new Dictionary <string, object>();

            parameters[WynnAnalyticsDataConstants.AT_GAME_ID]               = gameId;
            parameters[WynnAnalyticsDataConstants.AT_GAME_NAME]             = gameEnum.ToString();
            parameters[WynnAnalyticsDataConstants.ME_CURRENT_TRIGGER_COUNT] = currentTriggerCount;
            parameters[WynnAnalyticsDataConstants.AT_FEATURE_GAME_TYPE]     = featureGameType;
            parameters[WynnAnalyticsDataConstants.AT_PLAY_FEATURE_GAME]     = playFeature;
            RecordCustomEvent(WynnAnalyticsDataConstants.AE_FEATURE_GAME_SELECTION, parameters);
        }
        public void RecordHyperBonusPurchase(CasinoGamesEnum casinoGameEnum, int spins, long cost, long betMultiplier, long betLevel)
        {
            var parameters = new Dictionary <string, object>();

            parameters[WynnAnalyticsDataConstants.AT_GAME_NAME]      = casinoGameEnum.ToString();
            parameters[WynnAnalyticsDataConstants.ME_NO_OF_SPIN]     = spins;
            parameters[WynnAnalyticsDataConstants.ME_COST]           = cost;
            parameters[WynnAnalyticsDataConstants.ME_BET_MULTIPLIER] = betMultiplier;
            parameters[WynnAnalyticsDataConstants.ME_BET_LEVEL]      = betLevel;
            parameters[WynnAnalyticsDataConstants.AT_IS_HIGH_ROLLER] = WynnEngine.IsHighRoller.ToString();
            RecordCustomEvent(WynnAnalyticsDataConstants.AE_RECORD_HYPER_BONUS_PURCHASE, parameters);
        }
        public void RecordBattleMatchMaking(string battleId, CasinoGamesEnum selectedGame, long betChoice, bool isFBProfile, long totalBattles, long rank, int winRatio, int matchMakingSeconds)
        {
            var parameters = new Dictionary <string, object>();

            parameters[WynnAnalyticsDataConstants.AT_BATTLE_ID]                    = battleId;
            parameters[WynnAnalyticsDataConstants.AT_GAME_NAME]                    = selectedGame.ToString();
            parameters[WynnAnalyticsDataConstants.AT_BATTLE_IS_FB_PROFILE]         = isFBProfile;
            parameters[WynnAnalyticsDataConstants.ME_BATTLE_BET_CHOICE]            = betChoice;
            parameters[WynnAnalyticsDataConstants.ME_BATTLE_RANK]                  = rank;
            parameters[WynnAnalyticsDataConstants.ME_BATTLE_WIN_RATIO]             = winRatio;
            parameters[WynnAnalyticsDataConstants.ME_BATTLE_MATCH_MAKING_TIME_SEC] = matchMakingSeconds;

            RecordCustomEvent(WynnAnalyticsDataConstants.AE_RECORD_BATTLE_MATCH_MAKING, parameters);
        }
        public void RecordSyncStateError(CasinoGamesEnum gameEnum, long serverCoins, long clientCoins, long serverXP, long clientXP, string battleId, bool isHighRoller)
        {
            var parameters = new Dictionary <string, object>();

            parameters[WynnAnalyticsDataConstants.AT_GAME_NAME]      = gameEnum.ToString();
            parameters[WynnAnalyticsDataConstants.ME_SERVER_COINS]   = serverCoins;
            parameters[WynnAnalyticsDataConstants.ME_CLIENT_COINS]   = clientCoins;
            parameters[WynnAnalyticsDataConstants.ME_SERVER_XP]      = serverXP;
            parameters[WynnAnalyticsDataConstants.ME_CLIENT_XP]      = clientXP;
            parameters[WynnAnalyticsDataConstants.AT_BATTLE_ID]      = battleId;
            parameters[WynnAnalyticsDataConstants.AT_IS_HIGH_ROLLER] = isHighRoller;

            RecordCustomEvent(WynnAnalyticsDataConstants.AE_SYNC_STATE_ERROR, parameters);
        }
        public void RecordOutOfSyncSpin(string gameId, CasinoGamesEnum gameEnum, long serverWins, long clientWins, string battleId, long betLevel, bool isHighRoller)
        {
            var parameters = new Dictionary <string, object>();

            parameters[WynnAnalyticsDataConstants.AT_GAME_ID]          = gameId;
            parameters[WynnAnalyticsDataConstants.AT_GAME_NAME]        = gameEnum.ToString();
            parameters[WynnAnalyticsDataConstants.ME_SERVER_SPIN_WIN]  = serverWins;
            parameters[WynnAnalyticsDataConstants.ME_CLIENT_SPIN_WINS] = clientWins;
            parameters[WynnAnalyticsDataConstants.AT_BATTLE_ID]        = battleId;
            parameters[WynnAnalyticsDataConstants.ME_BET_LEVEL]        = betLevel;
            parameters[WynnAnalyticsDataConstants.AT_IS_HIGH_ROLLER]   = isHighRoller;

            RecordCustomEvent(WynnAnalyticsDataConstants.AE_OUT_OF_SYNC_SPIN, parameters);
        }
        public bool ShouldRecordSlotGameLoadTime(CasinoGamesEnum casinoGame)
        {
            string lastDateStr = null;

            GameEngine.LocalPlayerDataManager.GetString(GameLastLogTimeKey + casinoGame.ToString(), out lastDateStr);

            DateTime lastDateTime = DateTime.MinValue;

            if (lastDateStr.HasValue())
            {
                lastDateTime = DateTime.Parse(lastDateStr);
            }

            int hourSpan = 24;

            if (WynnEngine.SettingsConfigController != null)
            {
                hourSpan = WynnEngine.SettingsConfigController.LoadTimeLoggingIntervalHours;
            }

            return((DateTime.Now - lastDateTime).TotalHours >= hourSpan);
        }
        public void RecordCasinoGameLoadTime(string name,
                                             CasinoGamesEnum casinoGame,
                                             long totalLoadTime,
                                             long assetsLoadTime,
                                             long serverResponseTime,
                                             bool isAssetsCached)
        {
            if (!ShouldRecordSlotGameLoadTime(casinoGame))
            {
                return;
            }

            GameEngine.LocalPlayerDataManager.SetString(GameLastLogTimeKey + casinoGame.ToString(), DateTime.Now.ToString());

            var parameters = new Dictionary <string, object>();

            parameters[WynnAnalyticsDataConstants.AT_GAME_NAME]            = casinoGame.ToString();
            parameters[WynnAnalyticsDataConstants.ME_TOTAL_LOAD_TIME]      = totalLoadTime;
            parameters[WynnAnalyticsDataConstants.ME_ASSETS_LOAD_TIME]     = assetsLoadTime;
            parameters[WynnAnalyticsDataConstants.ME_SERVER_RESPONSE_TIME] = serverResponseTime;
            parameters[WynnAnalyticsDataConstants.AT_IS_ASSETS_CACHED]     = isAssetsCached;

            RecordCustomEvent(WynnAnalyticsDataConstants.AE_CASINO_GAME_LOAD_TIME, parameters);
        }