private void HandleEligibility(InsessionEligibility eligibility) { var watch = Stopwatch.StartNew(); _logger.LogInformation($"Eligibility Received for crediting: {eligibility.ToJson()}"); _logger.LogInformation($"Player {eligibility.GamingSystemId}-{eligibility.ProductId}-{eligibility.UserId} has been credited with {eligibility.CreditAmount} for offer {eligibility.OfferId}"); CreditModel blockData = new CreditModel(eligibility, true); /////////Block var transaction = _creditBlockRepository.Get(INSESSION_TRANSACTION_NAME, $"{eligibility.GamingSystemId}-{eligibility.ProductId}-{eligibility.UserId}").Result; IBlock lastBlock = transaction.GetLastBlock(); IBlock currentBlock = new Block(lastBlock.Index, "Player_Credited_v1", blockData.ToJson(), watch.Elapsed, lastBlock.Hash); transaction.Add(currentBlock); if (transaction.IsValid()) { var conversion = new ConversionModel() { Amount = 500, GamingSystemId = eligibility.GamingSystemId, ProductId = eligibility.ProductId, UserId = eligibility.UserId }; PubishTransction(new TransactionMessage.Insession(transaction)); Context.System.Scheduler.ScheduleTellOnce(TimeSpan.FromSeconds(60), Self, conversion, Self); } /////////// }