AppendixDataModelValidator.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using Autofac;
  2. using FluentValidation;
  3. using GreenTree.Nachtragsmanagement.Core;
  4. using GreenTree.Nachtragsmanagement.Services.Appendix;
  5. using GreenTree.Nachtragsmanagement.Services.Site;
  6. using GreenTree.Nachtragsmanagement.Web.Models.Appendix;
  7. using GreenTree.Nachtragsmanagement.Web.Models.Deviation;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Web;
  12. namespace GreenTree.Nachtragsmanagement.Web.Validation.Appendix
  13. {
  14. public class AppendixDataModelValidator : AbstractValidator<AppendixDataModel>
  15. {
  16. public AppendixDataModelValidator()
  17. {
  18. var siteService = Singleton<IContainer>.Instance.Resolve<ISiteService>();
  19. RuleFor(m => m.CustomNumber)
  20. .NotEmpty()
  21. .WithMessage("Nummer wird benötigt")
  22. .MaximumLength(10)
  23. .WithMessage("Muss unter 10 Zeichen sein");
  24. RuleFor(m => m)
  25. .Must(a1 => a1.SiteId.HasValue &&
  26. !siteService.GetSiteById(a1.SiteId.Value).Appendices
  27. .Select(a2 => a2.CustomNumber)
  28. .Contains(a1.CustomNumber))
  29. .WithMessage("Nachtragsnummer in Baustelle bereits vorhanden.");
  30. RuleFor(m => m.Description)
  31. .NotEmpty()
  32. .WithMessage("Beschreibung wird benötigt");
  33. RuleFor(m => m.OfferingDate)
  34. .NotEmpty()
  35. .WithMessage("Einreichdatum wird benötigt");
  36. RuleFor(m => m.OfferingValue)
  37. .NotEmpty()
  38. .WithMessage("Eine Angebotssumme wird benötigt");
  39. }
  40. }
  41. }