public void EditBrand(EditBrandRequest editBrandData) { var validationResult = ValidateThatBrandCanBeEdited(editBrandData); if (!validationResult.IsValid) { throw new RegoValidationException(validationResult); } var brand = _repository.Brands.Single(x => x.Id == editBrandData.Brand); using (var scope = CustomTransactionScope.GetTransactionScope()) { brand.Licensee = _repository.Licensees.Single(x => x.Id == editBrandData.Licensee); brand.Type = editBrandData.Type; brand.Name = editBrandData.Name; brand.Code = editBrandData.Code; brand.Email = editBrandData.Email; brand.SmsNumber = editBrandData.SmsNumber; brand.WebsiteUrl = Uri.EscapeUriString(editBrandData.WebsiteUrl); brand.EnablePlayerPrefix = editBrandData.EnablePlayerPrefix; brand.PlayerPrefix = editBrandData.PlayerPrefix; brand.PlayerActivationMethod = editBrandData.PlayerActivationMethod; brand.InternalAccountsNumber = editBrandData.InternalAccounts; brand.TimezoneId = editBrandData.TimeZoneId; brand.Remarks = editBrandData.Remarks; brand.DateUpdated = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId); brand.UpdatedBy = _actorInfoProvider.Actor.UserName; _repository.SaveChanges(); _eventBus.Publish(new BrandUpdated { Id = brand.Id, Code = brand.Code, Name = brand.Name, Email = brand.Email, SmsNumber = brand.SmsNumber, WebsiteUrl = brand.WebsiteUrl, LicenseeId = brand.Licensee.Id, LicenseeName = brand.Licensee.Name, TypeName = brand.Type.ToString(), Remarks = brand.Remarks, PlayerPrefix = brand.PlayerPrefix, TimeZoneId = brand.TimezoneId, InternalAccountCount = brand.InternalAccountsNumber, EventCreated = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId), }); scope.Complete(); } }
public EditBrandResponse Edit(EditBrandRequest request) { VerifyPermission(Permissions.Update, Modules.BrandManager); CheckBrand(request.Brand); var validationResult = _brandCommands.ValidateThatBrandCanBeEdited(request); if (!validationResult.IsValid) { return(ValidationErrorResponse <EditBrandResponse>(validationResult)); } _brandCommands.EditBrand(request); return(new EditBrandResponse { Success = true }); }
public void ThenBrandDataIsSuccessfullyEdited() { ScenarioContext.Current.Should().ContainKey("brandId"); var brandId = ScenarioContext.Current.Get <Guid>("brandId"); ScenarioContext.Current.Should().ContainKey("licenseeId"); var licenseeId = ScenarioContext.Current.Get <Guid>("licenseeId"); var newBrandName = TestDataGenerator.GetRandomString(20); var newBrandCode = TestDataGenerator.GetRandomString(20); var newTimeZoneId = TestDataGenerator.GetRandomTimeZone().Id; var newInternalAccountCount = TestDataGenerator.GetRandomNumber(10, 0); const string remarks = "Test updating brand"; var data = new EditBrandRequest { Brand = brandId, Code = newBrandCode, EnablePlayerPrefix = true, InternalAccounts = newInternalAccountCount, Licensee = licenseeId, Name = newBrandName, PlayerPrefix = "AAA", TimeZoneId = newTimeZoneId, Type = BrandType.Deposit, Remarks = remarks, Email = TestDataGenerator.GetRandomEmail(), SmsNumber = TestDataGenerator.GetRandomPhoneNumber(false), WebsiteUrl = TestDataGenerator.GetRandomWebsiteUrl() }; var result = AdminApiProxy.EditBrand(data); result.Should().NotBeNull(); result.Success.Should().BeTrue(); }
public ValidationResult ValidateThatBrandCanBeEdited(EditBrandRequest request) { var validator = new EditBrandValidator(_repository); return(validator.Validate(request)); }
public EditBrandResponse EditBrand(EditBrandRequest request) { return(WebClient.SecurePostAsJson <EditBrandRequest, EditBrandResponse>(Token, _url + AdminApiRoutes.EditBrand, request)); }