示例#1
0
        public void OnSuccess(MethodExecutionArgs eventArgs)
        {
            if (IsNoopConversationalMarkerActive)
            {
                return;
            }
            if (eventArgs.MethodExecutionTag == NestedMethodMarker)
            {
                return;
            }
            IConversationsContainerAccessor cca = ConversationsContainerAccessor;
            IConversation c = cca.Container.Get(GetConversationId());

            EndMode endMode = GetMethodEndMode(eventArgs.Method);

            switch (endMode)
            {
            case EndMode.End:
                c.End();
                c.Dispose();
                break;

            case EndMode.Abort:
                c.Abort();
                c.Dispose();
                break;

            case EndMode.CommitAndContinue:
                c.FlushAndPause();
                break;

            default:
                c.Pause();
                break;
            }
        }