CraftMaterialValidator.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using FluentValidation;
  2. using GreenTree.Strohrmann.ERP.Domain.Model;
  3. using GreenTree.Strohrmann.ERP.Web.Models.Business;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Threading.Tasks;
  8. namespace GreenTree.Strohrmann.ERP.Web.Validators
  9. {
  10. public class CraftMaterialValidator : AbstractValidator<KeyValuePair<string, CraftMaterialModel>>
  11. {
  12. #region DI fields
  13. // The global DbContext
  14. private readonly ERPDbContext _eRPDbContext;
  15. #endregion
  16. #region Ctor
  17. /// <summary>
  18. /// Initializes a new instance of the CraftMaterialValidator class
  19. /// </summary>
  20. /// <param name="eRPDbContext">Global DbContext.</param>
  21. public CraftMaterialValidator(
  22. ERPDbContext eRPDbContext)
  23. {
  24. _eRPDbContext = eRPDbContext;
  25. RuleFor(m => m.Value)
  26. .Custom((val, ctx) =>
  27. {
  28. if (val.MaterialId == 0)
  29. ctx.AddFailure("MaterialId", "Ein Material muss gewählt werden.");
  30. if (val.Amount <= 0)
  31. ctx.AddFailure(
  32. String.Format("CraftMaterials[{0}].Amount", val.DictIdentifier), "'Menge' muss größer als 0 sein.");
  33. if (val.CalculationFactor <= 0)
  34. ctx.AddFailure(
  35. String.Format("CraftMaterials[{0}].CalculationFactor", val.DictIdentifier), "'Kalkulationsfaktor' muss größer als 0 sein.");
  36. if (val.Value <= 0)
  37. ctx.AddFailure(
  38. String.Format("CraftMaterials[{0}].Value", val.DictIdentifier), "'Wert' muss größer als 0 sein.");
  39. });
  40. }
  41. #endregion
  42. }
  43. }