public override async Task <object> Handle(Query request, CancellationToken cancellationToken) { var alerts = await _alertsStorage.GetAlerts(request.UserId); var list = new List <object>(); foreach (var a in alerts.OrderByDescending(a => a.PricePoints.Any(p => _container.HasTriggered(p))).ThenBy(a => a.Ticker)) { if (a.PricePoints.Count == 0) { continue; } var price = await _stock.GetPrice(a.Ticker); list.Add(new { currentPrice = price.Success.Amount, ticker = a.State.Ticker.Value, points = a.State.PricePoints.Select(pp => new { pp.Id, pp.Value, pp.Description, triggered = _container.HasTriggered(pp) }), }); } return(list); }