📄 wxdtrackingservice.cs
字号:
protected override TrackingProfile GetProfile(Type workflowType, Version profileVersionId)
{
//返回指定工作流模板的指定版本号的筛选规则
//参数:profileVersionId,版本号
//可用字典集实现
return TrackingProfileManager.createAllProfile("1.2.3.4"); ;
}
protected override bool TryReloadProfile(Type workflowType, Guid workflowInstanceId, out TrackingProfile profile)
{
//重载指定工作流模板的筛选规则
//参数:workflowType.,
//参数:workflowInstanceId,
//参数:out profile,
profile = TrackingProfileManager.createAllProfile("1.2.3.4"); ;
return false;
}
protected override TrackingChannel GetTrackingChannel(TrackingParameters parameters)
{
//用TrackingParameters参数初始化信道
return new wxdTrackingChannel(parameters,writer );
}
}
public interface IWriter
{
void outMessage(string source, string value);
void outMessage(string source, System.Collections.ArrayList value);
}
public class textFileWriter : IWriter
{
int lineNo = 0;
System.IO.FileStream fs;
System.IO.StreamWriter wr;
public textFileWriter(string path)
{
fs = new FileStream(path, FileMode.Append, FileAccess.Write , FileShare.ReadWrite);
wr = new StreamWriter(fs, System.Text.Encoding.UTF8);
}
public void outMessage(string source, string value)
{
write("跟踪", source, value);
}
public void outMessage(string source, System.Collections.ArrayList value)
{
write("跟踪", source, value);
}
public void write(string title, string source, string value)
{
this.title(title);
this.body(source);
this.body(value);
this.end();
}
public void write(string title, string source, System.Collections.ArrayList value)
{
this.title(title);
body(source);
if (value != null)
{
foreach (object temp in value)
{
body(temp.ToString());
}
}
else
{
body("内容为空");
}
end();
}
public void title(string v)
{
lineNo++;
wr.WriteLine(lineNo.ToString());
wr.WriteLine( "┌───────────────────────────────────────────────────────────────┐");
wr.WriteLine( "│【" + v + "】" + DateTime.Now.ToString());
wr.Flush();
}
public void end()
{
wr.WriteLine("└───────────────────────────────────────────────────────────────┘");
wr.Flush();
}
public void body(string v)
{
wr.WriteLine("│"+ v);
wr.Flush();
}
}
public class wxdTrackingManager : ITrackingManager
{
WorkflowRuntime engine;
public wxdTrackingManager(WorkflowRuntime engine)
{
this.engine = engine;
}
/// <summary>
/// 得到引擎中的wxdTrackingService服务
/// </summary>
/// <param name="engine"></param>
/// <returns></returns>
public wxdTrackingService GetTrackingService()
{
if (engine == null)
{ throw new System.Exception("引擎没有实例化"); }
wxdTrackingService track = engine.GetService<wxdTrackingService>();
return track;
}
/// <summary>
/// 引擎中是否存在wxdTrackingService跟踪服务
/// </summary>
public bool IsTrackingServiceInEngine()
{
wxdTrackingService track = GetTrackingService();
if (track == null)
{ return false; }
else
{ return true; }
}
/// <summary>
/// 添加wxdTrackingService跟踪服务到引擎
/// </summary>
public string AddTrackingServiceToEngine(string filepath)
{
wxdTrackingService track;
track = new wxdTrackingService(new textFileWriter(filepath)); ;
return AddTrackingServiceToEngine(track);
}
/// <summary>
/// 添加wxdTrackingService跟踪服务到引擎
/// </summary>
public string AddTrackingServiceToEngine(wxdTrackingService track)
{
if (engine == null)
{ throw new System.Exception("引擎没有实例化"); }
if (engine.IsStarted)
{
return "引擎正在运生,无法向引擎添加wxdTrackingService服务";
}
if (track == null)
{
throw new System.Exception("wxdTrackingService跟踪服务没有实例化");
}
if (IsTrackingServiceInEngine())
{
return "引擎中已经存在wxdTrackingService跟踪服务";
}
else
{
engine.AddService(track);
return "wxdTrackingService跟踪服务已添加到引擎中";
}
}
/// <summary>
/// 从引擎中移除跟踪服务
/// </summary>
public string RemoveTrackingServiceFromEngine()
{
if (engine == null)
{ throw new System.Exception("引擎没有实例化"); }
if (engine.IsStarted)
{
return "引擎正在运行,无法移除wxdTrackingService服务";
}
wxdTrackingService track = GetTrackingService();
if (track == null)
{
return "引擎中不存在wxdTrackingService跟踪服务";
}
else
{
engine.RemoveService(track);
return "wxdTrackingService跟踪服务已移出";
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -