Ejemplo n.º 1
0
        public ServicioValidator(IServicioRepository servicioRepository)
        {
            RuleFor(ser => ser.Nombre)
            .NotEmpty()
            .WithMessage("INGRESE UN SERVICIO")
            .MaximumLength(200).WithMessage("MÁXIMO 200 CARACTERES")
            .MustAsync(async(ser, x, context) =>
            {
                int result = await servicioRepository.NameExistAsync(ser.Nombre);
                if (result > 0)
                {
                    if (result == ser.IdServicio)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(true);
                }
            })
            .WithMessage("EL SERVICIO YA EXISTE");

            RuleFor(ser => ser.IdTipoServicio)
            .NotEqual(0)
            .WithMessage("DEBE SELECCIONAR UN TIPO DE SERVICIO");

            RuleFor(ser => ser.Clave)
            .NotEmpty()
            .WithMessage("INGRESE UNA CLAVE")
            .MaximumLength(20).WithMessage("MÁXIMO 20 CARACTERES")
            .MustAsync(async(ser, x, context) =>
            {
                int result = await servicioRepository.ExisteClave(ser.Clave);
                if (result > 0)
                {
                    if (result == ser.IdServicio)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(true);
                }
            })
            .WithMessage("LA CLAVE DE SERVICIO YA EXISTE");

            RuleFor(ser => ser.Precio)
            .GreaterThan(0)
            .WithMessage("INGRESE UN PRECIO VÁLIDO");

            //RuleFor(ser => ser.Duracion)
            //    .MustAsync(async (ser, x, context) =>
            //    {
            //        double result = ser.Duracion.TotalHours;
            //        //var result = Convert.ToDecimal(ser.Duracion.TotalHours);
            //        if (result <= 0.0)
            //        {
            //                return false;
            //        }
            //        else
            //        {
            //            return true;
            //        }
            //    })
            //    .WithMessage("LA DURACIÓN DEL SERVICIO DEBE SER MAYOR A CERO");

            RuleFor(ser => ser.IdTipoIva)
            .NotEqual(0)
            .WithMessage("SELECCIONE EL IVA");
            RuleFor(ser => ser.Descripcion)
            .NotEmpty()
            .WithMessage("INGRESE UNA DESCRIPCIÓN")
            .MaximumLength(300).WithMessage("MÁXIMO 300 CARACTERES");

            RuleFor(ser => ser.IEPS)
            .GreaterThan(0)
            .When(ser => ser.AplicaIEPS == true).WithMessage("EL IEPS DEBE SER MAYOR A CERO");
            //.GreaterThan(0).WithMessage("EL IEPS DEBE SER MAYOR A CERO");
            //.LessThan(0).WithMessage("kol");
        }