Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }