public void ThenBrandCultureIsSuccessfullyAdded() { ScenarioContext.Current.Should().ContainKey("brandId"); var brandId = ScenarioContext.Current.Get <Guid>("brandId"); var data = new AssignBrandCultureRequest() { Brand = brandId, Cultures = new[] { "en-CA", "en-US" }, DefaultCulture = "en-CA" }; var result = AdminApiProxy.AssignBrandCulture(data); result.Should().NotBeNull(); result.Success.Should().BeTrue(); }
//public AssignBrandCultureResponse Assign(AssignBrandCultureRequest request) public AssignBrandCultureResponse Assign(AssignBrandCultureRequest request) { VerifyPermission(Permissions.Create, Modules.SupportedLanguages); CheckBrand(request.Brand); var validationResult = _brandCommands.ValidateThatBrandCultureCanBeAssigned(request); if (!validationResult.IsValid) { return(ValidationErrorResponse <AssignBrandCultureResponse>(validationResult)); } _brandCommands.AssignBrandCulture(request); return(new AssignBrandCultureResponse { Success = true }); }
public void ThenIAmForbiddenToAssignCultureToTheBrand() { ScenarioContext.Current.Should().ContainKey("brandId"); var brandId = ScenarioContext.Current.Get <Guid>("brandId"); ScenarioContext.Current.Should().ContainKey("cultureCode"); var code = ScenarioContext.Current.Get <string>("cultureCode"); var data = new AssignBrandCultureRequest { Brand = brandId, Cultures = new[] { code }, DefaultCulture = code }; var ex = Assert.Throws <HttpException>(() => AdminApiProxy.AssignBrandCulture(data)); Assert.That(ex.GetHttpCode(), Is.EqualTo((int)HttpStatusCode.Forbidden)); }
public void AssignBrandCulture(AssignBrandCultureRequest assignBrandCultureData) { var validationResult = new AssignBrandCultureValidator(_repository).Validate(assignBrandCultureData); if (!validationResult.IsValid) { throw new RegoValidationException(validationResult); } var brand = _repository.Brands .Include(x => x.BrandCultures) .Single(x => x.Id == assignBrandCultureData.Brand); using (var scope = CustomTransactionScope.GetTransactionScope()) { var oldCultures = brand.BrandCultures .Where(x => !assignBrandCultureData.Cultures.Contains(x.CultureCode)) .ToArray(); foreach (var oldCulture in oldCultures) { brand.BrandCultures.Remove(oldCulture); } var newCultures = assignBrandCultureData.Cultures .Where(x => brand.BrandCultures.All(y => y.CultureCode != x)) .ToArray(); foreach (var culture in newCultures) { var cultureToAdd = _repository.Cultures.Single(x => x.Code == culture); brand.BrandCultures.Add(new BrandCulture { BrandId = brand.Id, Brand = brand, CultureCode = cultureToAdd.Code, Culture = cultureToAdd, DateAdded = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId), AddedBy = _actorInfoProvider.Actor.UserName }); } brand.DefaultCulture = assignBrandCultureData.DefaultCulture; brand.DateUpdated = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId); brand.UpdatedBy = _actorInfoProvider.Actor.UserName; _repository.SaveChanges(); _eventBus.Publish(new BrandLanguagesAssigned( brand.Id, brand.Name, brand.BrandCultures.Select(x => x.Culture), brand.DefaultCulture) { EventCreated = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId), }); scope.Complete(); } }
public ValidationResult ValidateThatBrandCultureCanBeAssigned(AssignBrandCultureRequest request) { var validator = new AssignBrandCultureValidator(_repository); return(validator.Validate(request)); }
public AssignBrandCultureResponse AssignBrandCulture(AssignBrandCultureRequest request) { return(WebClient.SecurePostAsJson <AssignBrandCultureRequest, AssignBrandCultureResponse>(Token, _url + AdminApiRoutes.AssignBrandCulture, request)); }