/// <summary>
 /// Converts the action method to bytes.
 /// </summary>
 /// <param name="method">The method.</param>
 /// <returns></returns>
 public byte[] ConvertMethodToBytes(Expression <Action <IReceivedMessage <MessageExpression>, IWorkerNotification> > method)
 {
     using (_methodToBytesTimer.NewContext())
     {
         var result = _handler.ConvertMethodToBytes(method);
         _resultMethodSizeHistogram.Update(result.Length, result.Length.ToString(CultureInfo.InvariantCulture));
         return(result);
     }
 }
Ejemplo n.º 2
0
        /// <inheritdoc />
        public IQueueOutputMessages Send(List <QueueMessage <Expression <Action <IReceivedMessage <MessageExpression>, IWorkerNotification> >, IAdditionalMessageData> > methods, bool rawExpression = false)
        {
            var messages = new List <QueueMessage <MessageExpression, IAdditionalMessageData> >(methods.Count);

            foreach (var method in methods)
            {
                if (rawExpression)
                {
                    var message = new MessageExpression(MessageExpressionPayloads.ActionRaw, method.Message);
                    messages.Add(new QueueMessage <MessageExpression, IAdditionalMessageData>(message, method.MessageData));
                }
                else
                {
                    var message = new MessageExpression(MessageExpressionPayloads.Action, _serializer.ConvertMethodToBytes(method.Message));
                    messages.Add(new QueueMessage <MessageExpression, IAdditionalMessageData>(message, method.MessageData));
                }
            }
            return(_queue.Send(messages));
        }