/// <summary> Initializes a new instance of MetricFeedback. </summary> /// <param name="metricId"> metric unique id. </param> /// <param name="dimensionFilter"> . </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> is null. </exception> internal MetricFeedback(Guid metricId, FeedbackDimensionFilter dimensionFilter) { Argument.AssertNotNull(dimensionFilter, nameof(dimensionFilter)); MetricId = metricId; DimensionFilter = dimensionFilter; }
internal static MetricPeriodFeedback DeserializeMetricPeriodFeedback(JsonElement element) { Optional <PeriodFeedbackValue> value = default; FeedbackType feedbackType = default; Optional <string> feedbackId = default; Optional <DateTimeOffset> createdTime = default; Optional <string> userPrincipal = default; string metricId = default; FeedbackDimensionFilter dimensionFilter = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } value = PeriodFeedbackValue.DeserializePeriodFeedbackValue(property.Value); continue; } if (property.NameEquals("feedbackType")) { feedbackType = new FeedbackType(property.Value.GetString()); continue; } if (property.NameEquals("feedbackId")) { feedbackId = property.Value.GetString(); continue; } if (property.NameEquals("createdTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } createdTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("userPrincipal")) { userPrincipal = property.Value.GetString(); continue; } if (property.NameEquals("metricId")) { metricId = property.Value.GetString(); continue; } if (property.NameEquals("dimensionFilter")) { dimensionFilter = FeedbackDimensionFilter.DeserializeFeedbackDimensionFilter(property.Value); continue; } } return(new MetricPeriodFeedback(feedbackType, feedbackId.Value, Optional.ToNullable(createdTime), userPrincipal.Value, metricId, dimensionFilter, value.Value)); }
/// <summary> Initializes a new <see cref="MetricCommentFeedback"/> instance. </summary> /// <param name="metricId"> The metric unique id. </param> /// <param name="dimensionFilter"> The <see cref="FeedbackDimensionFilter"/> to apply to the feedback. </param> /// <param name="comment"> The comment content for the feedback. </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> or <paramref name="comment"/> is null. </exception> public MetricCommentFeedback(string metricId, FeedbackDimensionFilter dimensionFilter, string comment) : base(metricId, dimensionFilter) { Argument.AssertNotNullOrEmpty(comment, nameof(comment)); ValueInternal = new CommentFeedbackValue(comment); Type = FeedbackType.Comment; }
/// <summary> Initializes a new <see cref="MetricCommentFeedback"/> instance. </summary> /// <param name="metricId"> The metric unique id. </param> /// <param name="dimensionFilter"> The <see cref="FeedbackDimensionFilter"/> to apply to the feedback. </param> /// <param name="comment"> The comment content for the feedback. </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> or <paramref name="comment"/> is null. </exception> internal MetricCommentFeedback(string metricId, FeedbackDimensionFilter dimensionFilter, CommentFeedbackValue comment) : base(metricId, dimensionFilter) { Argument.AssertNotNullOrEmpty(comment?.CommentValue, nameof(comment.CommentValue)); ValueInternal = comment; Type = FeedbackType.Comment; }
/// <summary> Initializes a new <see cref="MetricPeriodFeedback"/> instance. </summary> /// <param name="metricId"> The metric unique id. </param> /// <param name="dimensionFilter"> The <see cref="FeedbackDimensionFilter"/> to apply to the feedback. </param> /// <param name="periodType"> The <see cref="Models.PeriodType"/>. </param> /// <param name="periodValue"> The period value. </param> /// <exception cref="ArgumentNullException"> <paramref name="metricId"/> or <paramref name="dimensionFilter"/> is null. </exception> /// <exception cref="ArgumentException"> <paramref name="metricId"/> is empty. </exception> public MetricPeriodFeedback(string metricId, FeedbackDimensionFilter dimensionFilter, PeriodType periodType, int periodValue) : base(metricId, dimensionFilter) { Argument.AssertNotNullOrEmpty(metricId, nameof(metricId)); Argument.AssertNotNull(dimensionFilter, nameof(dimensionFilter)); ValueInternal = new PeriodFeedbackValue(periodType, periodValue); Type = FeedbackType.Period; }
/// <summary> Initializes a new instance of MetricFeedback. </summary> /// <param name="metricId"> metric unique id. </param> /// <param name="dimensionFilter"> . </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> is null. </exception> internal MetricFeedback(string metricId, FeedbackDimensionFilter dimensionFilter) { Argument.AssertNotNullOrEmpty(metricId, nameof(metricId)); Argument.AssertNotNull(dimensionFilter, nameof(dimensionFilter)); MetricId = metricId; DimensionFilter = dimensionFilter; }
/// <summary> Initializes a new <see cref="MetricChangePointFeedback"/> instance. </summary> /// <param name="metricId"> The metric unique id. </param> /// <param name="dimensionFilter"> The dimension filter. </param> /// <param name="startTime"> The start timestamp of feedback timerange. </param> /// <param name="endTime"> The end timestamp of feedback timerange. When this is equal to <paramref name="startTime"/> it indicates a single timestamp. </param> /// <param name="value"> The <see cref="Models.ChangePointFeedbackValue"/> for the feedback. </param> internal MetricChangePointFeedback(string metricId, FeedbackDimensionFilter dimensionFilter, DateTimeOffset startTime, DateTimeOffset endTime, ChangePointFeedbackValue value) : base(metricId, dimensionFilter) { Argument.AssertNotNull(value, nameof(value)); StartTime = startTime; EndTime = endTime; ValueInternal = value; Type = Models.FeedbackType.ChangePoint; }
internal static MetricFeedback DeserializeMetricFeedback(JsonElement element) { if (element.TryGetProperty("feedbackType", out JsonElement discriminator)) { switch (discriminator.GetString()) { case "Anomaly": return(MetricAnomalyFeedback.DeserializeMetricAnomalyFeedback(element)); case "ChangePoint": return(MetricChangePointFeedback.DeserializeMetricChangePointFeedback(element)); case "Comment": return(MetricCommentFeedback.DeserializeMetricCommentFeedback(element)); case "Period": return(MetricPeriodFeedback.DeserializeMetricPeriodFeedback(element)); } } FeedbackType feedbackType = default; Optional <string> feedbackId = default; Optional <DateTimeOffset> createdTime = default; Optional <string> userPrincipal = default; string metricId = default; FeedbackDimensionFilter dimensionFilter = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("feedbackType")) { feedbackType = new FeedbackType(property.Value.GetString()); continue; } if (property.NameEquals("feedbackId")) { feedbackId = property.Value.GetString(); continue; } if (property.NameEquals("createdTime")) { createdTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("userPrincipal")) { userPrincipal = property.Value.GetString(); continue; } if (property.NameEquals("metricId")) { metricId = property.Value.GetString(); continue; } if (property.NameEquals("dimensionFilter")) { dimensionFilter = FeedbackDimensionFilter.DeserializeFeedbackDimensionFilter(property.Value); continue; } } return(new MetricFeedback(feedbackType, feedbackId.Value, Optional.ToNullable(createdTime), userPrincipal.Value, metricId, dimensionFilter)); }
internal MetricFeedback(FeedbackType type, string id, DateTimeOffset?createdTime, string userPrincipal, string metricId, FeedbackDimensionFilter dimensionFilter) { Type = type; Id = id; CreatedTime = createdTime; UserPrincipal = userPrincipal; MetricId = metricId; DimensionFilter = dimensionFilter; }
internal MetricFeedback(FeedbackType feedbackType, Guid?feedbackId, DateTimeOffset?createdTime, string userPrincipal, Guid metricId, FeedbackDimensionFilter dimensionFilter) { FeedbackType = feedbackType; FeedbackId = feedbackId; CreatedTime = createdTime; UserPrincipal = userPrincipal; MetricId = metricId; DimensionFilter = dimensionFilter; }
/// <summary> Initializes a new <see cref="MetricPeriodFeedback"/> instance. </summary> /// <param name="metricId"> The metric unique id. </param> /// <param name="dimensionFilter"> The <see cref="FeedbackDimensionFilter"/> to apply to the feedback. </param> /// <param name="value"> The <see cref="PeriodFeedbackValue"/> for the feedback. </param> /// <exception cref="ArgumentNullException"> <paramref name="metricId"/>, <paramref name="dimensionFilter"/>, or <paramref name="value"/> is null. </exception> /// <exception cref="ArgumentException"> <paramref name="metricId"/> is empty. </exception> public MetricPeriodFeedback(string metricId, FeedbackDimensionFilter dimensionFilter, PeriodFeedbackValue value) : base(metricId, dimensionFilter) { Argument.AssertNotNullOrEmpty(metricId, nameof(metricId)); Argument.AssertNotNull(dimensionFilter, nameof(dimensionFilter)); Argument.AssertNotNull(value, nameof(value)); ValueInternal = value; Type = FeedbackType.Period; }
/// <summary> Initializes a new instance of <see cref="MetricAnomalyFeedback"/>. </summary> /// <param name="metricId"> The metric unique id. </param> /// <param name="dimensionFilter"> The dimension filter. </param> /// <param name="startTime"> The start timestamp of feedback timerange. </param> /// <param name="endTime"> The end timestamp of feedback timerange. When this is equal to <paramref name="startTime"/> it indicates a single timestamp. </param> /// <param name="value"> The <see cref="AnomalyFeedbackValue"/> for the feedback. </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> or <paramref name="value"/> is null. </exception> internal MetricAnomalyFeedback(string metricId, FeedbackDimensionFilter dimensionFilter, DateTimeOffset startTime, DateTimeOffset endTime, AnomalyFeedbackValue value) : base(metricId, dimensionFilter) { if (value == null) { throw new ArgumentNullException(nameof(value)); } StartTime = startTime; EndTime = endTime; ValueInternal = value; Type = Models.FeedbackType.Anomaly; }
/// <summary> Initializes a new <see cref="MetricChangePointFeedback"/> instance. </summary> /// <param name="metricId"> The metric unique id. </param> /// <param name="dimensionFilter"> The dimension filter. </param> /// <param name="startTime"> The start timestamp of feedback timerange. </param> /// <param name="endTime"> The end timestamp of feedback timerange. When this is equal to <paramref name="startTime"/> it indicates a single timestamp. </param> /// <param name="value"> The <see cref="Models.ChangePointValue"/> for the feedback. </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> or <paramref name="value"/> is null. </exception> public MetricChangePointFeedback(string metricId, FeedbackDimensionFilter dimensionFilter, DateTimeOffset startTime, DateTimeOffset endTime, ChangePointValue value) : base(metricId, dimensionFilter) { if (value == default) { throw new ArgumentNullException(nameof(value)); } StartTime = startTime; EndTime = endTime; ValueInternal = new ChangePointFeedbackValue(value); Type = FeedbackType.ChangePoint; }
/// <summary> Initializes a new instance of <see cref="MetricAnomalyFeedback"/>. </summary> /// <param name="metricId"> The metric unique id. </param> /// <param name="dimensionFilter"> The dimension filter. </param> /// <param name="startTime"> The start timestamp of feedback timerange. </param> /// <param name="endTime"> The end timestamp of feedback timerange. When this is equal to <paramref name="startTime"/> it indicates a single timestamp. </param> /// <param name="value"> The <see cref="Models.AnomalyValue"/> for the feedback. </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> or <paramref name="value"/> is null. </exception> public MetricAnomalyFeedback(string metricId, FeedbackDimensionFilter dimensionFilter, DateTimeOffset startTime, DateTimeOffset endTime, AnomalyValue value) : base(metricId, dimensionFilter) { if (value == default) { throw new ArgumentNullException(nameof(value)); } DimensionFilter = dimensionFilter; StartTime = startTime; EndTime = endTime; ValueInternal = new AnomalyFeedbackValue(value); Type = FeedbackType.Anomaly; }
public PeriodFeedback(Guid metricId, FeedbackDimensionFilter dimensionFilter, PeriodFeedbackValue value) : base(metricId, dimensionFilter) { if (dimensionFilter == null) { throw new ArgumentNullException(nameof(dimensionFilter)); } if (value == null) { throw new ArgumentNullException(nameof(value)); } Value = value; FeedbackType = Models.FeedbackType.Period; }
/// <summary> Initializes a new instance of CommentFeedbackInternal. </summary> /// <param name="metricId"> The metric unique id. </param> /// <param name="dimensionFilter"> The dimension filter. </param> /// <param name="value"> The value for the feedback. </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> or <paramref name="value"/> is null. </exception> public CommentFeedback(Guid metricId, FeedbackDimensionFilter dimensionFilter, string value) : base(metricId, dimensionFilter) { if (dimensionFilter == null) { throw new ArgumentNullException(nameof(dimensionFilter)); } if (value == null) { throw new ArgumentNullException(nameof(value)); } Value = new CommentFeedbackValue(value); FeedbackType = FeedbackType.Comment; }
internal static PeriodFeedback DeserializePeriodFeedback(JsonElement element) { PeriodFeedbackValue value = default; FeedbackType feedbackType = default; Optional <Guid> feedbackId = default; Optional <DateTimeOffset> createdTime = default; Optional <string> userPrincipal = default; Guid metricId = default; FeedbackDimensionFilter dimensionFilter = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { value = PeriodFeedbackValue.DeserializePeriodFeedbackValue(property.Value); continue; } if (property.NameEquals("feedbackType")) { feedbackType = new FeedbackType(property.Value.GetString()); continue; } if (property.NameEquals("feedbackId")) { feedbackId = property.Value.GetGuid(); continue; } if (property.NameEquals("createdTime")) { createdTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("userPrincipal")) { userPrincipal = property.Value.GetString(); continue; } if (property.NameEquals("metricId")) { metricId = property.Value.GetGuid(); continue; } if (property.NameEquals("dimensionFilter")) { dimensionFilter = FeedbackDimensionFilter.DeserializeFeedbackDimensionFilter(property.Value); continue; } } return(new PeriodFeedback(feedbackType, Optional.ToNullable(feedbackId), Optional.ToNullable(createdTime), userPrincipal.Value, metricId, dimensionFilter, value)); }
/// <summary> Initializes a new instance of CommentFeedback. </summary> /// <param name="metricId"> metric unique id. </param> /// <param name="dimensionFilter"> . </param> /// <param name="value"> . </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> or <paramref name="value"/> is null. </exception> internal CommentFeedback(Guid metricId, FeedbackDimensionFilter dimensionFilter, CommentFeedbackValue value) : base(metricId, dimensionFilter) { if (dimensionFilter == null) { throw new ArgumentNullException(nameof(dimensionFilter)); } if (value == null) { throw new ArgumentNullException(nameof(value)); } Value = value; FeedbackType = Models.FeedbackType.Comment; }
/// <summary> Initializes a new instance of ChangePointFeedback. </summary> /// <param name="metricId"> metric unique id. </param> /// <param name="dimensionFilter"> . </param> /// <param name="startTime"> the start timestamp of feedback timerange. </param> /// <param name="endTime"> the end timestamp of feedback timerange, when equals to startTime means only one timestamp. </param> /// <param name="value"> . </param> /// <exception cref="ArgumentNullException"> <paramref name="dimensionFilter"/> or <paramref name="value"/> is null. </exception> internal ChangePointFeedback(Guid metricId, FeedbackDimensionFilter dimensionFilter, DateTimeOffset startTime, DateTimeOffset endTime, ChangePointFeedbackValue value) : base(metricId, dimensionFilter) { if (dimensionFilter == null) { throw new ArgumentNullException(nameof(dimensionFilter)); } if (value == null) { throw new ArgumentNullException(nameof(value)); } StartTime = startTime; EndTime = endTime; Value = value; FeedbackType = Models.FeedbackType.ChangePoint; }
/// <summary> Initializes a new instance of MetricPeriodFeedback. </summary> /// <param name="metricId"> metric unique id. </param> /// <param name="dimensionFilter"> . </param> /// <param name="valueInternal"> . </param> /// <exception cref="ArgumentNullException"> <paramref name="metricId"/>, <paramref name="dimensionFilter"/>, or <paramref name="valueInternal"/> is null. </exception> internal MetricPeriodFeedback(string metricId, FeedbackDimensionFilter dimensionFilter, PeriodFeedbackValue valueInternal) : base(metricId, dimensionFilter) { if (metricId == null) { throw new ArgumentNullException(nameof(metricId)); } if (dimensionFilter == null) { throw new ArgumentNullException(nameof(dimensionFilter)); } if (valueInternal == null) { throw new ArgumentNullException(nameof(valueInternal)); } ValueInternal = valueInternal; Type = FeedbackType.Period; }
internal static MetricAnomalyFeedback DeserializeMetricAnomalyFeedback(JsonElement element) { DateTimeOffset startTime = default; DateTimeOffset endTime = default; AnomalyFeedbackValue value = default; Optional <Guid?> anomalyDetectionConfigurationId = default; Optional <MetricAnomalyDetectionConfiguration> anomalyDetectionConfigurationSnapshot = default; FeedbackType feedbackType = default; Optional <string> feedbackId = default; Optional <DateTimeOffset> createdTime = default; Optional <string> userPrincipal = default; string metricId = default; FeedbackDimensionFilter dimensionFilter = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("startTime")) { startTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("endTime")) { endTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("value")) { value = AnomalyFeedbackValue.DeserializeAnomalyFeedbackValue(property.Value); continue; } if (property.NameEquals("anomalyDetectionConfigurationId")) { if (property.Value.ValueKind == JsonValueKind.Null) { anomalyDetectionConfigurationId = null; continue; } anomalyDetectionConfigurationId = property.Value.GetGuid(); continue; } if (property.NameEquals("anomalyDetectionConfigurationSnapshot")) { if (property.Value.ValueKind == JsonValueKind.Null) { anomalyDetectionConfigurationSnapshot = null; continue; } anomalyDetectionConfigurationSnapshot = MetricAnomalyDetectionConfiguration.DeserializeMetricAnomalyDetectionConfiguration(property.Value); continue; } if (property.NameEquals("feedbackType")) { feedbackType = new FeedbackType(property.Value.GetString()); continue; } if (property.NameEquals("feedbackId")) { feedbackId = property.Value.GetString(); continue; } if (property.NameEquals("createdTime")) { createdTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("userPrincipal")) { userPrincipal = property.Value.GetString(); continue; } if (property.NameEquals("metricId")) { metricId = property.Value.GetString(); continue; } if (property.NameEquals("dimensionFilter")) { dimensionFilter = FeedbackDimensionFilter.DeserializeFeedbackDimensionFilter(property.Value); continue; } } return(new MetricAnomalyFeedback(feedbackType, feedbackId.Value, Optional.ToNullable(createdTime), userPrincipal.Value, metricId, dimensionFilter, startTime, endTime, value, Optional.ToNullable(anomalyDetectionConfigurationId), anomalyDetectionConfigurationSnapshot.Value)); }
internal MetricAnomalyFeedback(FeedbackType type, string id, DateTimeOffset?createdTime, string userPrincipal, string metricId, FeedbackDimensionFilter dimensionFilter, DateTimeOffset startTime, DateTimeOffset endTime, AnomalyFeedbackValue valueInternal, string anomalyDetectionConfigurationId, AnomalyDetectionConfiguration anomalyDetectionConfigurationSnapshot) : base(type, id, createdTime, userPrincipal, metricId, dimensionFilter) { StartTime = startTime; EndTime = endTime; ValueInternal = valueInternal; AnomalyDetectionConfigurationId = anomalyDetectionConfigurationId; AnomalyDetectionConfigurationSnapshot = anomalyDetectionConfigurationSnapshot; Type = type; }
internal CommentFeedback(FeedbackType feedbackType, Guid?feedbackId, DateTimeOffset?createdTime, string userPrincipal, Guid metricId, FeedbackDimensionFilter dimensionFilter, DateTimeOffset?startTime, DateTimeOffset?endTime, CommentFeedbackValue value) : base(feedbackType, feedbackId, createdTime, userPrincipal, metricId, dimensionFilter) { StartTime = startTime; EndTime = endTime; Value = value; FeedbackType = feedbackType; }
internal AnomalyFeedback(FeedbackType feedbackType, Guid?feedbackId, DateTimeOffset?createdTime, string userPrincipal, Guid metricId, FeedbackDimensionFilter dimensionFilter, DateTimeOffset startTime, DateTimeOffset endTime, AnomalyFeedbackValue value, Guid?anomalyDetectionConfigurationId, MetricAnomalyDetectionConfiguration anomalyDetectionConfigurationSnapshot) : base(feedbackType, feedbackId, createdTime, userPrincipal, metricId, dimensionFilter) { StartTime = startTime; EndTime = endTime; Value = value; AnomalyDetectionConfigurationId = anomalyDetectionConfigurationId; AnomalyDetectionConfigurationSnapshot = anomalyDetectionConfigurationSnapshot; FeedbackType = feedbackType; }
internal MetricCommentFeedback(FeedbackType type, string id, DateTimeOffset?createdTime, string userPrincipal, string metricId, FeedbackDimensionFilter dimensionFilter, DateTimeOffset?startTime, DateTimeOffset?endTime, CommentFeedbackValue valueInternal) : base(type, id, createdTime, userPrincipal, metricId, dimensionFilter) { StartTime = startTime; EndTime = endTime; ValueInternal = valueInternal; Type = type; }
internal static MetricChangePointFeedback DeserializeMetricChangePointFeedback(JsonElement element) { DateTimeOffset startTime = default; DateTimeOffset endTime = default; ChangePointFeedbackValue value = default; FeedbackType feedbackType = default; Optional <string> feedbackId = default; Optional <DateTimeOffset> createdTime = default; Optional <string> userPrincipal = default; string metricId = default; FeedbackDimensionFilter dimensionFilter = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("startTime")) { startTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("endTime")) { endTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("value")) { value = ChangePointFeedbackValue.DeserializeChangePointFeedbackValue(property.Value); continue; } if (property.NameEquals("feedbackType")) { feedbackType = new FeedbackType(property.Value.GetString()); continue; } if (property.NameEquals("feedbackId")) { feedbackId = property.Value.GetString(); continue; } if (property.NameEquals("createdTime")) { createdTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("userPrincipal")) { userPrincipal = property.Value.GetString(); continue; } if (property.NameEquals("metricId")) { metricId = property.Value.GetString(); continue; } if (property.NameEquals("dimensionFilter")) { dimensionFilter = FeedbackDimensionFilter.DeserializeFeedbackDimensionFilter(property.Value); continue; } } return(new MetricChangePointFeedback(feedbackType, feedbackId.Value, Optional.ToNullable(createdTime), userPrincipal.Value, metricId, dimensionFilter, startTime, endTime, value)); }
internal PeriodFeedback(FeedbackType feedbackType, Guid?feedbackId, DateTimeOffset?createdTime, string userPrincipal, Guid metricId, FeedbackDimensionFilter dimensionFilter, PeriodFeedbackValue value) : base(feedbackType, feedbackId, createdTime, userPrincipal, metricId, dimensionFilter) { Value = value; FeedbackType = feedbackType; }
internal MetricPeriodFeedback(FeedbackType type, string id, DateTimeOffset?createdTime, string userPrincipal, string metricId, FeedbackDimensionFilter dimensionFilter, PeriodFeedbackValue valueInternal) : base(type, id, createdTime, userPrincipal, metricId, dimensionFilter) { ValueInternal = valueInternal; Type = type; }