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; }
/// <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="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; }
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; }
/// <summary> /// Initializes a new instance of <see cref="MetricsAdvisor.MetricCommentFeedback"/> for mocking purposes. /// </summary> /// <param name="id">Sets the <see cref="MetricFeedback.Id"/> property.</param> /// <param name="createdOn">Sets the <see cref="MetricFeedback.CreatedOn"/> property.</param> /// <param name="userPrincipal">Sets the <see cref="MetricFeedback.UserPrincipal"/> property.</param> /// <param name="metricId">Sets the <see cref="MetricFeedback.MetricId"/> property.</param> /// <param name="dimensionKey">Sets the <see cref="MetricFeedback.DimensionKey"/> property.</param> /// <param name="startsOn">Sets the <see cref="MetricCommentFeedback.StartsOn"/> property.</param> /// <param name="endsOn">Sets the <see cref="MetricCommentFeedback.EndsOn"/> property.</param> /// <param name="comment">Sets the <see cref="MetricCommentFeedback.Comment"/> property.</param> /// <returns>A new instance of <see cref="MetricsAdvisor.MetricCommentFeedback"/> for mocking purposes.</returns> public static MetricCommentFeedback MetricCommentFeedback(string id = null, DateTimeOffset?createdOn = null, string userPrincipal = null, string metricId = null, DimensionKey dimensionKey = null, DateTimeOffset?startsOn = null, DateTimeOffset?endsOn = null, string comment = null) { Dictionary <string, string> dimensions = dimensionKey?.ToDictionary(key => key.Key, key => key.Value); FeedbackFilter filter = new FeedbackFilter(dimensions); CommentFeedbackValue feedbackValue = new CommentFeedbackValue(comment); return(new MetricCommentFeedback(MetricFeedbackKind.Comment, id, createdOn, userPrincipal, metricId, filter, startsOn, endsOn, feedbackValue)); }
/// <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 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 CommentFeedback DeserializeCommentFeedback(JsonElement element) { Optional <DateTimeOffset?> startTime = default; Optional <DateTimeOffset?> endTime = default; CommentFeedbackValue 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("startTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { startTime = null; continue; } startTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("endTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { endTime = null; continue; } endTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("value")) { value = CommentFeedbackValue.DeserializeCommentFeedbackValue(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 CommentFeedback(feedbackType, Optional.ToNullable(feedbackId), Optional.ToNullable(createdTime), userPrincipal.Value, metricId, dimensionFilter, Optional.ToNullable(startTime), Optional.ToNullable(endTime), value)); }