public void Updated_template_is_correctly_saved_to_DB()
        {
            var baseTemplate = CreateFirstDepositTemplate();

            var model = new CreateUpdateTemplate
            {
                Id       = baseTemplate.Id,
                Version  = baseTemplate.Version,
                Wagering = new CreateUpdateTemplateWagering
                {
                    Threshold         = 1000,
                    GameContributions =
                    {
                        new CreateUpdateGameContribution
                        {
                            GameId       = new Guid("B641B4E9-CA08-4443-8FD3-8D1A43727C3E"),
                            Contribution = 4
                        }
                    }
                }
            };

            _bonusManagementCommands.AddUpdateTemplate(model);
            var updatedTemplate = _bonusQueries.GetCurrentVersionTemplates().Single(a => a.Id == baseTemplate.Id);

            Assert.AreEqual(1, updatedTemplate.Version);
            Assert.AreEqual(1000, updatedTemplate.Wagering.Threshold);
            Assert.AreEqual(0.04, updatedTemplate.Wagering.GameContributions.First().Contribution);
        }
Exemple #2
0
        public void Mapper_assigns_brand_to_existing_template()
        {
            var identifier = _bonusManagementCommands.AddUpdateTemplate(_model);

            _model = new CreateUpdateTemplate
            {
                Id           = identifier.Id,
                Version      = identifier.Version,
                Availability = new CreateUpdateTemplateAvailability()
            };

            var template = _bonusMapper.MapModelToTemplate(_model);

            template.Info.Brand.Id.Should().Be(_brand.Id);
        }
Exemple #3
0
        public AddEditTemplateResponse CreateEdit(CreateUpdateTemplate model)
        {
            var validationResult = _bonusQueries.GetValidationResult(model);

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

            var identifier = _bonusCommands.AddUpdateTemplate(model);

            return(new AddEditTemplateResponse {
                Success = true, Id = identifier.Id, Version = identifier.Version
            });
        }
Exemple #4
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
                });
            }
        }