public Result RemovePrice(ProductPrice price) { if (!_prices.Contains(price)) { return(Fail($"Price With PriceType: {price.PriceType.Title} Not Found")); } if (price == Price) { return(Fail("Can Not Remove Default Price")); } _prices.Remove(price); return(Ok()); }
public Result ChangeDefaultPrice(ProductPrice price) { if (price == Price) { return(Ok()); } if (!_prices.Contains(price)) { return(Fail("Price Not Found")); } Price.UnmarkIsDefault(); price.MarkIsDefault(); return(Ok()); }
public Result <ProductPrice> AddPrice(PriceType priceType, Price price) { if (priceType == null) { throw new ArgumentNullException(nameof(priceType)); } if (price == null) { throw new ArgumentNullException(nameof(price)); } if (_prices.Exists(p => p.PriceType == priceType)) { return(Fail <ProductPrice>($"A Price With PriceType:{priceType.Title} Already Exists")); } var productPrice = new ProductPrice(this, priceType, price); _prices.Add(productPrice); return(Ok(productPrice)); }