83 lines
2.0 KiB
C#
83 lines
2.0 KiB
C#
|
|
|
|
using System;
|
|
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
namespace WPFluent.Controls;
|
|
|
|
public class PendingHandler(PendingBoxDialog pendingBoxDialog) : IPendingHandler
|
|
{
|
|
public PendingBoxDialog Dialog { get; protected set; } = pendingBoxDialog;
|
|
|
|
public event EventHandler? Closed;
|
|
|
|
public event EventHandler? Cancel;
|
|
|
|
public DateTime StartTime { get; set; } = DateTime.Now;
|
|
|
|
public virtual string? Message
|
|
{
|
|
get => Dialog.Dispatcher.Invoke(() => Dialog.Message);
|
|
set => Dialog.Dispatcher.Invoke(() => Dialog.Message = value);
|
|
}
|
|
|
|
public virtual bool IsShowCancel
|
|
{
|
|
get => Dialog.Dispatcher.Invoke(() => Dialog.IsShowCancel);
|
|
set => Dialog.Dispatcher.Invoke(() => Dialog.IsShowCancel = value);
|
|
}
|
|
|
|
public virtual bool Canceled { get; protected set; } = false;
|
|
|
|
public virtual bool CloseOnCanceled { get; set; } = true;
|
|
|
|
[SuppressMessage("Usage", "CA1816:Dispose methods should call SuppressFinalize")]
|
|
[SuppressMessage("CodeQuality", "IDE0079:Remove unnecessary suppression")]
|
|
public virtual void Dispose()
|
|
{
|
|
try
|
|
{
|
|
Close();
|
|
}
|
|
catch
|
|
{
|
|
///
|
|
}
|
|
}
|
|
|
|
public virtual void Show()
|
|
=> Dialog?.Show();
|
|
|
|
[Obsolete("Use Show instead")]
|
|
public virtual bool? ShowDialog()
|
|
=> Dialog?.ShowDialog();
|
|
|
|
public virtual void Close()
|
|
{
|
|
Dialog?.Dispatcher.Invoke(() =>
|
|
{
|
|
if (Dialog != null)
|
|
{
|
|
Dialog.IsClosedByHandler = true;
|
|
Dialog.Close();
|
|
}
|
|
});
|
|
}
|
|
|
|
public virtual void RaiseClosedEvent(object? sender, EventArgs e)
|
|
=> Closed?.Invoke(sender, e);
|
|
|
|
public virtual void RaiseCanceledEvent(object? sender, EventArgs e)
|
|
{
|
|
Cancel?.Invoke(sender, e);
|
|
if (CloseOnCanceled)
|
|
{
|
|
Close();
|
|
}
|
|
Canceled = true;
|
|
}
|
|
}
|
|
|
|
public class PendingHandlerAsync(PendingBoxDialog pendingBoxDialog) : PendingHandler(pendingBoxDialog);
|