e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
168 lines
4.9 KiB
C#
168 lines
4.9 KiB
C#
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
|
|
}
|
|
}
|