Exemplo n.º 1
0
        /// <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.");
            }
        }
Exemplo n.º 2
0
 /// <inheritdoc/>
 public Task Clear(CancellationToken ct)
 {
     return(_inner.Clear(ct));
 }