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); }
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); }
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 }); }
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 }); } }