public Product Convert(IProductEntity productEntity, OnObjectCreation onObjectCreation) { List <Tag> tags = new List <Tag>(); List <Stock> stocks = new List <Stock>(); //compose product Product product = new Product(productEntity.Id , productEntity.Name , productEntity.Price , productEntity.Sku, tags, stocks); // handle instantiated products. Needed by repository to prevent looping. onObjectCreation(product, productEntity); // gather child objects: tags foreach (ProductTagEntity productTagEntity in productEntity.ProductTagEntities) { Tag tag = repositoryFactory.TagsRepository.Get(productTagEntity.TagId); tags.Add(tag); } // gather child objects: stocks foreach (StockEntity stockEntity in productEntity.StockEntities) { Stock stock = repositoryFactory.StocksRepository.Get(stockEntity.Id); stocks.Add(stock); } return(product); }
public Tag Convert(ITagEntity tagEntity, OnObjectCreation onObjectCreation) { //compose Tag List <Product> products = new List <Product>(); Tag tag = domainFactory.CreateTag(tagEntity.Id , tagEntity.Name , products); // handle instantiated tags. Needed by repository to prevent looping. onObjectCreation(tag, tagEntity); // gather child objects: products foreach (ProductTagEntity productTagEntity in tagEntity.ProductTagEntities) { Product product = repositoryFactory.ProductsRepository.Get(productTagEntity.ProductId); products.Add(product); } return(tag); }