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;
 }
Ejemplo n.º 2
0
 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>()
 };
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 5
0
 public static HerculesResult CreateTimeline(
     [NotNull] this IHerculesManagementClient client,
     [NotNull] CreateTimelineQuery query,
     TimeSpan timeout) =>
 client.CreateTimelineAsync(query, timeout).GetAwaiter().GetResult();
Ejemplo n.º 6
0
 /// <inheritdoc />
 public Task <HerculesResult> CreateTimelineAsync(CreateTimelineQuery query, TimeSpan timeout)
 => SendAsync(
     Request.Post("timelines/create"),
     TimelineDescriptionDtoConverter.CreateFromQuery(query),
     timeout,
     TimelineAnalyzer);