using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using Tango.BL.Entities;
using Tango.Integration.Operation;
using Tango.Integration.ExternalBridge;
namespace Tango.PPC.Common.Application
{
///
/// Represents the application manager.
///
public interface IPPCApplicationManager
{
///
/// Occurs when the application has started.
///
event EventHandler ApplicationStarted;
///
/// Occurs when the application is ready and all modules are views are loaded.
///
event EventHandler ApplicationReady;
///
/// Occurs when the main window content has been rendered.
///
event EventHandler ContentRendered;
///
/// Occurs when all PPC modules are ready and initialized.
///
event EventHandler ModulesInitialized;
///
/// Occurs when machine setup is required.
///
event EventHandler SetupRequired;
///
/// Occurs when a system restart is required.
///
event EventHandler SystemRestartRequired;
///
/// Occurs when the updater utility has failed to perform the last update.
///
event EventHandler UpdaterFailed;
///
/// Occurs when the application has encountered an error when initializing.
///
event EventHandler ApplicationInitializationError;
///
/// Gets a value indicating whether the application is shutting down.
///
bool IsShuttingDown { get; }
///
/// Gets a value indicating whether the application is in technician mode.
///
bool IsInTechnicianMode { get; }
///
/// Gets a value indicating whether an update has occurred before the application started.
///
bool IsAfterUpdate { get; }
///
/// Gets a value indicating whether the updater utility has failed to perform the last update.
///
bool IsUpdateFailed { get; }
///
/// Shutdown the application.
///
void ShutDown();
///
/// Restarts the application.
///
void Restart();
///
/// Runs the updater utility and exits the application.
///
void UpdateApplication(String updaterPath, String arguments);
///
/// Enteres the application technician mode.
///
void EnterTechnicianMode(bool displayNotification = true);
///
/// Exits the application technician mode.
///
void ExitTechnicianMode();
///
/// Gets the application version.
///
Version Version { get; }
///
/// Gets the firmware version.
///
Version FirmwareVersion { get; }
///
/// Gets the version tag.
///
String VersionTag { get; }
///
/// Gets the version and tag display.
///
String VersionAndTag { get; }
///
/// Gets the application build date.
///
String BuildDate { get; }
///
/// Gets the application startup date.
///
DateTime StartUpDate { get; }
///
/// Gets or sets the application folder.
///
String StartPath { get; }
///
/// Gets or sets a value indicating whether the screen is currently locked.
///
bool IsScreenLocked { get; set; }
///
/// Resets the screen lock timer.
///
void ResetScreenLockTimer();
///
/// Invokes a dialog for entering a password and releasing the screen lock.
///
void ReleaseScreenLock();
///
/// Sets the state of the main window.
///
/// The state.
void SetWindowState(WindowState state);
}
}