< Summary

Information
Class: MyNet.UI.Dialogs.ContentDialogs.DialogBuilder<T>
Assembly: MyNet.UI
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Dialogs/ContentDialogs/DialogBuilder.cs
Tag: 323_28699572109
Line coverage
0%
Covered lines: 0
Uncovered lines: 18
Coverable lines: 18
Total lines: 129
Line coverage: 0%
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

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Dialogs/ContentDialogs/DialogBuilder.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="DialogBuilder.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.ContentDialogs;
 11
 12/// <summary>
 13/// Default implementation of <see cref="IDialogBuilder"/> for non-typed dialogs.
 14/// </summary>
 15/// <param name="service">The content dialog service used to display the dialog.</param>
 16/// <param name="dialog">The dialog view model to be displayed.</param>
 17public sealed class DialogBuilder(IContentDialogService service, IDialog dialog) : IDialogBuilder
 18{
 19    private readonly DialogOptions _options = new() { Dialog = dialog };
 20
 21    /// <inheritdoc />
 22    public IDialogBuilder AsModal()
 23    {
 24        _options.IsModal = true;
 25        return this;
 26    }
 27
 28    /// <inheritdoc />
 29    public IDialogBuilder AsNonModal()
 30    {
 31        _options.IsModal = false;
 32        return this;
 33    }
 34
 35    /// <inheritdoc />
 36    public IDialogBuilder WithTitle(string title)
 37    {
 38        _options.Title = title;
 39        return this;
 40    }
 41
 42    /// <inheritdoc />
 43    public IDialogBuilder WithOwner(object owner)
 44    {
 45        _options.Owner = owner;
 46        return this;
 47    }
 48
 49    /// <inheritdoc />
 50    public IDialogBuilder CloseOnOverlayClick(bool value = true)
 51    {
 52        _options.CloseOnOverlayClick = value;
 53        return this;
 54    }
 55
 56    /// <inheritdoc />
 57    public Task<DialogResult<bool>> ShowAsync(CancellationToken cancellationToken = default)
 58        => service.ShowAsync(dialog, _options, cancellationToken);
 59}
 60
 61/// <summary>
 62/// Default implementation of <see cref="IDialogBuilder{TResult}"/> for typed dialogs.
 63/// </summary>
 64/// <typeparam name="TResult">The type of the value returned by the dialog.</typeparam>
 65/// <param name="service">The content dialog service used to display the dialog.</param>
 66/// <param name="dialog">The typed dialog view model to be displayed.</param>
 67public sealed class DialogBuilder<TResult>(IContentDialogService service, IDialog<TResult> dialog) : IDialogBuilder<TRes
 68{
 069    private readonly DialogOptions _options = new() { Dialog = dialog };
 70
 71    /// <inheritdoc />
 72    public IDialogBuilder<TResult> AsModal()
 73    {
 074        _options.IsModal = true;
 075        return this;
 76    }
 77
 78    /// <inheritdoc />
 079    IDialogBuilder IDialogBuilder.AsModal() => AsModal();
 80
 81    /// <inheritdoc />
 82    public IDialogBuilder<TResult> AsNonModal()
 83    {
 084        _options.IsModal = false;
 085        return this;
 86    }
 87
 88    /// <inheritdoc />
 089    IDialogBuilder IDialogBuilder.AsNonModal() => AsNonModal();
 90
 91    /// <inheritdoc />
 92    public IDialogBuilder<TResult> WithTitle(string title)
 93    {
 094        _options.Title = title;
 095        return this;
 96    }
 97
 98    /// <inheritdoc />
 099    IDialogBuilder IDialogBuilder.WithTitle(string title) => WithTitle(title);
 100
 101    /// <inheritdoc />
 102    public IDialogBuilder<TResult> WithOwner(object owner)
 103    {
 0104        _options.Owner = owner;
 0105        return this;
 106    }
 107
 108    /// <inheritdoc />
 0109    IDialogBuilder IDialogBuilder.WithOwner(object owner) => WithOwner(owner);
 110
 111    /// <inheritdoc />
 112    public IDialogBuilder<TResult> CloseOnOverlayClick(bool value = true)
 113    {
 0114        _options.CloseOnOverlayClick = value;
 0115        return this;
 116    }
 117
 118    /// <inheritdoc />
 0119    IDialogBuilder IDialogBuilder.CloseOnOverlayClick(bool value) => CloseOnOverlayClick(value);
 120
 121    /// <inheritdoc />
 122    Task<DialogResult<bool>> IDialogBuilder.ShowAsync(CancellationToken cancellationToken)
 0123        => service.ShowAsync((IDialog)dialog, _options, cancellationToken);
 124
 125    /// <inheritdoc />
 126    public Task<DialogResult<TResult>> ShowAsync(CancellationToken cancellationToken = default)
 0127        => service.ShowAsync(dialog, _options, cancellationToken);
 128}
 129