概述:
我是兩年前申請的博客園。如今仍然記得很清楚,與現在的方式有點不同,當時注冊也是要申請的,現在是注冊不需要申請,而注冊之 後,開博需要申請。當時感覺有點新鮮,同樣也感到欣慰,有如此敬業的管理員已經很少了。
其實,一個簡單博客申請可以看成一個簡單的工作流。它的流程圖如下:
這篇文章中我將使用WF4.0去實現這個流程,這個非常的容易。
效果:
1、申請界面:
2、點擊提交,提示等待審核,如下圖:
用admin賬戶登陸到審核頁面,進行審核。
收到申請成功的通知郵件,如下圖:
實現:
這個例子很簡單,先看數據庫定義:
流程主表ApplyInfo,存儲申請信息:
其他數據表
全部數據表如下圖,你千萬不要被這些表嚇倒了,除了主表ApplyInfo之外,以aspnet開頭的是大家熟悉的membership中的數據表,其余 的都是ms用於持久化的表,我們只要會用它就OK了:
定義流程:
我們分析一下這個流程,這裡我只用了一個BookMark,用於持久化和暫停流程。
當博客園申請者,在提交申請之後和管理員審核之前,流程會暫停於WaitForInput<String>這個bookmark,並將流程持久化到MS 定義的那些復雜的數據表中。
管理員登陸之後,提交審核,就會恢復這個BookMark。然後用一個IF活動判斷管理員的審核結果,接著用自定義的UpdateApply活動更新 數據表的狀態,最後通過郵件通知申請人員。
總結:雖然這是一個很簡單的審核流程,也是很完整的審核流程,很值得學習,:)。它包括了工作流的服務包括持久化服務等,功能包 括審核、郵件通知等。
ps:請將SendMail活動中的郵件發送地址和郵件密碼修改成自己的。
本文配套源碼