Beispiel #1
0
        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);
        }
Beispiel #2
0
        public async Task <TachoData> GetRangeForAssetPerSecondAsync(long assetId, DateTime from, DateTime to)
        {
            TachoData tachoData = await GetRangeForAssetAsync(assetId, from, to).ConfigureAwait(false);

            return(ToPerSecondIntervals(tachoData));
        }
Beispiel #3
0
        public TachoData GetRangeForAssetPerSecond(long assetId, DateTime from, DateTime to)
        {
            TachoData tachoData = GetRangeForAsset(assetId, from, to);

            return(ToPerSecondIntervals(tachoData));
        }