public static bool RegisterScopeIsValid(this OrderItem item, Product product) { return IsSatisfiedBy ( AssertIsGreaterThan(item.Price, 0, "Preço inválido"), AssertNotNull(item.ProductId, "Produto inválido"), AssertIsGreaterThan(item.Quantity, 0, "Quantidade inválida") ); }
public Product Register(Product product) { product.RegisterIsValid(); _productRepository.Register(product); Commit(); return product; }
public static bool AddProductScopeIsValid(this OrderItem item, Product product, int quantity, decimal price) { return IsSatisfiedBy( AssertNotNull(product, "O produto é obrigatório") ) && IsSatisfiedBy( AssertIsGreaterThan(quantity, 0, $"A quantidade do produto {product.Description} deve ser maior que zero."), AssertIsGreaterThan(price, 0, $"O preço do produto {product.Description} deve ser maior que zero."), AssertIsGreaterOrEqualThan((product.QuantityOnHand - quantity), 0, "Produto fora de estoque: " + product.Description) ); }
public StockMovement(Product product, int amount, decimal price, string userId, MovementType movementType) { Id = Guid.NewGuid().ToString(); Price = price; UserId = userId; Amount = amount; Product = product; Date = DateTime.Now; Status = MovementStatus.Created; TypeOfMovement = movementType; }
public void AddProduct(Product product, int quantity, decimal price) { if (!this.AddProductScopeIsValid(product, quantity, price)) return; Price = price; Quantity = quantity; Product = product; ProductId = product.Id; Product.UpdateQuantityOnHand(Product.QuantityOnHand - quantity); }
public void Register(Product product) { _context.Products.Add(product); }