// // Copyright (c) Microsoft Corporation. All rights reserved. // namespace System.Activities.DynamicUpdate { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime; using System.Runtime.Serialization; [Serializable] [DataContract] public class ActivityBlockingUpdate { [NonSerialized] private Activity activity; string activityInstanceId; string originalActivityId; string updatedActivityId; string reason; public ActivityBlockingUpdate(Activity activity, string originalActivityId, string reason) : this(activity, originalActivityId, reason, null) { } public ActivityBlockingUpdate(Activity activity, string originalActivityId, string reason, string activityInstanceId) { this.activity = activity; this.Reason = reason; this.OriginalActivityId = originalActivityId; this.ActivityInstanceId = activityInstanceId; if (activity != null) { this.UpdatedActivityId = activity.Id; } } public ActivityBlockingUpdate(string updatedActivityId, string originalActivityId, string reason) : this(updatedActivityId, originalActivityId, reason, null) { } public ActivityBlockingUpdate(string updatedActivityId, string originalActivityId, string reason, string activityInstanceId) { this.UpdatedActivityId = updatedActivityId; this.OriginalActivityId = originalActivityId; this.ActivityInstanceId = activityInstanceId; this.Reason = reason; } public Activity Activity { get { return this.activity; } } public string ActivityInstanceId { get { return this.activityInstanceId; } private set { this.activityInstanceId = value; } } public string OriginalActivityId { get { return this.originalActivityId; } private set { this.originalActivityId = value; } } public string UpdatedActivityId { get { return this.updatedActivityId; } private set { this.updatedActivityId = value; } } public string Reason { get { return this.reason; } private set { this.reason = value; } } [DataMember(EmitDefaultValue = false, Name = "ActivityInstanceId")] internal string SerializedActivityInstanceId { get { return this.ActivityInstanceId; } set { this.ActivityInstanceId = value; } } [DataMember(EmitDefaultValue = false, Name = "OriginalActivityId")] internal string SerializedOriginalActivityId { get { return this.OriginalActivityId; } set { this.OriginalActivityId = value; } } [DataMember(EmitDefaultValue = false, Name = "UpdatedActivityId")] internal string SerializedUpdatedActivityId { get { return this.UpdatedActivityId; } set { this.UpdatedActivityId = value; } } [DataMember(EmitDefaultValue = false, Name = "Reason")] internal string SerializedReason { get { return this.Reason; } set { this.Reason = value; } } internal static void AddBlockingActivity(ref Collection blockingActivities, Activity activity, string originalActivityId, string reason, string activityInstanceId) { if (blockingActivities == null) { blockingActivities = new Collection(); } ActivityBlockingUpdate blockingActivity = new ActivityBlockingUpdate(activity, originalActivityId, reason, activityInstanceId); blockingActivities.Add(blockingActivity); } internal static void AddBlockingActivity(ref Collection blockingActivities, string updatedActivityId, string originalActivityId, string reason, string activityInstanceId) { if (blockingActivities == null) { blockingActivities = new Collection(); } ActivityBlockingUpdate blockingActivity = new ActivityBlockingUpdate(updatedActivityId, originalActivityId, reason, activityInstanceId); blockingActivities.Add(blockingActivity); } } }