예제 #1
0
        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());
        }
예제 #2
0
        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());
        }
예제 #3
0
        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));
        }