Пример #1
0
        public async Task <IActionResult> UpdateCategoryName(UpdateProductCategoryNameInput input)
        {
            var result = await _service.UpdateCategoryNameAsync(input);

            return(new OperationActionResult(result));
        }
Пример #2
0
        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);
        }