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(); }
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(); }
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(); }
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)); }