protected override TcpPackage CreateSubscriptionPackage() {
			var dto = new ClientMessage.SubscribeToStream(_streamId, _resolveLinkTos);
			return _userCredentials?.AuthToken != null
				? new TcpPackage(
					TcpCommand.SubscribeToStream, TcpFlags.Authenticated,
					_correlationId, _userCredentials.AuthToken, dto.Serialize())
				: new TcpPackage(
					TcpCommand.SubscribeToStream, _userCredentials != null ? TcpFlags.Authenticated : TcpFlags.None,
					_correlationId, _userCredentials?.Username, _userCredentials?.Password, dto.Serialize());
		}
        private TcpPackage CreateSubscriptionPackage()
        {
            var dto = new ClientMessage.SubscribeToStream(_streamId, _resolveLinkTos);

            return(new TcpPackage(TcpCommand.SubscribeToStream,
                                  _userCredentials != null ? TcpFlags.Authenticated : TcpFlags.None,
                                  _correlationId,
                                  _userCredentials != null ? _userCredentials.Login : null,
                                  _userCredentials != null ? _userCredentials.Password : null,
                                  dto.Serialize()));
        }
示例#3
0
        public Task Subscribe(string stream, Action <RecordedEvent, Position> eventAppeared, Action subscriptionDropped)
        {
            var id     = Guid.NewGuid();
            var source = new TaskCompletionSource <object>();

            if (_subscriptions.TryAdd(id, new Subscription(source, id, stream, eventAppeared, subscriptionDropped)))
            {
                var subscribe = new ClientMessage.SubscribeToStream(stream);
                var pkg       = new TcpPackage(TcpCommand.SubscribeToStream, id, subscribe.Serialize());
                _connection.EnqueueSend(pkg.AsByteArray());
            }
            else
            {
                source.SetException(new Exception("Failed to add subscription. Concurrency failure."));
            }

            return(source.Task);
        }