服务器端
![](/icons/47219de.gif)
![](/icons/47219dou.gif)
![](/icons/47219dou2.gif)
![](/icons/47219de.gif)
![](/icons/47219dou2.gif)
![](/icons/47219dou.gif)
![](/icons/47219yi.gif)
![](/icons/47219de.gif)
![使用silverlight构建<img src='/icons/47219yi.gif' />个工作流设计器(十 8)-持久化数据到数据库—服务器段功能实现](http://www.crazycoder.cn/WebFiles/20098/73bde278-8a12-4be5-9ffb-5502085ba1b7.jpeg)
图片看不清楚?请点击这里查看原图(大图)
![](/icons/47219dou2.gif)
然后在左边
![](/icons/47219de.gif)
![](/icons/47219dou.gif)
![](/icons/47219yi.gif)
![](/icons/47219dou.gif)
![使用silverlight构建<img src='/icons/47219yi.gif' />个工作流设计器(十 8)-持久化数据到数据库—服务器段功能实现](http://www.crazycoder.cn/WebFiles/20098/3a054fbb-87b0-41f2-9ffc-e75a6fe9ecdf.jpeg)
剩下
![](/icons/47219de.gif)
![](/icons/47219de.gif)
![](/icons/47219dou2.gif)
l 获取工作流xml描述
/// <summary>
/// 获取工作流xml描述
/// </summary>
/// <param name="workflowID">流程ID</param>
/// <
s></
s>
[WebMethod]
public
GetWorkFlowXML(
workflowID)
{
xml = "";
using (ShareDesigner.Web.Class.WorkFlowDataContext dataContext =
WorkFlowDataContext
)
{
WorkFlow_Process process = dataContext.WorkFlow_Processes.First(p => p.WorkFlowID
workflowID);
(process != null)
xml = process.WorkFlowXML;
}
xml;
}
l 更新工作流xml描述
/// <summary>
/// 更新流程xml
/// </summary>
/// <param name="workFlowXml">流程xml描述</param>
[WebMethod]
public void UpdateWorkFlowXML(
workFlowXml) {
using (ShareDesigner.Web.Class.WorkFlowDataContext dataContext =
WorkFlowDataContext
) {
WorkFlow_Process process =
WorkFlow_Process
;
Byte
b =
.Text.UTF8Encoding.UTF8.GetBytes(workFlowXml);
XElement xele = XElement.Load(
.Xml.XmlReader.Create(
MemoryStream(b)));
process.WorkFlowName = xele.Attribute(XName.Get("Name")).Value;
process.WorkFlowID = xele.Attribute(XName.Get("UniqueID")).Value;
process.WorkFlowXML = workFlowXml;
deleteExistsWorkFlow(process.WorkFlowID);
var partNos = from item in xele.Descendants("Activity") select item;
foreach (XElement node in partNos)
{
WorkFlow_Activity activity =
WorkFlow_Activity
;
process.WorkFlow_Activities.Add(activity);
activity.ActivityID = node.Attribute(XName.Get("UniqueID")).Value;
activity.ActivityName = node.Attribute(XName.Get("ActivityName")).Value;
activity.ActivityType = node.Attribute(XName.Get("Type")).Value;
}
dataContext.WorkFlow_Processes.InsertOnSubmit(process);
partNos = from item in xele.Descendants("Rule") select item;
WorkFlow_Rule rule = null;
foreach (XElement node in partNos)
{ rule =
WorkFlow_Rule
;
rule.BeginActivityID = node.Attribute(XName.Get("BeginActivityUniqueID")).Value;
rule.Condition = node.Attribute(XName.Get("RuleCondition")).Value;
rule.EndActivityID = node.Attribute(XName.Get("EndActivityUniqueID")).Value;
rule.RuleID = node.Attribute(XName.Get("UniqueID")).Value;
rule.RuleName = node.Attribute(XName.Get("RuleName")).Value;
rule.RuleType = node.Attribute(XName.Get("LineType")).Value;
dataContext.WorkFlow_Rules.InsertOnSubmit(rule);
}
dataContext.SubmitChanges
;
}
}
17.5 增加子流程
![](/icons/47219de.gif)
有了以上
![](/icons/47219de.gif)
![](/icons/47219dou.gif)
![](/icons/47219dou2.gif)
![使用silverlight构建<img src='/icons/47219yi.gif' />个工作流设计器(十 8)-持久化数据到数据库—服务器段功能实现](http://www.crazycoder.cn/WebFiles/20098/9cd077e1-dc60-4c33-95f5-f542e7bf044a.jpeg)
其中获取子流程
![](/icons/47219de.gif)
[WebMethod]
public
GetWorkFlowList![](/icons/47219kh.gif)
{
xml = "";
using (ShareDesigner.Web.Class.WorkFlowDataContext dataContext =
WorkFlowDataContext
)
{
try
{
XDocument doc =
XDocument(
XElement("WorkFlows", from p in dataContext.WorkFlow_Processes
select (
XElement("WorkFlow",
XAttribute("Name", p.WorkFlowName),
XAttribute("ID", p.WorkFlowID)))));
xml = doc.![](/icons/47219ToString.gif)
;
}
catch (Exception e)
{
xml = "";
}
}
xml; }
客户端获取流程并显示
![](/icons/47219de.gif)
Byte
b =
.Text.UTF8Encoding.UTF8.GetBytes(xml);
XElement xele = XElement.Load(
.Xml.XmlReader.Create(
MemoryStream(b)));
var partNos = from item in xele.Descendants("WorkFlow")
select
WorkflowListItem { Name = item.Attribute("Name").Value, ID = item.Attribute("ID").Value };
cbSubFlowList.ItemsSource = partNos;
cbSubFlowList.SelectedIndex = 0;
其中WorkflowListItem是
![](/icons/47219yi.gif)
![](/icons/47219dou.gif)
public
WorkflowListItem
{
public
Name { get;
; }
public
ID { get;
; }
public WorkflowListItem
{ }
public WorkflowListItem(
name,
id)
{
Name = name;
ID = id;
}
}
从上面
![](/icons/47219de.gif)
![](/icons/47219dou.gif)
![](/icons/47219de.gif)
![](/icons/47219dou.gif)
![](/icons/47219dou2.gif)
到此我们
![](/icons/47219de.gif)
![](/icons/47219dou.gif)
![](/icons/47219yi.gif)
![](/icons/47219de.gif)
![](/icons/47219yi.gif)
![](/icons/47219dou2.gif)
![](/icons/47219yinwei.gif)
![](/icons/47219de.gif)
![](/icons/47219dou.gif)
![](/icons/47219yinwei.gif)
![](/icons/47219de.gif)
![](/icons/47219yi.gif)
![](/icons/47219dou2.gif)
![](/icons/47219yi.gif)
![](/icons/47219yi.gif)
![](/icons/47219de.gif)
![](/icons/47219dou.gif)
![](/icons/47219de.gif)
![](/icons/47219de.gif)
![](/icons/47219dou2.gif)
![](/icons/47219dou2.gif)
最新评论