Exemplo n.º 1
0
        private void HandleLowBalance(LowBalanceEventMessage lowBalance)
        {
            var watch = Stopwatch.StartNew();
            var match = lowBalance.Offer.Percentage * lowBalance.Conversion.Amount;
            InsessionEligibility eligibility = new InsessionEligibility
            {
                CreditAmount   = match,
                OfferId        = lowBalance.Offer.OfferId.ToString(),
                GamingSystemId = lowBalance.Conversion.GamingSystemId,
                ProductId      = lowBalance.Conversion.ProductId,
                UserId         = lowBalance.Conversion.UserId
            };

            ExperienceResult experience = new ExperienceResult
            {
                Experience = "BadMarginGoodBetSize",
                MatchOffer = $"{match}"
            };

            PlayerExperienceBlockData blockData = new PlayerExperienceBlockData(experience, eligibility);

            /////////Block
            var    transaction  = _experienceBlockRepository.Get(INSESSION_TRANSACTION_NAME, $"{eligibility.GamingSystemId}-{eligibility.ProductId}-{eligibility.UserId}").Result;
            IBlock lastBlock    = transaction.GetLastBlock();
            IBlock currentBlock = new Block(lastBlock.Index, "Experience_Calculated_v1", blockData.ToJson(), watch.Elapsed, lastBlock.Hash);

            transaction.Add(currentBlock);

            if (transaction.IsValid())
            {
                PubishInsessionEligibility(eligibility);
                PubishTransction(new TransactionMessage.Insession(transaction));
            }
            ///////////
        }
 public PlayerExperienceBlockData(ExperienceResult experienceResult, InsessionEligibility eligibility)
 {
     ExperienceResult     = experienceResult;
     InsessionEligibility = eligibility;
 }