/// <summary> /// Converts the function to bytes. /// </summary> /// <param name="method">The method.</param> /// <returns></returns> public byte[] ConvertFunctionToBytes(Expression <Func <IReceivedMessage <MessageExpression>, IWorkerNotification, object> > method) { using (_functionToBytesTimer.NewContext()) { var result = _handler.ConvertFunctionToBytes(method); _resultFunctionSizeHistogram.Update(result.Length, result.Length.ToString(CultureInfo.InvariantCulture)); return(result); } }
/// <summary> /// Sends the specified linqExpression for execution. /// </summary> /// <param name="method">The linqExpression.</param> /// <param name="timeOut">The time out.</param> /// <param name="data">The data.</param> /// <returns></returns> /// <remarks> /// Your expression must return a type of object, or the JSON serializer may throw casting errors /// </remarks> public IReceivedMessage <object> Send(Expression <Func <IReceivedMessage <MessageExpression>, IWorkerNotification, object> > method, TimeSpan timeOut, IAdditionalMessageData data = null) { var message = new MessageExpression(MessageExpressionPayloads.Function, _serializer.ConvertFunctionToBytes(method)); return(_queue.Send(message, timeOut, data)); }