You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,282 @@
|
||||
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
|
||||
{
|
||||
|
||||
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
||||
public sealed class ActivityTrackPoint
|
||||
{
|
||||
#region Private Data Members
|
||||
|
||||
private ActivityTrackingLocationCollection _match = new ActivityTrackingLocationCollection();
|
||||
private ActivityTrackingLocationCollection _exclude = new ActivityTrackingLocationCollection();
|
||||
private TrackingAnnotationCollection _annotations = new TrackingAnnotationCollection();
|
||||
private ExtractCollection _extracts = new ExtractCollection();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public ActivityTrackingLocationCollection MatchingLocations
|
||||
{
|
||||
get { return _match; }
|
||||
}
|
||||
|
||||
public ActivityTrackingLocationCollection ExcludedLocations
|
||||
{
|
||||
get { return _exclude; }
|
||||
}
|
||||
|
||||
public TrackingAnnotationCollection Annotations
|
||||
{
|
||||
get { return _annotations; }
|
||||
}
|
||||
|
||||
public ExtractCollection Extracts
|
||||
{
|
||||
get { return _extracts; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Internal Matching Methods
|
||||
|
||||
internal bool IsMatch(Activity activity, out List<ActivityExecutionStatus> status, out bool hasCondition)
|
||||
{
|
||||
hasCondition = false;
|
||||
//
|
||||
// Check if we have any conditions on this track point.
|
||||
// If we do signal that we need to recheck this item for each activity event (can't cache)
|
||||
foreach (ActivityTrackingLocation location in _exclude)
|
||||
{
|
||||
if ((null != location.Conditions) && (location.Conditions.Count > 0))
|
||||
{
|
||||
hasCondition = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
foreach (ActivityTrackingLocation location in _match)
|
||||
{
|
||||
if ((null != location.Conditions) && (location.Conditions.Count > 0))
|
||||
{
|
||||
hasCondition = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
status = new List<ActivityExecutionStatus>(9);
|
||||
//
|
||||
// Do matches first
|
||||
foreach (ActivityTrackingLocation location in _match)
|
||||
{
|
||||
if (location.Match(activity, true))
|
||||
{
|
||||
//
|
||||
// Insert all status values for this location
|
||||
foreach (ActivityExecutionStatus s in location.ExecutionStatusEvents)
|
||||
{
|
||||
if (!status.Contains(s))
|
||||
status.Add(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// If no includes matched
|
||||
// this trackpoint isn't relevant to this activity
|
||||
if (0 == status.Count)
|
||||
return false;
|
||||
//
|
||||
// Check the excludes but only if there aren't any conditions
|
||||
if (!hasCondition)
|
||||
{
|
||||
foreach (ActivityTrackingLocation location in _exclude)
|
||||
{
|
||||
if (location.Match(activity, true))
|
||||
{
|
||||
//
|
||||
// Remove all status values for this location
|
||||
foreach (ActivityExecutionStatus s in location.ExecutionStatusEvents)
|
||||
status.Remove(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (status.Count > 0);
|
||||
}
|
||||
|
||||
internal bool IsMatch(Activity activity, ActivityExecutionStatus status)
|
||||
{
|
||||
//
|
||||
// Do matches first
|
||||
bool included = false;
|
||||
foreach (ActivityTrackingLocation location in _match)
|
||||
{
|
||||
if (location.Match(activity, false))
|
||||
{
|
||||
if (location.ExecutionStatusEvents.Contains(status))
|
||||
{
|
||||
included = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// If no includes matched this trackpoint
|
||||
// doesn't match this activity
|
||||
if (!included)
|
||||
return false;
|
||||
//
|
||||
// Check the excludes
|
||||
foreach (ActivityTrackingLocation location in _exclude)
|
||||
{
|
||||
//
|
||||
// If any exclude matches this trackpoint
|
||||
// doesn't match this activity
|
||||
if (location.Match(activity, false))
|
||||
{
|
||||
if (location.ExecutionStatusEvents.Contains(status))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return included;
|
||||
}
|
||||
|
||||
internal void Track(Activity activity, IServiceProvider provider, IList<TrackingDataItem> items)
|
||||
{
|
||||
foreach (TrackingExtract e in _extracts)
|
||||
e.GetData(activity, provider, items);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
||||
public sealed class UserTrackPoint
|
||||
{
|
||||
#region Private Data Members
|
||||
|
||||
private UserTrackingLocationCollection _match = new UserTrackingLocationCollection();
|
||||
private UserTrackingLocationCollection _exclude = new UserTrackingLocationCollection();
|
||||
private TrackingAnnotationCollection _annotations = new TrackingAnnotationCollection();
|
||||
private ExtractCollection _extracts = new ExtractCollection();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public UserTrackingLocationCollection MatchingLocations
|
||||
{
|
||||
get { return _match; }
|
||||
}
|
||||
|
||||
public UserTrackingLocationCollection ExcludedLocations
|
||||
{
|
||||
get { return _exclude; }
|
||||
}
|
||||
|
||||
public TrackingAnnotationCollection Annotations
|
||||
{
|
||||
get { return _annotations; }
|
||||
}
|
||||
|
||||
public ExtractCollection Extracts
|
||||
{
|
||||
get { return _extracts; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Internal Matching Methods
|
||||
|
||||
internal bool IsMatch(Activity activity)
|
||||
{
|
||||
//
|
||||
// Check include, excludes checked at event time
|
||||
foreach (UserTrackingLocation location in _match)
|
||||
if (location.Match(activity))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
internal bool IsMatch(Activity activity, string keyName, object argument)
|
||||
{
|
||||
//
|
||||
// We need to check runtime values here
|
||||
//
|
||||
// Check the excludes - if any exclude matches based on activity, key and arg type we're not a match
|
||||
foreach (UserTrackingLocation location in _exclude)
|
||||
if (location.Match(activity, keyName, argument))
|
||||
return false;
|
||||
//
|
||||
// No excludes match, check includes
|
||||
foreach (UserTrackingLocation location in _match)
|
||||
if (location.Match(activity, keyName, argument))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
internal void Track(Activity activity, object arg, IServiceProvider provider, IList<TrackingDataItem> items)
|
||||
{
|
||||
foreach (TrackingExtract e in _extracts)
|
||||
e.GetData(activity, provider, items);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
||||
public sealed class WorkflowTrackPoint
|
||||
{
|
||||
#region Private Data Members
|
||||
|
||||
private WorkflowTrackingLocation _location = new WorkflowTrackingLocation();
|
||||
private TrackingAnnotationCollection _annotations = new TrackingAnnotationCollection();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public WorkflowTrackingLocation MatchingLocation
|
||||
{
|
||||
get { return _location; }
|
||||
set { _location = value; }
|
||||
}
|
||||
|
||||
public TrackingAnnotationCollection Annotations
|
||||
{
|
||||
get { return _annotations; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Internal Matching Methods
|
||||
|
||||
internal bool IsMatch(TrackingWorkflowEvent status)
|
||||
{
|
||||
return _location.Match(status);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user