Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public ReducedBandKey(string reportName, int reportId, string reportGrouping, string product, string headOrOther, GroupBySet bandSet, string cEvent)
 {
     this.reportName     = reportName ?? throw new ArgumentNullException("reportName");
     this.reportGrouping = reportGrouping ?? throw new ArgumentNullException("reportGrouping");
     this.product        = product ?? throw new ArgumentNullException("product");
     this.headOrOther    = headOrOther ?? throw new ArgumentNullException("headOrOther");
     this.bandSet        = bandSet;
     this.cEvent         = cEvent;
     this.cacheKey       = Guid.NewGuid().ToString();
     this.reportId       = reportId;
 }
Ejemplo n.º 3
0
        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
            });
        }
Ejemplo n.º 4
0
        public void ProcessRecord(CancellationToken cancellationToken, bool isMetric, Dictionary <string, dynamic> row)
        {
            List <AnalyisTypeSummary> rowSummaries = GetRowSummaries(cancellationToken, row);

            object value;

            try
            {
                GroupBySet analysisTypeKey = new GroupBySet();

                foreach (string field in analysisTypeFields)
                {
                    if (row.TryGetValue(field, out value))
                    {
                        if (value != null)
                        {
                            analysisTypeKey.Add(new GroupBy(field, value.ToString(), false));
                        }
                        else
                        {
                            analysisTypeKey.Add(new GroupBy(field, string.Empty, false));
                        }
                    }
                }
                string year;
                if (!row.TryGetValue(AnnualSummary.YearEntryMeanColumn, out value))
                {
                    return;
                }
                year = value.ToString();
                // support lists of summaries
                List <ObservationValueCollection> observationsList = new List <ObservationValueCollection>();
                ObservationValueCollection        observations;
                AnnualSummary annualSummary;
                foreach (AnalyisTypeSummary summary in rowSummaries)
                {
                    if (!summary.TryGetValue(analysisTypeKey, out annualSummary))
                    {
                        annualSummary = new AnnualSummary(new Dictionary <string, ObservationValueCollection>());
                        summary.Add(analysisTypeKey, annualSummary);
                    }
                    if (!annualSummary.ObservationsByYear.TryGetValue(year, out observations))
                    {
                        observations = new ObservationValueCollection();
                        annualSummary.ObservationsByYear.Add(year, observations);
                    }
                    observationsList.Add(observations);
                }

                const string observationRefCd      = "observationRefCd";
                const string entryMean             = "entryMean";
                const string testMean              = "testMean";
                const string metricToEnglishFactor = "metricToEnglishFactor";

                string  observation;
                dynamic conversionFactor;
                dynamic testMeanValue;
                if (row.TryGetValue(observationRefCd, out value))
                {
                    observation = value.ToString();
                    if (row.TryGetValue(entryMean, out value) &&
                        row.TryGetValue(metricToEnglishFactor, out conversionFactor) &&
                        row.TryGetValue(testMean, out testMeanValue))
                    {
                        foreach (ObservationValueCollection observationsListItem in observationsList)
                        {
                            if (isMetric)
                            {
                                observationsListItem.AddObservation(observation, (double)value, (double)testMeanValue);
                            }
                            else
                            {
                                observationsListItem.AddObservation(observation, (double)value * (double)conversionFactor, (double)testMeanValue * (double)conversionFactor);
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }