usingSystem;usingSystem.Collections.Generic;usingSystem.Collections.ObjectModel;usingSystem.ComponentModel;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Media;usingTango.Core.Commands;usingTango.SharedUI;usingTango.Touch.Controls;namespaceTango.PPC.Common.Notifications{/// <summary>/// Represents the PPC user notification provider responsible for displaying information, alerts and dialogs to the user./// </summary>publicinterfaceINotificationProvider{/// <summary>/// Gets the collection of notification items./// </summary>ObservableCollection<NotificationItem>NotificationItems{get;}/// <summary>/// Gets the notification items view./// </summary>ICollectionViewNotificationItemsView{get;}/// <summary>/// Gets the collection of taskbar items./// </summary>ObservableCollection<TaskBarItem>TaskBarItems{get;}/// <summary>/// Gets the application bar items./// </summary>ObservableCollection<AppBarItem>AppBarItems{get;}/// <summary>/// Gets a value indicating whether this instance has any application bar items./// </summary>boolHasAppBarItems{get;}/// <summary>/// Gets a value indicating whether this instance has notification items./// </summary>boolHasNotificationItems{get;}/// <summary>/// Gets the current message box./// </summary>MessageBoxVMCurrentMessageBox{get;}/// <summary>/// Gets a value indicating whether this instance has message box./// </summary>boolHasMessageBox{get;}/// <summary>/// Gets the current dialog./// </summary>FrameworkElementCurrentDialog{get;}/// <summary>/// Gets the current app button./// </summary>AppButtonCurrentAppButton{get;}/// <summary>/// Gets a value indicating whether this instance has a dialog./// </summary>boolHasDialog{get;}/// <summary>/// Shows an information message box./// </summary>/// <param name="message">The message.</param>TaskShowInfo(Stringmessage);/// <summary>/// Shows warning message box./// </summary>/// <param name="message">The message.</param>TaskShowWarning(Stringmessage);/// <summary>/// Shows an error message box./// </summary>/// <param name="message">The message.</param>TaskShowError(Stringmessage);/// <summary>/// Shows a success message box./// </summary>/// <param name="message">The message.</param>TaskShowSuccess(Stringmessage);/// <summary>/// Shows a question message box./// </summary>/// <param name="message">The message.</param>Task<bool>ShowQuestion(Stringmessage);/// <summary>/// Inserts the notification item to the bottom of the notifications collection./// </summary>/// <param name="item">The item.</param>NotificationItemPushNotification(NotificationItemitem);/// <summary>/// Pushes the notification./// </summary>/// <typeparam name="T"></typeparam>/// <returns></returns>NotificationItemPushNotification<T>()whereT:NotificationItem;/// <summary>/// Displays the specified dialog in a modal design./// </summary>/// <typeparam name="VM"></typeparam>/// <param name="datacontext">The data context.</param>/// <param name="view">The view.</param>/// <returns></returns>Task<VM>ShowDialog<VM>(VMdatacontext,FrameworkElementview)whereVM:DialogViewVM;/// <summary>/// Displays the specified dialog in a modal design./// The notification provider will try to locate the view automatically using conventions./// </summary>/// <typeparam name="VM"></typeparam>/// <param name="datacontext">The data context.</param>/// <returns></returns> Task<VM>ShowDialog<VM>(VMdatacontext)whereVM:DialogViewVM;/// <summary>/// Displays the specified dialog in a modal design./// The data context instance will be automatically created./// The notification provider will try to locate the view automatically using conventions./// </summary>/// <typeparam name="VM"></typeparam>/// <returns></returns>Task<VM>ShowDialog<VM>()whereVM:DialogViewVM;/// <summary>/// Removed the specified notification item./// </summary>/// <param name="item">The item.</param>voidPopNotification(NotificationItemitem);/// <summary>/// Gets a value indicating whether this instance is in global busy state./// </summary>boolIsInGlobalBusyState{get;}/// <summary>/// Sets the global busy message./// </summary>/// <param name="message">The message.</param>voidSetGlobalBusyMessage(Stringmessage);/// <summary>/// Releases the global busy message./// </summary>voidReleaseGlobalBusyMessage();/// <summary>/// Gets the current global busy message./// </summary>StringGlobalBusyMessage{get;}/// <summary>/// Pushes the application bar item./// </summary>/// <param name="appBarItem">The application bar item.</param>/// <returns></returns>AppBarItemPushAppBarItem(AppBarItemappBarItem);/// <summary>/// Pushes the application bar item./// </summary>/// <typeparam name="T"></typeparam>/// <returns></returns>TPushAppBarItem<T>()whereT:AppBarItem;/// <summary>/// Pops the application bar item./// </summary>/// <param name="appBarItem">The application bar item.</param>voidPopAppBarItem(AppBarItemappBarItem);/// <summary>/// Pushes the task bar item./// </summary>/// <param name="taskBarItem">The task bar item.</param>/// <returns></returns>TaskBarItemPushTaskBarItem(TaskBarItemtaskBarItem);/// <summary>/// Handles the Push Task Bar Item event./// </summary>/// <typeparam name="T"></typeparam>/// <returns></returns>TaskBarItemPushTaskBarItem<T>()whereT:TaskBarItem;/// <summary>/// Pops the task bar item./// </summary>/// <param name="TaskBarItem">The task bar item.</param>voidPopTaskBarItem(TaskBarItemtaskBarItem);/// <summary>/// Gets or sets a value indicating whether to allow notifications visibility./// </summary>boolNotificationsVisible{get;set;}/// <summary>/// Pushes the app button./// </summary>/// <param name="appButton">The app button.</param>voidPushAppButton(AppButtonappButton);/// <summary>/// Pops the app button./// </summary>/// <param name="appButton">The app button.</param>voidPopAppButton(AppButtonappButton);}}