public async Task <IActionResult> UpdateCategoryName(UpdateProductCategoryNameInput input) { var result = await _service.UpdateCategoryNameAsync(input); return(new OperationActionResult(result)); }
public async Task <OperationResult <ProductCategoryDto> > UpdateCategoryNameAsync(UpdateProductCategoryNameInput input) { var validationResult = await _productCategoryValidator.ValidateUpdateProductCategoryNameCategory(input); if (validationResult.IsSuccess) { var entity = await _productCategoryRepository.GetByNameAsync(input.OldCategoryName); await _productCategoryRepository.RemoveAsync(entity); entity.Name = input.NewCategoryName; await _productCategoryRepository.CreateAsync(entity); await _productRepository.UpdateCategoryName(input.OldCategoryName, input.NewCategoryName); var productCount = await _productRepository.CountByCategory(entity.Name); return(OperationResult <ProductCategoryDto> .Success(entity.ConvertToDto(productCount))); } return(OperationResult <ProductCategoryDto> .Fail(validationResult)); }
public async Task <ValidationResult> ValidateUpdateProductCategoryNameCategory(UpdateProductCategoryNameInput input) { ValidationResult validationResult = new(); if (string.IsNullOrWhiteSpace(input.NewCategoryName)) { validationResult.Messages.Add(new(nameof(CreateProductCategoryInput.Name), "Debe ingresar un nombre para la categoria.")); } else if (input.NewCategoryName.HasFileInvalidChars()) { validationResult.Messages.Add(new(nameof(CreateProductCategoryInput.Name), "El nombre no puede contener caracteres invalidos (<, >, :, \", /, \\, |, ?, *).")); } else { var productCategory = await _repository.GetByNameAsync(input.NewCategoryName); if (productCategory is not null) { validationResult.Messages.Add(new(nameof(CreateProductCategoryInput.Name), "La categoria ya existe.")); } } return(validationResult); }