/// <summary> /// Processes a <see cref="StackNavigatorRequest"/> based on its <see cref="StackNavigatorRequestType"/>. /// </summary> /// <param name="stackNavigator">The stack navigator.</param> /// <param name="ct">The cancellation token.</param> /// <param name="request">The request to process.</param> public static Task ProcessRequest(this IStackNavigator stackNavigator, CancellationToken ct, StackNavigatorRequest request) { switch (request.RequestType) { case StackNavigatorRequestType.NavigateForward: return(stackNavigator.Navigate(ct, request)); case StackNavigatorRequestType.NavigateBack: return(stackNavigator.NavigateBack(ct)); case StackNavigatorRequestType.Clear: return(stackNavigator.Clear(ct)); case StackNavigatorRequestType.RemoveEntry: return(stackNavigator.RemoveEntries(ct, request.EntryIndexesToRemove)); default: throw new NotSupportedException($"The request type '{request.RequestType}' is not supported."); } }
/// <inheritdoc/> public Task Clear(CancellationToken ct) { return(_inner.Clear(ct)); }