public void ActivateBrand(ActivateBrandRequest request) { var brand = GetBrandForActivation(request.BrandId); var validationResult = ValidateThatBrandCanBeActivated(request); if (!validationResult.IsValid) { throw new ValidationException(validationResult.Errors); } using (var scope = CustomTransactionScope.GetTransactionScope()) { brand.Status = BrandStatus.Active; brand.UpdatedBy = brand.ActivatedBy = _actorInfoProvider.Actor.UserName; brand.DateUpdated = brand.DateActivated = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId); brand.Remarks = request.Remarks; _repository.SaveChanges(); _eventBus.Publish( new BrandActivated { Id = brand.Id, EventCreated = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId), }); scope.Complete(); } }
public ValidationResult ValidateThatBrandCanBeActivated(ActivateBrandRequest request) { var brand = GetBrandForActivation(request.BrandId); var activateBrandData = new ActivateBrandValidationData { Brand = brand, BrandPaymentLevels = _paymentQueries.GetPaymentLevels(request.BrandId).ToArray(), BrandRiskLevels = _queries.GetRiskLevels(request.BrandId).ToArray(), Remarks = request.Remarks }; var validator = new ActivateBrandValidator(); return(validator.Validate(activateBrandData)); }
public void ThenBrandIsSuccessfullyActivated() { ScenarioContext.Current.Should().ContainKey("brandId"); var brandId = ScenarioContext.Current.Get <Guid>("brandId"); var data = new ActivateBrandRequest { BrandId = brandId, Remarks = "Some remark" }; var result = AdminApiProxy.ActivateBrand(data); result.Should().NotBeNull(); result.Success.Should().BeTrue(); }
public ActivateBrandResponse Activate(ActivateBrandRequest request) { VerifyPermission(Permissions.Activate, Modules.BrandManager); CheckBrand(request.BrandId); var validationResult = _brandCommands.ValidateThatBrandCanBeActivated(request); if (!validationResult.IsValid) { return(ValidationErrorResponse <ActivateBrandResponse>(validationResult)); } _brandCommands.ActivateBrand(request); return(new ActivateBrandResponse { Success = true }); }
public ActivateBrandResponse ActivateBrand(ActivateBrandRequest request) { return(WebClient.SecurePostAsJson <ActivateBrandRequest, ActivateBrandResponse>(Token, _url + AdminApiRoutes.ActivateBrand, request)); }