领域驱动设计案例之业务实现2

这篇文章主要介绍如何创建产品信息。ModifyCount主要的作用是订单项成功后,相应的产品库存应该减少,库存减少由Product进行维护。

public partial class Product:AggreateRoot
    {
        private IRepository<Product> irepository;
        public Product(IRepository<Product> irepository)
        {
            this.irepository = irepository;
        }
        public Product()
        { }

        public void CreateProduct(string name,string color,string size,int count,
            decimal unitprice,string categoryname,string description)
        {
            var product = new Product();
            product.Id = base.Id;
            product.ProductName = name;
            product.Color = color;
            product.Size = size;
            product.Count = count;
            product.UnitPrice = unitprice;
            var productcategory = new ProductCategory(categoryname,description);
            product.ProductCategory = productcategory;
            irepository.Create(product);

        }

        public void ModifyCount(Product p,int amount,IRepository<Product> irepository)
        {
            p.Count = this.Count - amount;
            irepository.Update(p);
        }

        public Product GetProducyByName(string productname)
        {
            return irepository.GetByCondition(p => p.ProductName == productname)
                .FirstOrDefault();
        }
    }
 public partial class ProductCategory:ValueObject
    {
        public ProductCategory(string categoryname,string description)
        {
            this.Id = base.Id;
            this.CategoryName = categoryname;
            this.Description = description;
        }
    }

 欢迎加入QQ讨论群:309287205

原文地址:https://www.cnblogs.com/malaoko/p/5050116.html