public void SetConditioning(ConditioningKind conditioning, decimal quantity, UnitKind unit = UnitKind.NotSpecified) { if (conditioning == ConditioningKind.Not_Specified) { throw SheaftException.Validation("Le conditionnement est requis."); } if (conditioning != ConditioningKind.Bulk) { unit = UnitKind.NotSpecified; } if (conditioning == ConditioningKind.Bouquet || conditioning == ConditioningKind.Bunch) { quantity = 1; } if (quantity <= 0) { throw SheaftException.Validation("La quantité par conditionnement ne peut pas être inférieure à 0."); } if (conditioning == ConditioningKind.Bulk && unit == UnitKind.NotSpecified) { throw SheaftException.Validation("L'unité du type de conditionnement est requis."); } Conditioning = conditioning; QuantityPerUnit = quantity; Unit = unit; RefreshPrices(); }
public Product(Guid id, string reference, string name, ConditioningKind conditioning, UnitKind unit, decimal quantityPerUnit, Producer producer) { Id = id; Producer = producer ?? throw SheaftException.Validation("Le producteur du produit est requis."); ProducerId = producer.Id; SetName(name); SetReference(reference); SetConditioning(conditioning, quantityPerUnit, unit); Tags = new List <ProductTag>(); Ratings = new List <Rating>(); CatalogsPrices = new List <CatalogProduct>(); DomainEvents = new List <DomainEvent>(); VisibleTo = VisibleToKind.None; RefreshRatings(); RefreshPrices(); }