protected override List <AnalyisTypeSummary> GetRowSummaries(CancellationToken cancellationToken, Dictionary <string, dynamic> row)
        {
            List <AnalyisTypeSummary> summaries = new List <AnalyisTypeSummary>();
            AnalyisTypeSummary        summary;

            if (base.Bands.Count == 0)
            {
                GroupBySet bandedKey = new GroupBySet();
                if (!base.Summary.TryGetValue(bandedKey, out summary))
                {
                    summary = new AnalyisTypeSummary(null);
                    base.Summary.Add(bandedKey, summary);
                }
                summaries.Add(summary);
                return(summaries);
            }
            foreach (KeyValuePair <string, BaseBand> field in base.Bands)
            {
                List <GroupBySet> bandedKeys = new List <GroupBySet>();
                bandedKeys.Add(new GroupBySet());
                field.Value.AddBandToSet(cancellationToken, bandedKeys, field.Key, row);
                foreach (GroupBySet bandedKey in bandedKeys)
                {
                    if (!base.Summary.TryGetValue(bandedKey, out summary))
                    {
                        summary = new AnalyisTypeSummary(null);
                        base.Summary.Add(bandedKey, summary);
                    }
                    summaries.Add(summary);
                }
            }
            return(summaries);
        }
        protected override List <AnalyisTypeSummary> GetRowSummaries(CancellationToken cancellationToken, Dictionary <string, dynamic> row)
        {
            AnalyisTypeSummary summary;
            GroupBySet         bandedKey = new GroupBySet();

            if (!base.Summary.TryGetValue(bandedKey, out summary))
            {
                summary = new AnalyisTypeSummary(null);
                base.Summary.Add(bandedKey, summary);
            }
            return(new List <AnalyisTypeSummary>()
            {
                summary
            });
        }
Esempio n. 3
0
        private void StoreBandKeyAsArrayItem(ILambdaContext context, string cacheReportName, int reportId, string cacheKey, AnalyisTypeSummary summary)
        {
            context.Logger.Log($"trying to increment: {cacheKey}_Count");
            ulong currentIndex = this.memcachedClient.Increment($"{cacheKey}_Count", 0, 1, this.expiration);

            if (currentIndex == 0)
            {
                TrackCacheKey(cacheReportName, $"{cacheKey}_Count");
            }
            context.Logger.Log($"trying to store: {cacheKey}{currentIndex}");
            bool stored = memcachedClient.Store(StoreMode.Set, $"{cacheKey}{currentIndex}", summary, this.expiration);

            if (!stored)
            {
                context.Logger.Log($"trying to store: StoreBandKeyAsArrayItem");
                throw new Exception("failed to set value in ElastiCache");
            }
            this.TrackCacheKey(cacheReportName, $"{cacheKey}{currentIndex}");
        }