Ejemplo n.º 1
0
        public void Bonus_deactivation_is_saved_to_DB()
        {
            var bonus = CreateFirstDepositBonus();

            _bonusManagementCommands.ChangeBonusStatus(new ToggleBonusStatus {
                Id = bonus.Id
            });

            var updatedBonus = BonusRepository.GetCurrentVersionBonuses().Single(a => a.Id == bonus.Id);

            Assert.False(updatedBonus.IsActive);
        }
Ejemplo n.º 2
0
        public ToggleBonusStatusResponse ChangeStatus(ToggleBonusStatus model)
        {
            var validationResult = _bonusQueries.GetValidationResult(model);

            if (!validationResult.IsValid)
            {
                return(ValidationErrorResponse <ToggleBonusStatusResponse>(validationResult));
            }

            _bonusCommands.ChangeBonusStatus(model);
            return(new ToggleBonusStatusResponse {
                Success = true
            });
        }
Ejemplo n.º 3
0
        public void AddBonus(
            BonusType bonusType,
            string templateName,
            IssuanceMode mode,
            BonusRewardType rewardType,
            decimal depositAmountFrom,
            decimal bonusAmount,
            decimal maxBonus,
            string bonusName,
            string bonusCode,
            string description)
        {
            var  brand = _bonusRepository.Brands.Single(b => b.Id == new Guid("00000000-0000-0000-0000-000000000138"));
            Guid templateId;
            var  template = _bonusRepository.Templates.SingleOrDefault(t => t.Info.Name == templateName);

            if (template == null)
            {
                var model = new CreateUpdateTemplate
                {
                    Id   = Guid.Empty,
                    Info = new CreateUpdateTemplateInfo
                    {
                        Name             = templateName,
                        TemplateType     = bonusType,
                        BrandId          = brand.Id,
                        WalletTemplateId = brand.WalletTemplates.First().Id,
                        Mode             = mode
                    }
                };
                var identifier = _bonusManagementCommands.AddUpdateTemplate(model);
                templateId = identifier.Id;

                model = new CreateUpdateTemplate
                {
                    Id           = identifier.Id,
                    Version      = identifier.Version,
                    Availability = new CreateUpdateTemplateAvailability(),
                    Rules        = new CreateUpdateTemplateRules
                    {
                        RewardType  = rewardType,
                        RewardTiers = new List <CreateUpdateRewardTier>
                        {
                            new CreateUpdateRewardTier
                            {
                                CurrencyCode = "RMB",
                                BonusTiers   = new List <CreateUpdateTemplateTier> {
                                    new CreateUpdateTemplateTier
                                    {
                                        From   = depositAmountFrom,
                                        Reward = bonusAmount
                                    }
                                },
                                RewardAmountLimit = maxBonus
                            }
                        }
                    },
                    Wagering = new CreateUpdateTemplateWagering
                    {
                        HasWagering = true,
                        Method      = WageringMethod.Bonus,
                        Multiplier  = 2
                    },
                    Notification = new CreateUpdateTemplateNotification()
                };
                _bonusManagementCommands.AddUpdateTemplate(model);
            }
            else
            {
                templateId = template.Id;
            }

            var bonus = _bonusRepository.Bonuses.SingleOrDefault(b => b.Name == bonusName);

            if (bonus == null)
            {
                var startDate = new DateTime(2016, 4, 26, 0, 0, 0);
                var endDate   = new DateTime(2016, 12, 31, 0, 0, 0);
                var bonusId   = _bonusManagementCommands.AddUpdateBonus(new CreateUpdateBonus
                {
                    Id            = Guid.Empty,
                    Name          = bonusName,
                    Code          = bonusCode,
                    Description   = description,
                    TemplateId    = templateId,
                    ActiveFrom    = startDate,
                    ActiveTo      = endDate,
                    DurationStart = startDate,
                    DurationEnd   = endDate
                });

                if (bonusType == BonusType.FirstDeposit && mode == IssuanceMode.Automatic)
                {
                    return;
                }

                _bonusManagementCommands.ChangeBonusStatus(new ToggleBonusStatus
                {
                    Id       = bonusId,
                    IsActive = true
                });
            }
        }