< Summary

Information
Class: MyNet.UI.Navigation.NavigationClient
Assembly: MyNet.UI
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Navigation/NavigationClient.cs
Tag: 323_28699572109
Line coverage
91%
Covered lines: 11
Uncovered lines: 1
Coverable lines: 12
Total lines: 59
Line coverage: 91.6%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
add_StateChanged(...)100%11100%
remove_StateChanged(...)100%210%
get_CurrentContext()100%11100%
get_CanGoBack()100%11100%
get_CanGoForward()100%11100%
To()100%11100%
NavigateToAsync(...)100%11100%
GoBackAsync(...)100%11100%
GoForwardAsync(...)100%11100%
ResetAsync()100%11100%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Navigation/NavigationClient.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="NavigationClient.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using System;
 8using System.Threading;
 9using System.Threading.Tasks;
 10using Microsoft.Extensions.DependencyInjection;
 11using MyNet.UI.Navigation.Models;
 12
 13namespace MyNet.UI.Navigation;
 14
 15/// <summary>
 16/// Default high-level navigation client.
 17/// </summary>
 18public sealed class NavigationClient(INavigationService navigationService, IServiceProvider serviceProvider) : INavigati
 19{
 20    /// <inheritdoc />
 21    public event EventHandler<NavigationStateChangedEventArgs>? StateChanged
 22    {
 323        add => navigationService.StateChanged += value;
 024        remove => navigationService.StateChanged -= value;
 25    }
 26
 27    /// <inheritdoc />
 928    public NavigationContext? CurrentContext => navigationService.CurrentContext;
 29
 30    /// <inheritdoc />
 631    public bool CanGoBack => navigationService.CanGoBack;
 32
 33    /// <inheritdoc />
 634    public bool CanGoForward => navigationService.CanGoForward;
 35
 36    /// <inheritdoc />
 37    public INavigationRequestBuilder To<TPage>()
 38        where TPage : class, INavigationPage
 1239        => new NavigationRequestBuilder(
 1240            () => ActivatorUtilities.GetServiceOrCreateInstance<TPage>(serviceProvider),
 1241            navigationService);
 42
 43    /// <inheritdoc />
 44    public Task<NavigationResult> NavigateToAsync<TPage>(object? parameters = null, CancellationToken cancellationToken 
 45        where TPage : class, INavigationPage
 946        => To<TPage>().With(parameters).GoAsync(cancellationToken);
 47
 48    /// <inheritdoc />
 49    public Task<NavigationResult> GoBackAsync(CancellationToken cancellationToken = default)
 350        => navigationService.GoBackAsync(cancellationToken);
 51
 52    /// <inheritdoc />
 53    public Task<NavigationResult> GoForwardAsync(CancellationToken cancellationToken = default)
 354        => navigationService.GoForwardAsync(cancellationToken);
 55
 56    /// <inheritdoc />
 357    public Task ResetAsync() => navigationService.ResetAsync();
 58}
 59