示例#1
0
        /// <summary>
        /// create a workspace in which transaction is automatically managed and has the same life cycle as conversation
        /// </summary>
        /// <param name="states"></param>
        /// <param name="currentWorkSpaceName"></param>
        /// <returns></returns>
        public static WorkSpace Create(NameValueCollection states, string currentWorkSpaceName)
        {
            string cid = GetWorkSpaceState(states, ConversationIdKeyName, currentWorkSpaceName);

            if (!string.IsNullOrEmpty(cid))
            {
                AbstractConversation c = ConversationPool.Instance[new Guid(cid)];
                c.Reconnect();
                return(new WorkSpace(c));
            }
            else
            {
                AbstractConversation c =
                    new BurrowFramework().BurrowEnvironment.Configuration.ManualTransactionManagement ?
                    (AbstractConversation) new ConversationWithManualTransactionImpl() : new ConversationWithManagedTransactionImpl();
                return(new WorkSpace(c));
            }
        }