void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WritePropertyName("criterionType");
     writer.WriteStringValue(CriterionType.ToString());
     writer.WritePropertyName("name");
     writer.WriteStringValue(Name);
     writer.WritePropertyName("metricName");
     writer.WriteStringValue(MetricName);
     if (Optional.IsDefined(MetricNamespace))
     {
         writer.WritePropertyName("metricNamespace");
         writer.WriteStringValue(MetricNamespace);
     }
     writer.WritePropertyName("timeAggregation");
     writer.WriteStringValue(TimeAggregation.ToSerialString());
     if (Optional.IsCollectionDefined(Dimensions))
     {
         writer.WritePropertyName("dimensions");
         writer.WriteStartArray();
         foreach (var item in Dimensions)
         {
             writer.WriteObjectValue(item);
         }
         writer.WriteEndArray();
     }
     foreach (var item in AdditionalProperties)
     {
         writer.WritePropertyName(item.Key);
         writer.WriteObjectValue(item.Value);
     }
     writer.WriteEndObject();
 }
Exemple #2
0
        private string TimeWindowGrouping(DateTime date, TimeAggregation timeAggregation)
        {
            if (timeAggregation == TimeAggregation.Day)
            {
                return(date.ToShortDateString());
            }

            return($"Week {date.GetWeekNumber()}");
        }
        void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
        {
            writer.WriteStartObject();
            writer.WritePropertyName("operator");
            writer.WriteStringValue(Operator.ToString());
            writer.WritePropertyName("alertSensitivity");
            writer.WriteStringValue(AlertSensitivity.ToString());
            writer.WritePropertyName("failingPeriods");
            writer.WriteObjectValue(FailingPeriods);
            if (Optional.IsDefined(IgnoreDataBefore))
            {
                writer.WritePropertyName("ignoreDataBefore");
                writer.WriteStringValue(IgnoreDataBefore.Value, "O");
            }
            writer.WritePropertyName("criterionType");
            writer.WriteStringValue(CriterionType.ToString());
            writer.WritePropertyName("name");
            writer.WriteStringValue(Name);
            writer.WritePropertyName("metricName");
            writer.WriteStringValue(MetricName);
            if (Optional.IsDefined(MetricNamespace))
            {
                writer.WritePropertyName("metricNamespace");
                writer.WriteStringValue(MetricNamespace);
            }
            writer.WritePropertyName("timeAggregation");
            writer.WriteStringValue(TimeAggregation.ToString());
            if (Optional.IsCollectionDefined(Dimensions))
            {
                writer.WritePropertyName("dimensions");
                writer.WriteStartArray();
                foreach (var item in Dimensions)
                {
                    writer.WriteObjectValue(item);
                }
                writer.WriteEndArray();
            }
            if (Optional.IsDefined(SkipMetricValidation))
            {
                writer.WritePropertyName("skipMetricValidation");
                writer.WriteBooleanValue(SkipMetricValidation.Value);
            }
            foreach (var item in AdditionalProperties)
            {
                writer.WritePropertyName(item.Key);
#if NET6_0_OR_GREATER
                writer.WriteRawValue(item.Value);
#else
                JsonSerializer.Serialize(writer, JsonDocument.Parse(item.Value.ToString()).RootElement);
#endif
            }
            writer.WriteEndObject();
        }
Exemple #4
0
 void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WritePropertyName("metricName");
     writer.WriteStringValue(MetricName);
     if (Optional.IsDefined(MetricNamespace))
     {
         writer.WritePropertyName("metricNamespace");
         writer.WriteStringValue(MetricNamespace);
     }
     writer.WritePropertyName("metricResourceUri");
     writer.WriteStringValue(MetricResourceId);
     if (Optional.IsDefined(MetricResourceLocation))
     {
         writer.WritePropertyName("metricResourceLocation");
         writer.WriteStringValue(MetricResourceLocation);
     }
     writer.WritePropertyName("timeGrain");
     writer.WriteStringValue(TimeGrain, "P");
     writer.WritePropertyName("statistic");
     writer.WriteStringValue(Statistic.ToSerialString());
     writer.WritePropertyName("timeWindow");
     writer.WriteStringValue(TimeWindow, "P");
     writer.WritePropertyName("timeAggregation");
     writer.WriteStringValue(TimeAggregation.ToSerialString());
     writer.WritePropertyName("operator");
     writer.WriteStringValue(Operator.ToSerialString());
     writer.WritePropertyName("threshold");
     writer.WriteNumberValue(Threshold);
     if (Optional.IsCollectionDefined(Dimensions))
     {
         if (Dimensions != null)
         {
             writer.WritePropertyName("dimensions");
             writer.WriteStartArray();
             foreach (var item in Dimensions)
             {
                 writer.WriteObjectValue(item);
             }
             writer.WriteEndArray();
         }
         else
         {
             writer.WriteNull("dimensions");
         }
     }
     if (Optional.IsDefined(DividePerInstance))
     {
         writer.WritePropertyName("dividePerInstance");
         writer.WriteBooleanValue(DividePerInstance.Value);
     }
     writer.WriteEndObject();
 }
 void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WritePropertyName("operator");
     writer.WriteStringValue(Operator.ToString());
     writer.WritePropertyName("alertSensitivity");
     writer.WriteStringValue(AlertSensitivity.ToString());
     writer.WritePropertyName("failingPeriods");
     writer.WriteObjectValue(FailingPeriods);
     if (Optional.IsDefined(IgnoreDataBefore))
     {
         writer.WritePropertyName("ignoreDataBefore");
         writer.WriteStringValue(IgnoreDataBefore.Value, "O");
     }
     writer.WritePropertyName("criterionType");
     writer.WriteStringValue(CriterionType.ToString());
     writer.WritePropertyName("name");
     writer.WriteStringValue(Name);
     writer.WritePropertyName("metricName");
     writer.WriteStringValue(MetricName);
     if (Optional.IsDefined(MetricNamespace))
     {
         writer.WritePropertyName("metricNamespace");
         writer.WriteStringValue(MetricNamespace);
     }
     writer.WritePropertyName("timeAggregation");
     writer.WriteStringValue(TimeAggregation.ToSerialString());
     if (Optional.IsCollectionDefined(Dimensions))
     {
         writer.WritePropertyName("dimensions");
         writer.WriteStartArray();
         foreach (var item in Dimensions)
         {
             writer.WriteObjectValue(item);
         }
         writer.WriteEndArray();
     }
     foreach (var item in AdditionalProperties)
     {
         writer.WritePropertyName(item.Key);
         writer.WriteObjectValue(item.Value);
     }
     writer.WriteEndObject();
 }
Exemple #6
0
        public AnalysisReport GetAggregation(
            DateTimeOffset @from,
            DateTimeOffset to,
            TimeAggregation timeAggregation,
            SelectedSeries[] selectedSeries)
        {
            var dbCaseEntry = _dbHandler.GetQueryable <CaseReport>()
                              .Where(x => x.Timestamp >= from && x.Timestamp < to)
                              .ToList();

            var groups = dbCaseEntry.OrderBy(x => x.Timestamp.Date).GroupBy(x => TimeWindowGrouping(x.Timestamp.Date, timeAggregation));

            var report = new AnalysisReport
            {
                From            = @from,
                To              = to,
                TimeAggregation = timeAggregation,
                Categories      = groups.Select(x => x.Key).ToArray(),
                Series          = GetSeries(groups, selectedSeries),
            };

            return(report);
        }
 public AnalysisReport Get(DateTimeOffset from, DateTimeOffset to, TimeAggregation timeAggregation, [FromQuery] SelectedSeries[] selectedSeries)
 {
     return(_analysisService.GetAggregation(from, to, timeAggregation, selectedSeries));
 }
 public Epicurve Get(DateTimeOffset from, DateTimeOffset to, TimeAggregation timeAggregation, [FromQuery] SelectedSeries[] selectedSeries)
 {
     return(_epicurveService.GetAggregation(from, to, timeAggregation, selectedSeries));
 }