in opbeans-dotnet/Controllers/StatsController.cs [16:46]
public ActionResult<Stat> Get()
{
var retVal = new Stat();
retVal.Orders = _dbDbContext.Orders.Count();
retVal.Products = _dbDbContext.Orders.Count();
retVal.Customers = _dbDbContext.Customers.Count();
retVal.Numbers = new Numbers();
retVal.Numbers.Revenue =
_dbDbContext.OrderLines.Join(_dbDbContext.Products,
orderLine => orderLine.OrderId,
product => product.Id,
(order, product) => new {Order = order, Product = product})
.Sum(n => n.Order.Amount * n.Product.SellingPrice);
retVal.Numbers.Cost =
_dbDbContext.OrderLines.Join(_dbDbContext.Products,
orderLine => orderLine.OrderId,
product => product.Id,
(order, product) => new {Order = order, Product = product})
.Sum(n => n.Order.Amount * n.Product.Cost);
retVal.Numbers.Profit =
_dbDbContext.OrderLines.Join(_dbDbContext.Products,
orderLine => orderLine.OrderId,
product => product.Id,
(order, product) => new {Order = order, Product = product})
.Sum(n => n.Order.Amount * (n.Product.SellingPrice - n.Product.Cost));
return retVal;
}