Esempio n. 1
0
        private string GetGameActionDescription(BonusWalletBalanceChanged processedEvent)
        {
            switch (processedEvent.Type)
            {
            case Bonus.Core.Models.Enums.TransactionType.BetPlaced:
                return("Place Bet");

            case Bonus.Core.Models.Enums.TransactionType.BetFree:
                return("Free Bet");

            case Bonus.Core.Models.Enums.TransactionType.BetWon:
                return("Win Bet");

            case Bonus.Core.Models.Enums.TransactionType.BetLost:
                return("Lose Bet");

            case Bonus.Core.Models.Enums.TransactionType.BetCancelled:
                return("Cancel Tx");

            case Bonus.Core.Models.Enums.TransactionType.BetWonAdjustment:
                return("Win Bet Adjustment, " + (processedEvent.MainBalanceAmount + processedEvent.BonusBalanceAmount).ToString("F") + " ");

            default:
                return(string.Empty);
            }
        }
Esempio n. 2
0
        private string GetDescription(BonusWalletBalanceChanged processedEvent)
        {
            var gameId = processedEvent.GameId;

            if (!gameId.HasValue)
            {
                return(string.Empty);
            }

            var game     = ((IGameQueries)_gameQueriesFactory()).GetGameDto(gameId.Value);
            var gameName = game == null ? "Game" : game.Name;
            var gameActionDescription = GetGameActionDescription(processedEvent);

            return($"{gameName}, {gameActionDescription}");
        }
Esempio n. 3
0
        public void Handle(BonusWalletBalanceChanged processedEvent)
        {
            if (!IsValidForStatsEvent(processedEvent))
            {
                return;
            }

            var reportRepository = _reportRepositoryFactory();
            var record           = reportRepository.PlayerTransactionRecords.FirstOrDefault(r => r.TransactionId == processedEvent.TransactionId.ToString());

            if (record != null)
            {
                throw new RegoException($"Player transaction record {processedEvent.TransactionId} already exists");
            }

            record = new PlayerTransactionRecord
            {
                // wallet transaction id
                TransactionId = processedEvent.TransactionId.ToString(),
                // related wallet's transaction id
                RelatedTransactionId = processedEvent.RelatedTransactionId,

                PlayerId = processedEvent.Wallet.PlayerId,

                CreatedOn   = processedEvent.CreatedOn,
                PerformedBy = GetNamePerformedBy(processedEvent.PerformedBy),

                RoundId = processedEvent.RoundId,
                GameId  = processedEvent.GameId,

                Type = processedEvent.Type.ToString(),

                Balance     = processedEvent.Wallet.Balance,
                MainBalance = processedEvent.Wallet.Balance,

                MainBalanceAmount  = processedEvent.MainBalanceAmount,
                BonusBalanceAmount = processedEvent.BonusBalanceAmount,

                CurrencyCode = processedEvent.Wallet.CurrencyCode,

                Description       = GetDescription(processedEvent),
                TransactionNumber = processedEvent.TransactionNumber
            };

            reportRepository.PlayerTransactionRecords.Add(record);
            reportRepository.SaveChanges();
        }
Esempio n. 4
0
 private static bool IsValidForStatsEvent(BonusWalletBalanceChanged @event)
 {
     // we don't handle Bet Lost events in the stats. AFTREGO-4445
     return(@event.Type != TransactionType.BetLost);
 }