private async Task <OrderDetailDTO> BuildOrderDetailAsync(Order order) { var orderQuantity = order.OrderItems.Sum(a => a.Quantity); var orderPrice = CalculateAveragePrice(order.OrderItems.ToList()); var currentPrice = await _exchangeIntegrationStrategyContext.GetCurrentPriceAsync( order.BaseAsset.Symbol, order.QuoteAsset.Symbol, order.Exchange.ExchangeType); var valuePaidWithFees = orderPrice * orderQuantity; var valueSoldWithFees = currentPrice * orderQuantity; return(new OrderDetailDTO() { Id = order.Id, Date = order.Date, ExchangeName = order.Exchange.Name, BaseAssetSymbol = order.BaseAsset.Symbol, QuoteAssetSymbol = order.QuoteAsset.Symbol, Quantity = orderQuantity, AvgPrice = orderPrice, ValuePaidWithFees = valuePaidWithFees, ValueSoldWithFees = valueSoldWithFees, CurrentPrice = currentPrice, Profit = valueSoldWithFees - valuePaidWithFees }); }