private (Timestamp left, Timestamp right) GetTimeWindow(TimeRange range, List <VTTQs> data) { switch (range.Type) { case TimeType.Last: Timestamp?latest = data.Any(x => x.Count > 0) ? data.Where(x => x.Count > 0).Max(vtqs => vtqs.Last().T) : (Timestamp?)null; var now = Timestamp.Now.TruncateMilliseconds().AddSeconds(1); var right = latest.HasValue ? Timestamp.MaxOf(now, latest.Value) : now; var left = now - TimeRange.DurationFromTimeRange(range); return(left, right); case TimeType.Range: return(range.GetStart(), range.GetEnd()); default: throw new Exception("Unknown range type: " + range.Type); } }