< Summary

Information
Line coverage
4%
Covered lines: 1
Uncovered lines: 24
Coverable lines: 25
Total lines: 97
Line coverage: 4%
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
RunIndeterminateAsync(...)100%210%
RunIndeterminateAsync(...)100%11100%
RunDeterminateAsync(...)100%210%
RunProgressionAsync(...)100%210%
RunProgressionAsync(...)100%210%
RunIndeterminateAsync(...)100%210%
RunIndeterminateAsync(...)100%210%
RunDeterminateAsync(...)100%210%
RunProgressionAsync(...)100%210%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Loading/Extensions/BusyExtensions.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="BusyExtensions.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 MyNet.UI.Loading.Models;
 11
 12#pragma warning disable IDE0130
 13namespace MyNet.UI.Loading;
 14#pragma warning restore IDE0130
 15
 16/// <summary>
 17/// Extension methods for <see cref="IBusyService"/>.
 18/// </summary>
 19public static class BusyExtensions
 20{
 21    /// <summary>
 22    /// Extension methods for <see cref="IBusyService"/>.
 23    /// </summary>
 24    extension(IBusyService busyService)
 25    {
 26        /// <summary>
 27        /// Runs an indeterminate busy operation.
 28        /// </summary>
 29        public Task RunIndeterminateAsync(Func<IndeterminateBusy, CancellationToken, Task> action, CancellationToken can
 030            => busyService.RunAsync(action, cancellationToken);
 31
 32        /// <summary>
 33        /// Runs an indeterminate busy operation without access to the busy instance.
 34        /// </summary>
 35        public Task RunIndeterminateAsync(Func<CancellationToken, Task> action, CancellationToken cancellationToken = de
 3936            => busyService.RunAsync<IndeterminateBusy>((_, ct) => action(ct), cancellationToken);
 37
 38        /// <summary>
 39        /// Runs a determinate busy operation.
 40        /// </summary>
 41        public Task RunDeterminateAsync(Func<DeterminateBusy, CancellationToken, Task> action, CancellationToken cancell
 042            => busyService.RunAsync(action, cancellationToken);
 43
 44        /// <summary>
 45        /// Runs a progression busy operation (multi-step progress and message history).
 46        /// </summary>
 47        public Task RunProgressionAsync(Func<ProgressionBusy, CancellationToken, Task> action, CancellationToken cancell
 048            => busyService.RunAsync(action, cancellationToken);
 49
 50        /// <summary>
 51        /// Runs a progression busy operation without access to the cancellation token.
 52        /// </summary>
 53        public Task RunProgressionAsync(Func<ProgressionBusy, Task> action)
 054            => busyService.RunAsync<ProgressionBusy>((busy, _) => action(busy));
 55
 56        /// <summary>
 57        /// Runs an indeterminate busy operation (synchronous action body).
 58        /// </summary>
 59        public Task RunIndeterminateAsync(Action<IndeterminateBusy, CancellationToken> action)
 060            => busyService.RunAsync<IndeterminateBusy>((busy, ct) =>
 061            {
 062                action(busy, ct);
 063                return Task.CompletedTask;
 064            });
 65
 66        /// <summary>
 67        /// Runs an indeterminate busy operation (synchronous action body).
 68        /// </summary>
 69        public Task RunIndeterminateAsync(Action<CancellationToken> action)
 070            => busyService.RunAsync<IndeterminateBusy>((_, ct) =>
 071            {
 072                action(ct);
 073                return Task.CompletedTask;
 074            });
 75
 76        /// <summary>
 77        /// Runs a determinate busy operation (synchronous action body).
 78        /// </summary>
 79        public Task RunDeterminateAsync(Action<DeterminateBusy, CancellationToken> action)
 080            => busyService.RunAsync<DeterminateBusy>((busy, ct) =>
 081            {
 082                action(busy, ct);
 083                return Task.CompletedTask;
 084            });
 85
 86        /// <summary>
 87        /// Runs a progression busy operation (synchronous action body).
 88        /// </summary>
 89        public Task RunProgressionAsync(Action<ProgressionBusy, CancellationToken> action)
 090            => busyService.RunAsync<ProgressionBusy>((busy, ct) =>
 091            {
 092                action(busy, ct);
 093                return Task.CompletedTask;
 094            });
 95    }
 96}
 97