public MaterialBusiness( IMaterialDataAccess materialDataAccess, IMapper mapper, IValidator <MaterialApiModel> validator) { _materialDataAccess = materialDataAccess; _mapper = mapper; _validator = validator; }
public MaterialValidation( IUnitDataAccess unitDataAccess, IMaterialDataAccess materialDataAccess) { _unitDataAccess = unitDataAccess; _materialDataAccess = materialDataAccess; RuleSet(string.Join(",", Enum.GetName(typeof(MaterialRuleSet), MaterialRuleSet.Create), Enum.GetName(typeof(MaterialRuleSet), MaterialRuleSet.Update)), () => { RuleFor(material => material.Name).NotNull().NotEmpty().WithMessage($"{NameName} da {entityName} não pode estar vazio"); RuleFor(material => material.Name).Length(NameMin, NameMax).WithMessage($"{NameName} da {entityName} precisa ter entre {NameMin} e {NameMax} caracteres"); When(material => !string.IsNullOrEmpty(material.Brand), () => { RuleFor(material => material.Brand).Length(BrandMin, BrandMax).WithMessage($"{BrandName} da {entityName} precisa ter entre {BrandMin} e {BrandMax} caracteres"); }); RuleFor(material => material.Price).GreaterThan(0).WithMessage($"{PriceName} da {entityName} precisa ser diferente de zero e positivo"); RuleFor(material => material.Quantity).GreaterThan(0).WithMessage($"{QuantityName} da {entityName} precisa ser diferente de zero e positivo"); RuleFor(material => material.IdUnit).GreaterThan(0).WithMessage($"{IdUnitName} da {entityName} não pode estar vazio"); RuleFor(material => material.IdUnit).Must(IdUnitAlreadyExists).WithMessage($"{IdUnitName} da {entityName} não existe"); When(material => !string.IsNullOrEmpty(material.Note), () => { RuleFor(material => material.Brand).Length(NoteMin, NoteMax).WithMessage($"{NoteName} da {entityName} precisa ter entre {BrandMin} e {BrandMax} caracteres"); }); }); RuleSet(string.Join(",", Enum.GetName(typeof(MaterialRuleSet), MaterialRuleSet.Delete), Enum.GetName(typeof(MaterialRuleSet), MaterialRuleSet.Update)), () => { RuleFor(material => material.Id).GreaterThan(0).WithMessage($"{IdName} da {entityName} não pode estar vazio"); RuleFor(material => material.Id).Must(IdAlreadyExists).WithMessage($"{IdName} da {entityName} não existe"); }); }