Example #1
0
        static IInlineMessage CheckMessage(IMessagePoster poster, IMessageItem message)
        {
            var re = poster.CheckMessage(message);

            if (re != null)
            {
                return(re);
            }

            var ctx = GlobalContext.CurrentNoLazy;

            if (message is IInlineMessage inline)
            {
                if (ctx != null && ctx.Message == message)
                {
                    inline = inline.CopyToRequest();
                }
                else
                {
                    inline.ResetToRequest();
                }
            }
            else
            {
                inline = new InlineMessage
                {
                    ID        = message.ID,
                    Service   = message.Service,
                    Method    = message.Method,
                    Result    = message.Result,
                    Argument  = message.Argument,
                    DataState = MessageDataState.ArgumentOffline
                };
            }
            inline.CheckPostTraceInfo();

            return(inline);
        }