Exemplo n.º 1
0
        /// <summary>
        /// Clears messages in a queue.
        /// Required administration permission.
        /// If server has no implementation for administration authorization, request is not allowed.
        /// </summary>
        public Task <HorseResult> ClearMessages(string queue, bool clearPriorityMessages, bool clearMessages)
        {
            if (!clearPriorityMessages && !clearMessages)
            {
                return(Task.FromResult(HorseResult.Failed()));
            }

            HorseMessage message = new HorseMessage();

            message.Type        = MessageType.Server;
            message.ContentType = KnownContentTypes.ClearMessages;
            message.SetTarget(queue);
            message.WaitResponse = true;
            message.SetMessageId(_client.UniqueIdGenerator.Create());
            message.AddHeader(HorseHeaders.QUEUE_NAME, queue);

            if (clearPriorityMessages)
            {
                message.AddHeader(HorseHeaders.PRIORITY_MESSAGES, "yes");
            }

            if (clearMessages)
            {
                message.AddHeader(HorseHeaders.MESSAGES, "yes");
            }

            return(_client.WaitResponse(message, true));
        }
        /// <summary>
        /// Publishes a message to the router
        /// </summary>
        public Task <HorseResult> PublishJson(string routerName, object jsonObject, bool waitAcknowledge)
        {
            HorseClient client = GetClient();

            if (client != null && client.IsConnected)
            {
                return(client.Routers.PublishJson(routerName, jsonObject, null, waitAcknowledge));
            }

            return(Task.FromResult(HorseResult.Failed()));
        }
        /// <summary>
        /// Publishes a message to the router
        /// </summary>
        public Task <HorseResult> Publish(string routerName, MemoryStream content, bool waitAcknowledge)
        {
            HorseClient client = GetClient();

            if (client != null && client.IsConnected)
            {
                return(client.Routers.Publish(routerName, content.ToArray(), null, waitAcknowledge));
            }

            return(Task.FromResult(HorseResult.Failed()));
        }
        /// <summary>
        /// Pushes a message to the queue
        /// </summary>
        public Task <HorseResult> PushJson(string queue, object jsonObject, bool waitAcknowledge)
        {
            HorseClient client = GetClient();

            if (client != null && client.IsConnected)
            {
                return(client.Queues.PushJson(queue, jsonObject, waitAcknowledge));
            }

            return(Task.FromResult(HorseResult.Failed()));
        }
        /// <summary>
        /// Pushes a message to the queue
        /// </summary>
        public Task <HorseResult> Push(string queue, MemoryStream content, bool waitAcknowledge)
        {
            HorseClient client = GetClient();

            if (client != null && client.IsConnected)
            {
                return(client.Queues.Push(queue, content, waitAcknowledge));
            }

            return(Task.FromResult(HorseResult.Failed()));
        }
        /// <summary>
        /// Sends a message
        /// </summary>
        public Task <HorseResult> SendAsync(HorseMessage message)
        {
            HorseClient client = GetClient();

            if (client != null && client.IsConnected)
            {
                return(client.SendAsync(message));
            }

            return(Task.FromResult(HorseResult.Failed()));
        }