/// <inheritdoc/> public async Task <SalesItemDetails> AddItemToSaleAsync(SaleItemModel saleItem, CancellationToken cancellationToken) { // ToDo: Cache products. var product = await this.productService.GetProductByIdAsync(saleItem.ProductId, cancellationToken); return(await this.salesRepository.AddItemToSaleAsync( new SaleItem() { ProductId = saleItem.ProductId, Price = product.SalesPrice, Vat = 00.00m, Quantity = saleItem.Quantity, Total = saleItem.Quantity *product.SalesPrice, }, cancellationToken)); }
private static SaleItem ToEntity(Repository repository, IEnumerable <Product> products, SaleItemModel model) { if (!model.IsValid()) { return(null); } return(new SaleItem { Product = products.FirstOrDefault(it => it.Name == model.ProductName) ?? repository.Products.Add(new Product { Name = model.ProductName }), Quantity = decimal.Parse(model.Quantity), Price = decimal.Parse(model.Price), }); }