Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

42 рядки
1.1KB

  1. using CartWise.Domain.Enums;
  2. namespace CartWise.Domain.Entities;
  3. public class ProductIdentifier
  4. {
  5. public Guid ProductIdentifierId { get; private set; }
  6. public Guid ProductId { get; private set; }
  7. public ProductIdentifierType IdentifierType { get; private set; }
  8. public string Value { get; private set; } = null!;
  9. public string NormalizedValue { get; private set; } = null!;
  10. private ProductIdentifier()
  11. {
  12. }
  13. internal ProductIdentifier(Guid productId, ProductIdentifierType identifierType, string value)
  14. {
  15. if (productId == Guid.Empty)
  16. {
  17. throw new ArgumentException("ProductId is required.", nameof(productId));
  18. }
  19. if (string.IsNullOrWhiteSpace(value))
  20. {
  21. throw new ArgumentException("Identifier value is required.", nameof(value));
  22. }
  23. ProductIdentifierId = Guid.NewGuid();
  24. ProductId = productId;
  25. IdentifierType = identifierType;
  26. Value = value.Trim();
  27. NormalizedValue = Normalize(value);
  28. }
  29. public static string Normalize(string value) => value.Trim().ToUpperInvariant();
  30. }

Powered by TurnKey Linux.