using System.Collections.Generic;
using System.Threading.Tasks;
using Artemis.UI.ViewModels.Dialogs;
using MaterialDesignThemes.Wpf;
using Ninject.Parameters;
namespace Artemis.UI.Services.Interfaces
{
public interface IDialogService : IArtemisUIService
{
///
/// Shows a confirm dialog on the dialog host provided in .
///
/// The title of the dialog
/// The body text of the dialog
/// The text of the confirm button, defaults to "Confirm"
/// The text of the cancel button, defaults to "Cancel"
/// A task that resolves to true if confirmed and false if cancelled
Task ShowConfirmDialog(string header, string text, string confirmText = "Confirm", string cancelText = "Cancel");
///
/// Shows a confirm dialog on the dialog host provided in .
///
///
/// The identifier of the to use eg.
/// <materialDesign:DialogHost Identifier="MyDialogHost">
///
/// The title of the dialog
/// The body text of the dialog
/// The text of the confirm button, defaults to "Confirm"
/// The text of the cancel button, defaults to "Cancel"
/// A task that resolves to true if confirmed and false if cancelled
Task ShowConfirmDialogAt(string identifier, string header, string text, string confirmText = "Confirm", string cancelText = "Cancel");
///
/// Shows a dialog by initializing a view model implementing
///
/// The type of the view model
/// A task resolving to the result of the dialog's
Task