using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using Tango.BL.Entities;
namespace Tango.FSE.Common.FSEApplication
{
///
/// Represents the application manager.
///
public interface IFSEApplicationManager
{
///
/// 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 the application has encountered an error when initializing.
///
event EventHandler ApplicationInitializationError;
///
/// Gets a value indicating whether the application is past the event.
///
bool IsReady { get; }
///
/// Gets a value indicating whether the application is shutting down.
///
bool IsShuttingDown { get; }
///
/// Gets a value indicating whether an update has occurred before the application started.
///
bool IsAfterUpdate { get; }
///
/// Gets the application startup arguments.
///
List StartupArgs { get; }
///
/// Shutdown the application.
///
void ShutDown();
///
/// Restarts the application.
///
void Restart();
///
/// Activates the main window if it's not in focus.
///
void ActivateMainWindow();
///
/// Gets the application version.
///
Version Version { 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 a value indicating whether the application is currently debugging machine service via local host.
///
bool IsWebDebugMode { get; }
///
/// Gets or sets a value indicating whether to display the main window controls.
///
bool DisplayWindowControls { get; set; }
///
/// Gets or sets the state of the application main window.
///
WindowState WindowState { get; set; }
///
/// Gets a value indicating whether the application is currently running in demo mode.
///
bool DemoMode { get; }
}
}