public ValidationResult ValidateThatBrandCanBeDeactivated(DeactivateBrandRequest request) { var brand = GetBrandForDeactivation(request.BrandId); brand.Remarks = request.Remarks; var deactivateBrandData = new DeactivateBrandValidationData { Brand = brand }; var validator = new DeactivateBrandValidator(); return(validator.Validate(deactivateBrandData)); }
public void ThenBrandIsSuccessfullyDeactivated() { ScenarioContext.Current.Should().ContainKey("brandId"); var brandId = ScenarioContext.Current.Get <Guid>("brandId"); var data = new DeactivateBrandRequest { BrandId = brandId, Remarks = "Some remark" }; var result = AdminApiProxy.DeactivateBrand(data); result.Should().NotBeNull(); result.Success.Should().BeTrue(); }
public DeactivateBrandResponse Deactivate(DeactivateBrandRequest request) { VerifyPermission(Permissions.Deactivate, Modules.BrandManager); CheckBrand(request.BrandId); var validationResult = _brandCommands.ValidateThatBrandCanBeDeactivated(request); if (!validationResult.IsValid) { return(ValidationErrorResponse <DeactivateBrandResponse>(validationResult)); } _brandCommands.DeactivateBrand(request); return(new DeactivateBrandResponse { Success = true }); }
public void DeactivateBrand(DeactivateBrandRequest request) { var brand = _repository.Brands.SingleOrDefault(x => x.Id == request.BrandId); if (brand != null) { brand.Remarks = request.Remarks; } var deactivateBrandData = new DeactivateBrandValidationData { Brand = brand }; var validationResult = new DeactivateBrandValidator().Validate(deactivateBrandData); if (!validationResult.IsValid) { throw new RegoValidationException(validationResult); } using (var scope = CustomTransactionScope.GetTransactionScope()) { brand.Status = BrandStatus.Deactivated; brand.UpdatedBy = brand.DeactivatedBy = _actorInfoProvider.Actor.UserName; brand.DateUpdated = brand.DateDeactivated = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId); _repository.SaveChanges(); _eventBus.Publish(new BrandDeactivated { Id = request.BrandId, EventCreated = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId), }); scope.Complete(); } }
public DeactivateBrandResponse DeactivateBrand(DeactivateBrandRequest request) { return(WebClient.SecurePostAsJson <DeactivateBrandRequest, DeactivateBrandResponse>(Token, _url + AdminApiRoutes.DeactivateBrand, request)); }