public override async Task <CreateResp> Create(CreateReq request, ServerCallContext context) { var createPersistentSubscriptionSource = new TaskCompletionSource <CreateResp>(); var settings = request.Options.Settings; var correlationId = Guid.NewGuid(); var user = context.GetHttpContext().User; if (!await _authorizationProvider.CheckAccessAsync(user, CreateOperation, context.CancellationToken).ConfigureAwait(false)) { throw AccessDenied(); } _publisher.Publish(new ClientMessage.CreatePersistentSubscription( correlationId, correlationId, new CallbackEnvelope(HandleCreatePersistentSubscriptionCompleted), request.Options.StreamIdentifier, request.Options.GroupName, settings.ResolveLinks, new StreamRevision(settings.Revision).ToInt64(), settings.MessageTimeoutCase switch { CreateReq.Types.Settings.MessageTimeoutOneofCase.MessageTimeoutMs => settings.MessageTimeoutMs, CreateReq.Types.Settings.MessageTimeoutOneofCase.MessageTimeoutTicks => (int)TimeSpan .FromTicks(settings.MessageTimeoutTicks).TotalMilliseconds, _ => 0 },
public override async Task <CreateResp> Create(CreateReq request, ServerCallContext context) { var createPersistentSubscriptionSource = new TaskCompletionSource <CreateResp>(); var settings = request.Options.Settings; var correlationId = Guid.NewGuid(); var user = await GetUser(_authenticationProvider, context.RequestHeaders).ConfigureAwait(false); _queue.Publish(new ClientMessage.CreatePersistentSubscription( correlationId, correlationId, new CallbackEnvelope(HandleCreatePersistentSubscriptionCompleted), request.Options.StreamName, request.Options.GroupName, settings.ResolveLinks, new StreamRevision(settings.Revision).ToInt64(), (int)TimeSpan.FromTicks(settings.MessageTimeout).TotalMilliseconds, settings.ExtraStatistics, settings.MaxRetryCount, settings.HistoryBufferSize, settings.LiveBufferSize, settings.ReadBatchSize, (int)TimeSpan.FromTicks(settings.CheckpointAfter).TotalMilliseconds, settings.MinCheckpointCount, settings.MaxCheckpointCount, settings.MaxSubscriberCount, settings.NamedConsumerStrategy.ToString(), user,