Ejemplo n.º 1
0
        public async Task <StockDTO> CreateStockAsync(string title, IEnumerable <ProductDTO> products, CancellationToken cancellationToken = default)
        {
            var domainProducts = new List <Product>();

            // convert product dto list into domain product list
            products.ToList().ForEach(p => domainProducts.Add(p.Assemble()));

            // create a new stock
            var stock = new Domain.Stocks.Stock(title, domainProducts);

            await _stockRepository.AddAsync(stock, cancellationToken);

            await _stockRepository.SaveChangesAsync(cancellationToken);

            return(stock.Assemble());
        }
Ejemplo n.º 2
0
        public static StockDTO Assemble(this Domain.Stocks.Stock stock)
        {
            if (stock == null)
            {
                throw new ArgumentNullException(nameof(stock));
            }

            var dto = new StockDTO
            {
                Id        = stock.Id,
                Title     = stock.Title,
                CreatedAt = stock.CreatedAt,
                UpdatedAt = stock.UpdatedAt
            };

            stock.Products.ToList().ForEach(p => dto.Products.Add(p.Assemble()));

            return(dto);
        }