Exemplo n.º 1
0
        public static string EncodeMessageBody(BinaryData binaryData, QueueMessageEncoding messageEncoding)
        {
            if (binaryData == null)
            {
                return(null);
            }
            switch (messageEncoding)
            {
            case QueueMessageEncoding.None:
                return(binaryData.ToString());

            case QueueMessageEncoding.Base64:
                if (MemoryMarshal.TryGetArray(binaryData.ToMemory(), out var segment))
                {
                    return(Convert.ToBase64String(segment.Array, segment.Offset, segment.Count));
                }
                else
                {
                    return(Convert.ToBase64String(binaryData.ToArray()));
                }

            default:
                throw new ArgumentException($"Unsupported message encoding {messageEncoding}", nameof(messageEncoding));
            }
        }
        public QueueClient GetEncodingClient(
            string queueName,
            QueueMessageEncoding encoding)
        {
            var options = GetOptions();

            options.MessageEncoding = encoding;
            var service = GetServiceClient_SharedKey(options);

            return(InstrumentClient(service.GetQueueClient(queueName)));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="QueueServiceClient"/>
        /// class.
        /// </summary>
        /// <param name="connectionString">
        /// A connection string includes the authentication information
        /// required for your application to access data in an Azure Storage
        /// account at runtime.
        ///
        /// For more information, see
        /// <see href="https://docs.microsoft.com/azure/storage/common/storage-configure-connection-string">
        /// Configure Azure Storage connection strings</see>.
        /// </param>
        /// <param name="options">
        /// Optional client options that define the transport pipeline
        /// policies for authentication, retries, etc., that are applied to
        /// every request.
        /// </param>
        public QueueServiceClient(string connectionString, QueueClientOptions options)
        {
            var conn = StorageConnectionString.Parse(connectionString);

            _uri = conn.QueueEndpoint;
            options ??= new QueueClientOptions();
            _pipeline                   = options.Build(conn.Credentials);
            _version                    = options.Version;
            _clientDiagnostics          = new ClientDiagnostics(options);
            _clientSideEncryption       = QueueClientSideEncryptionOptions.CloneFrom(options._clientSideEncryptionOptions);
            _storageSharedKeyCredential = conn.Credentials as StorageSharedKeyCredential;
            _messageEncoding            = options.MessageEncoding;
        }
Exemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QueueServiceClient"/>
 /// class.
 /// </summary>
 /// <param name="serviceUri">
 /// A <see cref="Uri"/> referencing the queue service.
 /// This is likely to be similar to "https://{account_name}.queue.core.windows.net".
 /// </param>
 /// <param name="authentication">
 /// An optional authentication policy used to sign requests.
 /// </param>
 /// <param name="options">
 /// Optional client options that define the transport pipeline
 /// policies for authentication, retries, etc., that are applied to
 /// every request.
 /// </param>
 /// <param name="storageSharedKeyCredential">
 /// The shared key credential used to sign requests.
 /// </param>
 internal QueueServiceClient(
     Uri serviceUri,
     HttpPipelinePolicy authentication,
     QueueClientOptions options,
     StorageSharedKeyCredential storageSharedKeyCredential)
 {
     _uri = serviceUri;
     options ??= new QueueClientOptions();
     _pipeline                   = options.Build(authentication);
     _version                    = options.Version;
     _clientDiagnostics          = new ClientDiagnostics(options);
     _clientSideEncryption       = QueueClientSideEncryptionOptions.CloneFrom(options._clientSideEncryptionOptions);
     _storageSharedKeyCredential = storageSharedKeyCredential;
     _messageEncoding            = options.MessageEncoding;
 }
 public QueueClientConfiguration(
     HttpPipeline pipeline,
     StorageSharedKeyCredential sharedKeyCredential,
     ClientDiagnostics clientDiagnostics,
     QueueClientOptions.ServiceVersion version,
     QueueClientSideEncryptionOptions clientSideEncryption,
     QueueMessageEncoding messageEncoding,
     SyncAsyncEventHandler <QueueMessageDecodingFailedEventArgs> queueMessageDecodingFailedHandlers)
     : base(pipeline, sharedKeyCredential, clientDiagnostics)
 {
     Version = version;
     ClientSideEncryption = clientSideEncryption;
     MessageEncoding      = messageEncoding;
     QueueMessageDecodingFailedHandlers = queueMessageDecodingFailedHandlers;
 }
        public QueueClient GetEncodingClient(
            string queueName,
            QueueMessageEncoding encoding,
            params SyncAsyncEventHandler <QueueMessageDecodingFailedEventArgs>[] messageDecodingFailedHandlers)
        {
            var options = GetOptions();

            options.MessageEncoding = encoding;
            foreach (var messageDecodingFailedHandler in messageDecodingFailedHandlers)
            {
                options.MessageDecodingFailed += messageDecodingFailedHandler;
            }
            var service     = GetServiceClient_SharedKey_UnInstrumented(options);
            var queueClient = service.GetQueueClient(queueName);

            return(InstrumentClient(queueClient));
        }
Exemplo n.º 7
0
        public static BinaryData DecodeMessageBody(string messageText, QueueMessageEncoding messageEncoding)
        {
            if (messageText == null)
            {
                return(new BinaryData(string.Empty));
            }

            switch (messageEncoding)
            {
            case QueueMessageEncoding.None:
                return(new BinaryData(messageText));

            case QueueMessageEncoding.Base64:
                return(new BinaryData(Convert.FromBase64String(messageText)));

            default:
                throw new ArgumentException($"Unsupported message encoding {messageEncoding}", nameof(messageEncoding));
            }
        }
 public AzureQueueReceiver(string connectionString, string queueName, QueueMessageEncoding messageEncoding = QueueMessageEncoding.None)
 {
     _connectionString = connectionString;
     _queueName        = queueName;
     _messageEncoding  = messageEncoding;
 }