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; }