示例#1
0
        public async Task <TelemetryInfoTable> GetPivotTableData(TelemetryItemTypes type, Guid telemetryKey, DateTime startDate, DateTime endDate)
        {
            List <RawTelemetryUnit> rows = (await this.GetRawData(telemetryKey, type, startDate, endDate)).ToList();

            TelemetryInfoTableHeader header = new TelemetryInfoTableHeader();

            return(new TelemetryInfoTable {
                Header = header, Rows = rows.Select(x => new TelemetryPivotTableRow(x)).ToList()
            });
        }
示例#2
0
        public void ValidateExpandoObject()
        {
            TelemetryInfoTableHeader header = new TelemetryInfoTableHeader();

            header.Date = new TelemetryInfoHeaderItem()
            {
                type = "datetime"
            };
            header.ComponentName = new TelemetryInfoHeaderItem();


            var serialized = JsonConvert.SerializeObject(header);
        }
示例#3
0
        public async Task <TelemetryInfoTable> GetPivotTableData(TelemetryItemTypes type, Guid telemetryKey)
        {
            Program program = await this.portalContext.Programs.FirstOrDefaultAsync(x => x.TelemetryKey == telemetryKey).ConfigureAwait(false);

            if (program == null)
            {
                throw new ArgumentException($"Program with key {telemetryKey} does not exist");
            }

            List <TelemetryDetail>        details = program.GetTelemetryDetails(this.telemetryContext, type).ToList();
            List <TelemetryPivotTableRow> rows    = new List <TelemetryPivotTableRow>();

            foreach (TelemetryDetail detail in details)
            {
                List <TelemetryUnit> units = detail.GetTelemetryUnits().ToList();
                if (units.Any())
                {
                    foreach (TelemetryUnit detailTelemetryUnit in units.Where(x => x.UnitType == TelemetryUnit.UnitTypes.Property))
                    {
                        TelemetryPivotTableRow row = new TelemetryPivotTableRow(detail)
                        {
                            PropertyValue = detailTelemetryUnit.ValueString,
                            Key           = detailTelemetryUnit.Key,
                        };
                        rows.Add(row);
                    }
                    foreach (TelemetryUnit detailTelemetryUnit in units.Where(x => x.UnitType == TelemetryUnit.UnitTypes.Metric))
                    {
                        TelemetryPivotTableRow row = new TelemetryPivotTableRow(detail)
                        {
                            MetricValue = detailTelemetryUnit.ValueDouble,
                            Key         = detailTelemetryUnit.Key,
                        };
                        rows.Add(row);
                    }
                }
                else
                {
                    TelemetryPivotTableRow row = new TelemetryPivotTableRow(detail);
                    rows.Add(row);
                }
            }

            TelemetryInfoTableHeader header = new TelemetryInfoTableHeader();

            return(new TelemetryInfoTable {
                Header = header, Rows = rows
            });
        }