示例#1
0
        public void MakeFundIn(Guid playerId, Guid destinationWalletStructureId, decimal amount, string bonusCode = null, Guid?bonusId = null)
        {
            if (bonusId.HasValue || string.IsNullOrWhiteSpace(bonusCode) == false)
            {
                BonusCommands.ApplyForBonus(new FundInBonusApplication
                {
                    PlayerId  = playerId,
                    BonusId   = bonusId,
                    BonusCode = bonusCode,
                    Amount    = amount,
                    DestinationWalletTemplateId = destinationWalletStructureId
                });
            }

            ServiceBus.PublishMessage(new TransferFundCreated
            {
                PlayerId = playerId,
                DestinationWalletStructureId = destinationWalletStructureId,
                Amount    = amount,
                BonusCode = bonusCode,
                Type      = TransferFundType.FundIn,
                Status    = TransferFundStatus.Approved
            });

            // Here we need somehow create an event to mimic a wallet fund-in
        }
示例#2
0
        public Guid SubmitDeposit(Guid playerId, decimal depositAmount = 200, string bonusCode = null, Guid?bonusId = null)
        {
            var depositId = Guid.NewGuid();

            ServiceBus.PublishMessage(new DepositSubmitted
            {
                DepositId = depositId,
                PlayerId  = playerId,
                Amount    = depositAmount
            });

            if (bonusId.HasValue || string.IsNullOrWhiteSpace(bonusCode) == false)
            {
                BonusCommands.ApplyForBonus(new DepositBonusApplication
                {
                    PlayerId  = playerId,
                    BonusId   = bonusId,
                    BonusCode = bonusCode,
                    Amount    = depositAmount,
                    DepositId = depositId
                });
            }

            return(depositId);
        }
示例#3
0
        public void Qualification_runs_before_rollover_is_issued_for_AfterWager_bonus()
        {
            MakeDeposit(PlayerId);

            var excludedReloadedDeposit = CreateFirstDepositBonus(mode: IssuanceMode.AutomaticWithCode);

            excludedReloadedDeposit.Template.Info.TemplateType = BonusType.ReloadDeposit;

            var reloadDepositWithExclude = CreateFirstDepositBonus(mode: IssuanceMode.AutomaticWithCode);

            reloadDepositWithExclude.Template.Info.TemplateType     = BonusType.ReloadDeposit;
            reloadDepositWithExclude.Template.Wagering.HasWagering  = true;
            reloadDepositWithExclude.Template.Wagering.IsAfterWager = true;
            reloadDepositWithExclude.Template.Wagering.Multiplier   = 1;
            reloadDepositWithExclude.Template.Availability.ExcludeBonuses.Add(new BonusExclude {
                ExcludedBonusId = excludedReloadedDeposit.Id
            });
            reloadDepositWithExclude.Template.Availability.ExcludeOperation = Operation.Any;

            var depositId = Guid.NewGuid();

            BonusCommands.ApplyForBonus(new DepositBonusApplication
            {
                PlayerId  = PlayerId,
                Amount    = 200,
                DepositId = depositId,
                BonusCode = reloadDepositWithExclude.Code
            });

            MakeDeposit(PlayerId, 200, excludedReloadedDeposit.Code);
            ApproveDeposit(depositId, PlayerId, 200);

            BonusRedemptions.First().ActivationState.Should().Be(ActivationStatus.Negated);
        }
示例#4
0
        public void Disqualification_is_processed_during_activation()
        {
            var depositId = Guid.NewGuid();

            BonusCommands.ApplyForBonus(new DepositBonusApplication
            {
                PlayerId  = PlayerId,
                Amount    = 200,
                BonusCode = _bonus.Code,
                DepositId = depositId
            });
            var bonusRedemption = BonusRedemptions.First();

            MakeDeposit(PlayerId, bonusCode: _excludedBonus1.Code);
            ApproveDeposit(depositId, PlayerId, 100);

            bonusRedemption.ActivationState.Should().Be(ActivationStatus.Negated);
        }
示例#5
0
 public void ApplyForFundInBonus(FundInBonusApplication model)
 {
     _bonusCommands.ApplyForBonus(model);
 }