public TimelineDescriptionDto(CreateTimelineQuery query) { Name = query.Name; Sources = query.Sources; Slices = query.Slices ?? DefaultSlicesCount; TTL = (long)(query.TTL ?? DefaultTTL).TotalMilliseconds; TimetrapSize = (long)(query.TimetrapSize ?? DefaultTimetrapSize).TotalMilliseconds; ShardingKey = query.ShardingKey; }
public static TimelineDescriptionDto CreateFromQuery([NotNull] CreateTimelineQuery query) => new TimelineDescriptionDto { Name = query.Name, Streams = query.Sources, Slices = query.Slices ?? ManagementClientDefaults.TimelineSlices, TtlMilliseconds = (long)(query.TTL ?? ManagementClientDefaults.TimelineTTL).TotalMilliseconds, TimetrapSizeMilliseconds = (long)(query.TimetrapSize ?? ManagementClientDefaults.TimetrapSize).TotalMilliseconds, ShardingKey = query.ShardingKey ?? Array.Empty <string>() };
/// <inheritdoc /> public async Task <HerculesResult> CreateTimelineAsync(CreateTimelineQuery query, TimeSpan timeout) { var request = Request .Post("timelines/create") .WithHeader("apiKey", getApiKey()) .WithContent(JsonConvert.SerializeObject(new TimelineDescriptionDto(query))); var clusterResult = await client.SendAsync(request, timeout).ConfigureAwait(false); var herculesStatus = clusterResult.Status != ClusterResultStatus.Success ? ConvertFailureToHerculesStatus(clusterResult.Status) : ConvertResponseCodeToHerculesStatusForTimeline(clusterResult.Response.Code); return(new HerculesResult(herculesStatus)); }
public void Should_convert_timeline_creation_query_to_dto_and_back_to_description() { var query = new CreateTimelineQuery("my-timeline", new[] { "foo", "bar" }) { Slices = 35, TTL = 2.Days(), TimetrapSize = 2.Seconds(), ShardingKey = new[] { "key" } }; var dto = TimelineDescriptionDtoConverter.CreateFromQuery(query); var description = TimelineDescriptionDtoConverter.ConvertToDescription(dto); description.Should().BeEquivalentTo(query); }
public static HerculesResult CreateTimeline( [NotNull] this IHerculesManagementClient client, [NotNull] CreateTimelineQuery query, TimeSpan timeout) => client.CreateTimelineAsync(query, timeout).GetAwaiter().GetResult();
/// <inheritdoc /> public Task <HerculesResult> CreateTimelineAsync(CreateTimelineQuery query, TimeSpan timeout) => SendAsync( Request.Post("timelines/create"), TimelineDescriptionDtoConverter.CreateFromQuery(query), timeout, TimelineAnalyzer);