// Message status returns: // UNFULFILLED private void TwitchClient_OnRewardRedeemed(object sender, RewardRedeemedEvent e) { // TODO make proper mitigation of this issue. if (!string.Equals(e.Status, "UNFULFILLED", StringComparison.OrdinalIgnoreCase)) { return; } var pointRedemption = new PointRedemption { DisplayName = e.DisplayName, Message = e.Message, RewardId = e.RewardId, RewardName = e.RewardTitle, TimeStamp = e.TimeStamp }; var redemptionOption = repository.GetRedemptionOption(e.RewardTitle); if (redemptionOption == null) { redemptionOption = new RedemptionOption(e.RewardTitle); repository.Save(redemptionOption); OnNewRedemptionRewardDetected?.Invoke(this, "NEW REWARD DETECTED; NEEDS SETUP!"); } else if (redemptionOption.OptionAction == OptionAction.NoAction) { OnExistingRedemptionRewardNeedingSetup?.Invoke(this, "EXISTING REWARD DETECTED, STILL NEED SETUP!"); } else { // REDEEM THAT FUCKERRR! var redeemer = redeemerOchestrator.GetRedeemer(redemptionOption.OptionAction); redeemer.Handle(pointRedemption, redemptionOption); } repository.Save(pointRedemption); OnRewardRedeemed?.Invoke(this, pointRedemption); }
private void TwitchPubSub_OnRewardRedeemed(object sender, OnRewardRedeemedArgs e) { OnRewardRedeemed?.Invoke(this, RewardRedeemedEvent.Create(e)); }