Current users should be unaffected by this patch and can continue to use LongConversations as they are today. This patch allows for "Private (Long) Conversations" with:
Guid id = UnitOfWork.StartPrivateConversation();
This will then start a Long conversation in private mode. It can be accessed
through querystring or request parameters as follows:
<a href="/Home/StartPrivateConversation/">Start Private Conversation</a>
<a href="/Home/DoWork/?LongConversationKey=<%= ViewData["ConversationKey"]
%>">Do Work</a>
<a href="/Home/EndConversation/?LongConversationKey=<%=
ViewData["ConversationKey"] %>">End Private Conversation</a>
Note that the LongConversationKey can be changed to something else in the
app.config.
It is now possible to do the following:
1 start a long conversation in private mode
2 save some entities / make some changes
3 in a separate page, make immediate changes without a conversation
4 finish the private conversation, persisting the changes from the private
conversation
etc
UnitOfWork.StartLongConversation() will start one that doesn't need to be
passed via LongConversationKey=XXX
Note that calling UnitOfWork.EndLongConversation() will end public and
private conversations - whichever one happens to be used.
If you ask for a long conversation key that does not exist, an exception
will be thrown. If you don't include a Key, no exception will be thrown as
would be expected.
This is very useful for AJAX intensive work where you expect users to have
multiple requests going at the same time. (Polling updates etc.)
I've tested these changes in a separate asp.net mvc project, but did
not know how to write tests for them as it relies on the session and request
variables. Perhaps there is a better way to design this so that it is more
testable.
-Will
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Rhino Tools Dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---
privateConversations.patch
Description: Binary data
