Exemple #1
0
        public async Task <OperationResult> RemoveCouponCodeAsync(RemoveCouponCodeInput input)
        {
            var validationResult = await _couponCodeValidator.ValidateRemoveCouponCodeAsync(input);

            if (validationResult.IsSuccess)
            {
                var entity = await _couponCodeRepository.GetCouponAsync(input.Code.ToUpper());

                await _couponCodeRepository.RemoveAsync(entity);

                return(OperationResult.Success());
            }

            return(OperationResult <CouponCodeDto> .Fail(validationResult));
        }
        public async Task <ValidationResult> ValidateRemoveCouponCodeAsync(RemoveCouponCodeInput input)
        {
            ValidationResult validationResult = new();

            if (string.IsNullOrWhiteSpace(input.Code))
            {
                validationResult.Messages.Add(new(nameof(RemoveCouponCodeInput.Code), "Debe indicar un código."));
            }
            else
            {
                CouponCode couponCode = await _couponCodeRepository.GetCouponAsync(input.Code.ToUpper());

                if (couponCode is null)
                {
                    validationResult.Messages.Add(new(nameof(RemoveCouponCodeInput.Code), $"El código {input.Code} no existe."));
                }
            }

            return(validationResult);
        }