// // Copyright (c) Microsoft Corporation. All rights reserved. // namespace System.Activities.DynamicUpdate { using System; using System.Activities; using System.Activities.Runtime; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime; public class NativeActivityUpdateContext { private bool isDisposed; private ActivityInstanceMap instanceMap; private ActivityExecutor activityExecutor; private ActivityInstance currentInstance; private NativeActivityContext innerContext; private DynamicUpdateMap updateMap; private DynamicUpdateMapEntry mapEntry; private DynamicUpdateMap rootMap; internal NativeActivityUpdateContext(ActivityInstanceMap instanceMap, ActivityExecutor activityExecutor, ActivityInstance currentInstance, DynamicUpdateMap updateMap, DynamicUpdateMapEntry mapEntry, DynamicUpdateMap rootMap) { this.isDisposed = false; this.instanceMap = instanceMap; this.activityExecutor = activityExecutor; this.currentInstance = currentInstance; this.updateMap = updateMap; this.mapEntry = mapEntry; this.rootMap = rootMap; this.innerContext = new NativeActivityContext(this.currentInstance, this.activityExecutor, this.activityExecutor.RawBookmarkManager); Fx.Assert( this.instanceMap != null && this.activityExecutor != null && this.currentInstance != null && this.currentInstance.Activity != null, "instanceMap, execturo, updateMap, targetDefinition, currentActivity and currentInstnace all must not be null."); } public string ActivityInstanceId { get { ThrowIfDisposed(); return this.currentInstance.Id; } } public bool IsCancellationRequested { get { ThrowIfDisposed(); return this.currentInstance.IsCancellationRequested; } } public BookmarkScope DefaultBookmarkScope { get { ThrowIfDisposed(); return this.activityExecutor.BookmarkScopeManager.Default; } } internal Activity CurrentActivity { get { return this.currentInstance.Activity; } } internal bool IsUpdateDisallowed { get; private set; } internal string DisallowedReason { get; private set; } public object FindExecutionProperty(string name) { ThrowIfDisposed(); ExecutionProperties exeProperties = new ExecutionProperties(this.innerContext, this.currentInstance, this.currentInstance.PropertyManager); return exeProperties.Find(name); } public void DisallowUpdate(string reason) { ThrowIfDisposed(); this.DisallowedReason = reason; this.IsUpdateDisallowed = true; } public object GetSavedOriginalValue(Activity childActivity) { ThrowIfDisposed(); bool isReferencedChild; NativeActivityUpdateMapMetadata.ValidateOriginalValueAccess(this.CurrentActivity, childActivity, "childActivity", out isReferencedChild); if (!isReferencedChild && !this.updateMap.IsNoChanges) { // // if the map is a NoChanges map, it is gauranteed that no original value has ever been saved // DynamicUpdateMapEntry entry; if (this.updateMap.TryGetUpdateEntryByNewId(childActivity.InternalId, out entry)) { return entry.SavedOriginalValueFromParent; } } return null; } public bool IsNewlyAdded(Activity childActivity) { ThrowIfDisposed(); bool isReferencedChild; NativeActivityUpdateMapMetadata.ValidateOriginalValueAccess(this.CurrentActivity, childActivity, "childActivity", out isReferencedChild); DynamicUpdateMap mapContainingChild; DynamicUpdateMapEntry entry; if (isReferencedChild) { mapContainingChild = this.rootMap; int[] idArray = childActivity.QualifiedId.AsIDArray(); for (int i = 0; i < idArray.Length - 1; i++) { mapContainingChild.TryGetUpdateEntryByNewId(idArray[i], out entry); Fx.Assert(entry != null, "entry must not be null here."); if (entry.ImplementationUpdateMap == null) { // if a reference childActivity were newly added, // then we must have had a complete map chain from rootMap to the implementation map for the IdSpace the childActivity is declared in. return false; } mapContainingChild = entry.ImplementationUpdateMap; } } else { if (this.updateMap == DynamicUpdateMap.DummyMap) { // if a non-reference childActivity were newly added, // then we must have had a valid map, not DummyMap. return false; } mapContainingChild = this.updateMap; } return !mapContainingChild.TryGetUpdateEntryByNewId(childActivity.InternalId, out entry); } public object GetSavedOriginalValue(string propertyName) { ThrowIfDisposed(); if (propertyName == null) { throw FxTrace.Exception.ArgumentNull("propertyName"); } object result = null; if (this.mapEntry.SavedOriginalValues != null) { this.mapEntry.SavedOriginalValues.TryGetValue(propertyName, out result); } return result; } public object GetValue(Argument argument) { ThrowIfDisposed(); return this.innerContext.GetValue(argument); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "We explicitly provide a RuntimeArgument overload to avoid requiring the object type parameter.")] public object GetValue(RuntimeArgument runtimeArgument) { ThrowIfDisposed(); return this.innerContext.GetValue(runtimeArgument); } public void SetValue(Argument argument, object value) { ThrowIfDisposed(); this.innerContext.SetValue(argument, value); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] public T GetValue(Variable variable) { ThrowIfDisposed(); return this.innerContext.GetValue(variable); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "We explicitly provide a Variable overload to avoid requiring the object type parameter.")] public object GetValue(Variable variable) { ThrowIfDisposed(); return this.innerContext.GetValue(variable); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] public void SetValue(Variable variable, T value) { ThrowIfDisposed(); this.innerContext.SetValue(variable, value); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "We explicitly provide a Variable overload to avoid requiring the object type parameter.")] public void SetValue(Variable variable, object value) { ThrowIfDisposed(); this.innerContext.SetValue(variable, value); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] public Location GetLocation(Variable variable) { ThrowIfDisposed(); return this.innerContext.GetLocation(variable); } public Bookmark CreateBookmark(string name) { ThrowIfDisposed(); return this.innerContext.CreateBookmark(name); } public Bookmark CreateBookmark(string name, BookmarkCallback callback) { return this.CreateBookmark(name, callback, BookmarkOptions.None); } public Bookmark CreateBookmark(string name, BookmarkCallback callback, BookmarkOptions options) { ThrowIfDisposed(); return this.innerContext.CreateBookmark(name, callback, options); } public Bookmark CreateBookmark(string name, BookmarkCallback callback, BookmarkScope scope) { return this.CreateBookmark(name, callback, scope, BookmarkOptions.None); } public Bookmark CreateBookmark(string name, BookmarkCallback callback, BookmarkScope scope, BookmarkOptions options) { ThrowIfDisposed(); return this.innerContext.CreateBookmark(name, callback, scope, options); } public Bookmark CreateBookmark() { return this.CreateBookmark((BookmarkCallback)null); } public Bookmark CreateBookmark(BookmarkCallback callback) { return this.CreateBookmark(callback, BookmarkOptions.None); } public Bookmark CreateBookmark(BookmarkCallback callback, BookmarkOptions options) { ThrowIfDisposed(); return this.innerContext.CreateBookmark(callback, options); } public void RemoveAllBookmarks() { ThrowIfDisposed(); this.innerContext.RemoveAllBookmarks(); } public bool RemoveBookmark(string name) { ThrowIfDisposed(); return this.innerContext.RemoveBookmark(name); } public bool RemoveBookmark(Bookmark bookmark) { ThrowIfDisposed(); return this.innerContext.RemoveBookmark(bookmark); } public bool RemoveBookmark(string name, BookmarkScope scope) { ThrowIfDisposed(); return this.innerContext.RemoveBookmark(name, scope); } public void ScheduleActivity(Activity activity) { this.ScheduleActivity(activity, null, null); } public void ScheduleActivity(Activity activity, CompletionCallback onCompleted) { this.ScheduleActivity(activity, onCompleted, null); } public void ScheduleActivity(Activity activity, FaultCallback onFaulted) { this.ScheduleActivity(activity, null, onFaulted); } public void ScheduleActivity(Activity activity, CompletionCallback onCompleted, FaultCallback onFaulted) { ThrowIfDisposed(); this.innerContext.ScheduleActivity(activity, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleActivity(Activity activity, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleActivity(activity, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction(ActivityAction activityAction, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction(ActivityAction activityAction, T argument, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, argument, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction(ActivityAction activityAction, T1 argument1, T2 argument2, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, argument1, argument2, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction(ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, argument1, argument2, argument3, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, argument1, argument2, argument3, argument4, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, argument1, argument2, argument3, argument4, argument5, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, argument1, argument2, argument3, argument4, argument5, argument6, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction(activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction( activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction( activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction( activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, T13 argument13, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction( activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, argument13, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, T13 argument13, T14 argument14, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction( activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, argument13, argument14, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, T13 argument13, T14 argument14, T15 argument15, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction( activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, argument13, argument14, argument15, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleAction( ActivityAction activityAction, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, T13 argument13, T14 argument14, T15 argument15, T16 argument16, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleAction( activityAction, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, argument13, argument14, argument15, argument16, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc(ActivityFunc activityFunc, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc(ActivityFunc activityFunc, T argument, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc(ActivityFunc activityFunc, T1 argument1, T2 argument2, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument1, argument2, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument1, argument2, argument3, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument1, argument2, argument3, argument4, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument1, argument2, argument3, argument4, argument5, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc(activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc( activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc( activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, T13 argument13, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc( activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, argument13, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, T13 argument13, T14 argument14, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc( activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, argument13, argument14, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, T13 argument13, T14 argument14, T15 argument15, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc( activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, argument13, argument14, argument15, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.ConsiderPassingBaseTypesAsParameters, Justification = "Generic needed for type inference")] [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleFunc( ActivityFunc activityFunc, T1 argument1, T2 argument2, T3 argument3, T4 argument4, T5 argument5, T6 argument6, T7 argument7, T8 argument8, T9 argument9, T10 argument10, T11 argument11, T12 argument12, T13 argument13, T14 argument14, T15 argument15, T16 argument16, CompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleFunc( activityFunc, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10, argument11, argument12, argument13, argument14, argument15, argument16, onCompleted, onFaulted); } [SuppressMessage(FxCop.Category.Design, FxCop.Rule.DefaultParametersShouldNotBeUsed, Justification = "Temporary suppression - to be addressed by DCR 127467")] public void ScheduleDelegate(ActivityDelegate activityDelegate, IDictionary inputParameters, DelegateCompletionCallback onCompleted = null, FaultCallback onFaulted = null) { ThrowIfDisposed(); this.innerContext.ScheduleDelegate(activityDelegate, inputParameters, onCompleted, onFaulted); } // extra insurance against misuse (if someone stashes away the execution context to use later) internal void Dispose() { this.isDisposed = true; this.instanceMap = null; this.activityExecutor = null; this.currentInstance = null; if (this.innerContext != null) { this.innerContext.Dispose(); this.innerContext = null; } } internal void ThrowIfDisposed() { if (this.isDisposed) { throw FxTrace.Exception.AsError( new ObjectDisposedException(this.GetType().FullName, SR.NAUCDisposed)); } } } }