private static TachoData ToPerSecondIntervals(TachoData inData) { if (inData == null) { return(null); } TachoData outData = new TachoData() { ParameterDefinitions = inData.ParameterDefinitions }; if (inData.Intervals != null) { outData.Intervals = new List <TachoInterval>(); if (inData.Intervals.Count > 0) { TachoInterval lastInterval = null; foreach (TachoInterval interval in inData.Intervals.OrderBy(o => o.IntervalDateTime)) { if (lastInterval != null) { while (lastInterval.IntervalDateTime < interval.IntervalDateTime.AddSeconds(-1)) { lastInterval.IntervalDateTime = lastInterval.IntervalDateTime.AddSeconds(1); outData.Intervals.Add(new TachoInterval() { Data = lastInterval.Data, IntervalDateTime = lastInterval.IntervalDateTime }); } } outData.Intervals.Add(new TachoInterval() { Data = interval.Data, IntervalDateTime = interval.IntervalDateTime }); lastInterval = new TachoInterval() { Data = interval.Data, IntervalDateTime = interval.IntervalDateTime }; } } } return(outData); }
public async Task <TachoData> GetRangeForAssetPerSecondAsync(long assetId, DateTime from, DateTime to) { TachoData tachoData = await GetRangeForAssetAsync(assetId, from, to).ConfigureAwait(false); return(ToPerSecondIntervals(tachoData)); }
public TachoData GetRangeForAssetPerSecond(long assetId, DateTime from, DateTime to) { TachoData tachoData = GetRangeForAsset(assetId, from, to); return(ToPerSecondIntervals(tachoData)); }