ContactValidator.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using Quadarax.Application.QLiberace.Base.Repositories;
  2. using Quadarax.Application.QLiberace.Customer.Enums;
  3. using Quadarax.Foundation.Core.Value;
  4. using Quadarax.Foundation.Core.Value.Extensions;
  5. namespace Quadarax.Application.QLiberace.Customer.Dtos.Validators
  6. {
  7. public class ContactValidator : Validator<ContactWDto>
  8. {
  9. protected override void OnValidate(ContactWDto validatingObject, ValidatorContext context)
  10. {
  11. CheckIfEmpty("Address", validatingObject.Address, ValidationResult.ValidationSeverityEnum.Error);
  12. CheckIfStringMaxLengthOverflow("Address", validatingObject.Address, 100,
  13. ValidationResult.ValidationSeverityEnum.Error);
  14. CheckIfStringMaxLengthOverflow("Address1", validatingObject.Address1, 100,
  15. ValidationResult.ValidationSeverityEnum.Error);
  16. CheckIfEmpty("Caption", validatingObject.Caption, ValidationResult.ValidationSeverityEnum.Error);
  17. CheckIfStringMaxLengthOverflow("Caption", validatingObject.Caption, 100,
  18. ValidationResult.ValidationSeverityEnum.Error);
  19. if (validatingObject.Type == ContactTypeEnum.Address)
  20. {
  21. CheckIfEmpty("City", validatingObject.City, ValidationResult.ValidationSeverityEnum.Error);
  22. CheckIfStringMaxLengthOverflow("City", validatingObject.City, 50,
  23. ValidationResult.ValidationSeverityEnum.Error);
  24. CheckIfEmpty("Zip", validatingObject.Zip, ValidationResult.ValidationSeverityEnum.Error);
  25. CheckIfStringMaxLengthOverflow("Zip", validatingObject.Zip, 20,
  26. ValidationResult.ValidationSeverityEnum.Error);
  27. }
  28. if (validatingObject.Type.In(ContactTypeEnum.Address, ContactTypeEnum.Phone, ContactTypeEnum.Sms))
  29. {
  30. CheckIfEmpty("CountryCode", validatingObject.CountryCode, ValidationResult.ValidationSeverityEnum.Error);
  31. CheckIfStringMaxLengthOverflow("CountryCode", validatingObject.CountryCode, 100,
  32. ValidationResult.ValidationSeverityEnum.Error);
  33. if (!string.IsNullOrEmpty(validatingObject.CountryCode))
  34. {
  35. var rcurr = context.GetValue<RepoCountry>("RepoCountry");
  36. CheckIfNull("CountryCode", rcurr.GetByCode(validatingObject.CountryCode),
  37. ValidationResult.ValidationSeverityEnum.Error,
  38. $"Contact CountryCode not match country code '{validatingObject.CountryCode}' with enumeration");
  39. }
  40. }
  41. }
  42. }
  43. }