Exemple #1
0
        /// <summary>
        /// Peek Event Handler
        /// </summary>
        private async Task MyPeekCompleted(object source,
                                           PeekCompletedEventArgs asyncResult, string ChannelToReturnTo, string channelPeeked)
        {
            ResultModel resultModel = new ResultModel();

            try
            {
                // Connect to the queue.
                System.Messaging.MessageQueue mq = (System.Messaging.MessageQueue)source;

                // End the asynchronous peek operation.
                System.Messaging.Message myMessage = mq.EndPeek(asyncResult.AsyncResult);
                resultModel.message = MessageConvert.ConvertFromSystemMessage(myMessage);
                resultModel.Result  = (int)ResultsEnum.Done;
                // Restart the asynchronous peek operation.
                Response response = await initiator.SendRequestAsync(new KubeMQ.SDK.csharp.CommandQuery.LowLevel.Request()
                {
                    Metadata    = "PeekOK",
                    Body        = Converter.ToByteArray(resultModel),
                    CacheKey    = "",
                    CacheTTL    = 0,
                    Channel     = ChannelToReturnTo,
                    ClientID    = clientID,
                    RequestType = RequestType.Query
                });
            }
            catch (Exception ex)
            {
                _logger.LogCritical(string.Format("Failed to peek path {0} on ex {1}", channelPeeked, ex.Message));
            }
        }
Exemple #2
0
        /// <summary>
        /// Peek and return the first message in the queue.
        /// </summary>
        /// <param name="path">the queue name.</param>
        /// <returns>ResultModel:show the status of the request.</returns>
        internal ResultModel PeekQueue(string path)
        {
            ResultModel resultModel = new ResultModel();

            try
            {
                System.Messaging.MessageQueue myQueue   = new System.Messaging.MessageQueue(path);
                System.Messaging.Message      myMessage = myQueue.Peek();
                resultModel.message = MessageConvert.ConvertFromSystemMessage(myMessage);
                _logger.LogDebug(string.Format("Peek done on path :{0}", path));
                resultModel.Result = (int)ResultsEnum.Done;
            }
            catch (Exception ex)
            {
                resultModel.Result = (int)ResultsEnum.Error;
                _logger.LogCritical(string.Format("Failed to peek path {0} on ex {1}", path, ex.Message));
                resultModel.exception = ex;
            }
            return(resultModel);
        }