// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information. using System.Collections.Generic; using System.Threading.Tasks; namespace System.Reactive.Joins { public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, async (arg1) => { var res = default(TResult); try { res = Selector(arg1); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, async (arg1, arg2) => { var res = default(TResult); try { res = Selector(arg1, arg2); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, async (arg1, arg2, arg3) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, async (arg1, arg2, arg3, arg4) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, async (arg1, arg2, arg3, arg4, arg5) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, async (arg1, arg2, arg3, arg4, arg5, arg6) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var joinObserver8 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source8, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, joinObserver8, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver8.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); joinObserver8.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var joinObserver8 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source8, onError); var joinObserver9 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source9, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, joinObserver8, joinObserver9, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver8.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver9.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); joinObserver8.AddActivePlan(activePlan); joinObserver9.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var joinObserver8 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source8, onError); var joinObserver9 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source9, onError); var joinObserver10 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source10, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, joinObserver8, joinObserver9, joinObserver10, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver8.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver9.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver10.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); joinObserver8.AddActivePlan(activePlan); joinObserver9.AddActivePlan(activePlan); joinObserver10.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var joinObserver8 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source8, onError); var joinObserver9 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source9, onError); var joinObserver10 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source10, onError); var joinObserver11 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source11, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, joinObserver8, joinObserver9, joinObserver10, joinObserver11, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver8.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver9.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver10.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver11.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); joinObserver8.AddActivePlan(activePlan); joinObserver9.AddActivePlan(activePlan); joinObserver10.AddActivePlan(activePlan); joinObserver11.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var joinObserver8 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source8, onError); var joinObserver9 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source9, onError); var joinObserver10 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source10, onError); var joinObserver11 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source11, onError); var joinObserver12 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source12, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, joinObserver8, joinObserver9, joinObserver10, joinObserver11, joinObserver12, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver8.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver9.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver10.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver11.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver12.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); joinObserver8.AddActivePlan(activePlan); joinObserver9.AddActivePlan(activePlan); joinObserver10.AddActivePlan(activePlan); joinObserver11.AddActivePlan(activePlan); joinObserver12.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var joinObserver8 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source8, onError); var joinObserver9 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source9, onError); var joinObserver10 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source10, onError); var joinObserver11 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source11, onError); var joinObserver12 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source12, onError); var joinObserver13 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source13, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, joinObserver8, joinObserver9, joinObserver10, joinObserver11, joinObserver12, joinObserver13, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver8.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver9.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver10.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver11.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver12.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver13.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); joinObserver8.AddActivePlan(activePlan); joinObserver9.AddActivePlan(activePlan); joinObserver10.AddActivePlan(activePlan); joinObserver11.AddActivePlan(activePlan); joinObserver12.AddActivePlan(activePlan); joinObserver13.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var joinObserver8 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source8, onError); var joinObserver9 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source9, onError); var joinObserver10 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source10, onError); var joinObserver11 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source11, onError); var joinObserver12 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source12, onError); var joinObserver13 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source13, onError); var joinObserver14 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source14, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, joinObserver8, joinObserver9, joinObserver10, joinObserver11, joinObserver12, joinObserver13, joinObserver14, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver8.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver9.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver10.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver11.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver12.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver13.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver14.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); joinObserver8.AddActivePlan(activePlan); joinObserver9.AddActivePlan(activePlan); joinObserver10.AddActivePlan(activePlan); joinObserver11.AddActivePlan(activePlan); joinObserver12.AddActivePlan(activePlan); joinObserver13.AddActivePlan(activePlan); joinObserver14.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var joinObserver8 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source8, onError); var joinObserver9 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source9, onError); var joinObserver10 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source10, onError); var joinObserver11 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source11, onError); var joinObserver12 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source12, onError); var joinObserver13 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source13, onError); var joinObserver14 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source14, onError); var joinObserver15 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source15, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, joinObserver8, joinObserver9, joinObserver10, joinObserver11, joinObserver12, joinObserver13, joinObserver14, joinObserver15, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver8.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver9.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver10.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver11.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver12.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver13.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver14.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver15.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); joinObserver8.AddActivePlan(activePlan); joinObserver9.AddActivePlan(activePlan); joinObserver10.AddActivePlan(activePlan); joinObserver11.AddActivePlan(activePlan); joinObserver12.AddActivePlan(activePlan); joinObserver13.AddActivePlan(activePlan); joinObserver14.AddActivePlan(activePlan); joinObserver15.AddActivePlan(activePlan); return activePlan; } } public class AsyncPlan : AsyncPlan { public AsyncPattern Expression { get; } public Func Selector { get; } internal AsyncPlan(AsyncPattern expression, Func selector) { Expression = expression; Selector = selector; } internal override ActiveAsyncPlan Activate(Dictionary externalSubscriptions, IAsyncObserver observer, Func deactivate) { var onError = new Func(observer.OnErrorAsync); var joinObserver1 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source1, onError); var joinObserver2 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source2, onError); var joinObserver3 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source3, onError); var joinObserver4 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source4, onError); var joinObserver5 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source5, onError); var joinObserver6 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source6, onError); var joinObserver7 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source7, onError); var joinObserver8 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source8, onError); var joinObserver9 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source9, onError); var joinObserver10 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source10, onError); var joinObserver11 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source11, onError); var joinObserver12 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source12, onError); var joinObserver13 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source13, onError); var joinObserver14 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source14, onError); var joinObserver15 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source15, onError); var joinObserver16 = AsyncPlan.CreateObserver(externalSubscriptions, this.Expression.Source16, onError); var activePlan = default(ActiveAsyncPlan); activePlan = new ActiveAsyncPlan( joinObserver1, joinObserver2, joinObserver3, joinObserver4, joinObserver5, joinObserver6, joinObserver7, joinObserver8, joinObserver9, joinObserver10, joinObserver11, joinObserver12, joinObserver13, joinObserver14, joinObserver15, joinObserver16, async (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16) => { var res = default(TResult); try { res = Selector(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); } catch (Exception ex) { await observer.OnErrorAsync(ex).ConfigureAwait(false); return; } await observer.OnNextAsync(res).ConfigureAwait(false); }, async () => { await joinObserver1.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver2.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver3.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver4.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver5.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver6.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver7.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver8.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver9.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver10.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver11.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver12.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver13.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver14.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver15.RemoveActivePlan(activePlan).ConfigureAwait(false); await joinObserver16.RemoveActivePlan(activePlan).ConfigureAwait(false); await deactivate(activePlan).ConfigureAwait(false); } ); joinObserver1.AddActivePlan(activePlan); joinObserver2.AddActivePlan(activePlan); joinObserver3.AddActivePlan(activePlan); joinObserver4.AddActivePlan(activePlan); joinObserver5.AddActivePlan(activePlan); joinObserver6.AddActivePlan(activePlan); joinObserver7.AddActivePlan(activePlan); joinObserver8.AddActivePlan(activePlan); joinObserver9.AddActivePlan(activePlan); joinObserver10.AddActivePlan(activePlan); joinObserver11.AddActivePlan(activePlan); joinObserver12.AddActivePlan(activePlan); joinObserver13.AddActivePlan(activePlan); joinObserver14.AddActivePlan(activePlan); joinObserver15.AddActivePlan(activePlan); joinObserver16.AddActivePlan(activePlan); return activePlan; } } }