1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Xml;
using System.Xml.Schema;
using System.IO;
using System.Reflection;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Security.Permissions;
using System.Globalization;
//using System.Workflow.Activities;
using System.Workflow.ComponentModel;
using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;
using Hosting = System.Workflow.Runtime.Hosting;
namespace System.Workflow.Runtime.Tracking
{
/// <summary>
/// Abstract base for classes that extract data
/// </summary>
[Serializable]
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public abstract class TrackingExtract
{
public abstract TrackingAnnotationCollection Annotations { get; }
public abstract string Member { get; set; }
internal abstract void GetData(Activity activity, IServiceProvider provider, IList<TrackingDataItem> items);
}
/// <summary>
/// Used to extract data members from a workflow's code separation partial class.
/// </summary>
[Serializable]
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public class WorkflowDataTrackingExtract : TrackingExtract
{
#region Private DataMembers
private string _name = null;
private TrackingAnnotationCollection _annotations = new TrackingAnnotationCollection();
#endregion
#region Constructors
/// <summary>
/// Default constructor.
/// </summary>
public WorkflowDataTrackingExtract()
{
}
/// <summary>
/// Construct with a Member list.
/// </summary>
/// <param name="member">List of "." delineated property names</param>
public WorkflowDataTrackingExtract(string member)
{
_name = member;
}
#endregion
#region TrackingExtract
public override string Member
{
get { return _name; }
set { _name = value; }
}
public override TrackingAnnotationCollection Annotations
{
get { return _annotations; }
}
internal override void GetData(Activity activity, IServiceProvider provider, IList<TrackingDataItem> items)
{
Activity root = ContextActivityUtils.RootContextActivity(activity);
if ((null == _name) || (0 == _name.Trim().Length))
{
//
// If we don't have a name we get everything
PropertyHelper.GetAllMembers(root, items, _annotations);
}
else
{
TrackingDataItem item = null;
PropertyHelper.GetProperty(_name, root, _annotations, out item);
if (null != item)
items.Add(item);
}
}
#endregion
}
/// <summary>
/// Used to extract data members from an activity in a workflow instance.
/// </summary>
[Serializable]
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public class ActivityDataTrackingExtract : TrackingExtract
{
#region Private DataMembers
private string _name = null;
private TrackingAnnotationCollection _annotations = new TrackingAnnotationCollection();
#endregion
#region Constructors
/// <summary>
/// Default constructor.
/// </summary>
public ActivityDataTrackingExtract()
{
}
/// <summary>
/// Construct with a Member list.
/// </summary>
/// <param name="member">List of "." delineated property names</param>
public ActivityDataTrackingExtract(string member)
{
_name = member;
}
#endregion
#region TrackingExtract
public override string Member
{
get { return _name; }
set { _name = value; }
}
public override TrackingAnnotationCollection Annotations
{
get { return _annotations; }
}
internal override void GetData(Activity activity, IServiceProvider provider, IList<TrackingDataItem> items)
{
if ((null == _name) || (0 == _name.Trim().Length))
{
//
// If we don't have a name we get everything
PropertyHelper.GetAllMembers(activity, items, _annotations);
}
else
{
TrackingDataItem item = null;
PropertyHelper.GetProperty(_name, activity, _annotations, out item);
if (null != item)
items.Add(item);
}
}
#endregion
}
}
|