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 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(); } }