public async Task StoreTimeSeriesValuesAsync(IEnumerable <ITimeSeriesValue> timeSeriesEvents, int ArtistWorkId, TimeSeries timeSeries, int artistId)
        {
            var entity =
                new TimeSeriesValueEntity()
            {
                ArtistWorkId = ArtistWorkId, ArtistId = artistId, TimeSeries = timeSeries, TimeSeriesValues = timeSeriesEvents, TimeSeriesTotal = timeSeriesEvents.Sum(x => x.Value)
            };
            var operation = TableOperation.InsertOrReplace(entity);

            await _cacheTable.ExecuteAsync(operation);
        }
        public async Task <IEnumerable <ITimeSeriesValue> > FetchTimeSeriesValuesAsync(int artistWorkId, TimeSeries timeSeries)
        {
            var operation  = TableOperation.Retrieve <TimeSeriesValueEntity>(artistWorkId.ToString(), timeSeries.ToString());
            var execResult = await _cacheTable.ExecuteAsync(operation);

            TimeSeriesValueEntity  entityResult = (TimeSeriesValueEntity)execResult.Result;
            List <TimeSeriesValue> seriesValues = new List <TimeSeriesValue>();

            foreach (var item in entityResult.TimeSeriesValues)
            {
                seriesValues.Add(new TimeSeriesValue()
                {
                    Timestamp = item.Timestamp, Value = item.Value
                });
            }
            return(seriesValues);
        }
Example #3
0
        public async Task <IAggregatedEvent> FetchTimeSeriesAggregatedEventAsync(int artistId, TimeSeries timeSeries)
        {
            var operation = TableOperation.Retrieve <TimeSeriesValueEntity>(artistId.ToString(), timeSeries.ToString());
            TimeSeriesValueEntity entity          = (TimeSeriesValueEntity)(await _cacheTable.ExecuteAsync(operation)).Result;
            AggregatedEvent       aggregatedEvent = new AggregatedEvent()
            {
                AggregatedEventSum    = entity.TimeSeriesTotal,
                AggregationTimeSeries = entity.TimeSeries,
                Id = entity.ArtistId,
                AggregatedEventSumSource = entity.TimeSeriesValues.Select(x => new AggregatedEventSource()
                {
                    Timestamp = x.Timestamp, Value = x.Value
                })
            };

            return(aggregatedEvent);
        }