public virtual async Task <ComposedValue> GetComposedValueAsync(string parameter, CancellationToken cancellationToken) { var chatTail = await _chat.GetChatTailAsync(1, cancellationToken).ConfigureAwait(false); var time = await _time.GetTimeAsync(cancellationToken).ConfigureAwait(false); var lastChatMessage = chatTail.Messages.SingleOrDefault()?.Text ?? "(no messages)"; var activeUserCount = await _chat.GetActiveUserCountAsync(cancellationToken).ConfigureAwait(false); return(new ComposedValue($"{parameter} - local", time, lastChatMessage, activeUserCount)); }