/// <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); } }
/// <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)); }