< Summary

Information
Class: MyNet.UI.Dialogs.FileDialogs.FileDialogBuilderBase<T1, T2>
Assembly: MyNet.UI
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Dialogs/FileDialogs/FileDialogBuilderBase.cs
Tag: 323_28699572109
Line coverage
83%
Covered lines: 10
Uncovered lines: 2
Coverable lines: 12
Total lines: 67
Line coverage: 83.3%
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
.ctor()100%11100%
WithFileName(...)100%11100%
WithInitialDirectory(...)100%11100%
WithFilters(...)100%11100%
WithDefaultExtension(...)100%11100%
WithTitle(...)100%210%
Build()100%11100%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Dialogs/FileDialogs/FileDialogBuilderBase.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="FileDialogBuilderBase.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using System.Threading;
 8using System.Threading.Tasks;
 9
 10namespace MyNet.UI.Dialogs.FileDialogs;
 11
 12/// <summary>
 13/// Base implementation for fluent file dialog builders.
 14/// </summary>
 15/// <typeparam name="TBuilder">The concrete builder type.</typeparam>
 16/// <typeparam name="TSettings">The dialog settings type.</typeparam>
 17public abstract class FileDialogBuilderBase<TBuilder, TSettings> : IFileDialogBuilder<TBuilder, TSettings>
 18    where TBuilder : FileDialogBuilderBase<TBuilder, TSettings>
 19    where TSettings : FileDialogSettings, new()
 20{
 21    /// <summary>
 22    /// Gets the settings being configured.
 23    /// </summary>
 924    protected TSettings Settings { get; } = new();
 25
 26    /// <inheritdoc />
 27    public TBuilder WithFileName(string fileName)
 28    {
 629        Settings.FileName = fileName;
 630        return (TBuilder)this;
 31    }
 32
 33    /// <inheritdoc />
 34    public TBuilder WithInitialDirectory(string initialDirectory)
 35    {
 336        Settings.InitialDirectory = initialDirectory;
 337        return (TBuilder)this;
 38    }
 39
 40    /// <inheritdoc />
 41    public TBuilder WithFilters(string? filters)
 42    {
 343        Settings.Filters = filters;
 344        return (TBuilder)this;
 45    }
 46
 47    /// <inheritdoc />
 48    public TBuilder WithDefaultExtension(string defaultExtension)
 49    {
 350        Settings.DefaultExtension = defaultExtension;
 351        return (TBuilder)this;
 52    }
 53
 54    /// <inheritdoc />
 55    public TBuilder WithTitle(string title)
 56    {
 057        Settings.Title = title;
 058        return (TBuilder)this;
 59    }
 60
 61    /// <inheritdoc />
 662    public TSettings Build() => Settings;
 63
 64    /// <inheritdoc />
 65    public abstract Task<FileDialogResult> PickAsync(CancellationToken cancellationToken = default);
 66}
 67