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()); }
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); }