public async Task <Bonus.Core.Models.Data.Bonus> CreateBonus(Template bonusTemplate, bool isActive = true) { var brand = _brandQueries.GetBrand(bonusTemplate.Info.BrandId); var now = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId).Date; var model = new CreateUpdateBonus { Id = Guid.Empty, Name = TestDataGenerator.GetRandomString(5), Code = TestDataGenerator.GetRandomString(5), TemplateId = bonusTemplate.Id, ActiveFrom = now, ActiveTo = now.AddDays(1), DurationStart = now, DurationEnd = now.AddDays(1) }; var response = await _bonusApiProxy.CreateUpdateBonusAsync(model); if (response.Success == false) { throw new Exception(response.Errors.First().ErrorMessage); } if (isActive) { await _bonusApiProxy.ChangeBonusStatusAsync(new ToggleBonusStatus { Id = response.BonusId.Value, IsActive = true }); } return(await _bonusApiProxy.GetBonusOrNull(response.BonusId.Value)); }
public async Task <AddEditBonusResponse> CreateUpdate(CreateUpdateBonus model) { VerifyPermission(Permissions.Create, Modules.BonusManager); VerifyPermission(Permissions.Update, Modules.BonusManager); var template = await _bonusApiProxy.GetTemplateOrNull(model.TemplateId); if (template != null) { CheckBrand(template.Info.BrandId); } return(await _bonusApiProxy.CreateUpdateBonusAsync(model)); }