Skip to content

Instantly share code, notes, and snippets.

@rssoft2
Created February 7, 2019 10:04
Show Gist options
  • Select an option

  • Save rssoft2/03bf2bebdd27363638df6aae771d2938 to your computer and use it in GitHub Desktop.

Select an option

Save rssoft2/03bf2bebdd27363638df6aae771d2938 to your computer and use it in GitHub Desktop.
using System.Threading.Tasks;
using Microsoft.Practices.Prism.Commands;
namespace Klingelnberg.MachineBase.Presentation.Core.Controls
{
/// <summary>
/// Ermöglicht die asynchrone Ausführung von UI-Triggern, die sich selbst während der Ausführung sperren
/// </summary>
public interface IAsyncCommand : IRaiseCanExecuteChanged
{
/// <summary>
/// Führt den Command mit dem angegebenen Parameter asynchron aus, indem der im Konstruktor mitgelieferte Task
/// aufgerufen wird.
/// </summary>
/// <returns>Einen Task, dessen Ausführung abgewartet werden kann.</returns>
Task ExecuteAsync();
/// <summary>
/// Ermittelt mit dem angegebenen Parameter, ob der Command ausgeführt werden kann, indem die im Konstruktor
/// mitgelieferte Funktion aufgerufen wird.
/// </summary>
/// <returns>true, wenn der Command ausgeführt werden kann, sonst false.</returns>
bool CanExecute();
}
/// <summary>
/// Ermöglicht die asynchrone Ausführung von UI-Triggern, die sich selbst während der Ausführung sperren
/// </summary>
/// <typeparam name="T">Parameter-Typ.</typeparam>
public interface IAsyncCommand<in T> : IRaiseCanExecuteChanged
{
/// <summary>
/// Führt den Command mit dem angegebenen Parameter asynchron aus, indem der im Konstruktor mitgelieferte Task
/// aufgerufen wird.
/// </summary>
/// <param name="parameter">Daten für den Command.</param>
/// <returns>Einen Task, dessen Ausführung abgewartet werden kann.</returns>
Task ExecuteAsync(T parameter);
/// <summary>
/// Ermittelt mit dem angegebenen Parameter, ob der Command ausgeführt werden kann, indem die im Konstruktor
/// mitgelieferte Funktion aufgerufen wird.
/// </summary>
/// <param name="parameter">Daten, um zu prüfen ob der Command ausgeführt werden kann.</param>
/// <returns>true, wenn der Command ausgeführt werden kann, sonst false.</returns>
bool CanExecute(T parameter);
}
/// <summary>
/// Dieses Interface ermöglicht die "CanExecute"-Prüfung des darunterliegenden <see cref="DelegateCommand" />.
/// </summary>
public interface IRaiseCanExecuteChanged
{
/// <summary>
/// Führt die "CanExecute"-Prüfung des darunterliegenden <see cref="DelegateCommand" /> aus.
/// </summary>
void RaiseCanExecuteChanged();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment