aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication
ModeNameSize
-rw-r--r--DefaultPPCApplicationManager.cs24446logstatsplain
using System;
using System.Windows;
using Tango.Core.DI;
using Tango.Integration.ExternalBridge;
using Tango.Logging;
using Tango.PPC.Common.Application;
using Tango.PPC.Common.Authentication;
using Tango.PPC.Common.Connection;
using Tango.PPC.Common.Connectivity;
using Tango.PPC.Common.Diagnostics;
using Tango.PPC.Common.EventLogging;
using Tango.PPC.Common.ExternalBridge;
using Tango.PPC.Common.HotSpot;
using Tango.PPC.Common.MachineSetup;
using Tango.PPC.Common.MachineUpdate;
using Tango.PPC.Common.Modules;
using Tango.PPC.Common.Navigation;
using Tango.PPC.Common.Notifications;
using Tango.PPC.Common.OS;
using Tango.PPC.Common.Printing;
using Tango.PPC.Common.RemoteAssistance;
using Tango.PPC.Common.Storage;
using Tango.PPC.Common.Threading;
using Tango.PPC.Common.UWF;
using Tango.PPC.Common.Web;
using Tango.PPC.UI.Authentication;
using Tango.PPC.UI.Connectivity;
using Tango.PPC.UI.Modules;
using Tango.PPC.UI.Navigation;
using Tango.PPC.UI.Notifications;
using Tango.PPC.UI.PPCApplication;
using Tango.PPC.UI.Printing;
using Tango.PPC.UI.Threading;
using Tango.PPC.UI.ViewModels;
using Tango.PPC.UI.Views;
using Tango.PPC.UI.ViewsContracts;
using Tango.TFS;

namespace Tango.PPC.UI
{
    /// <summary>
    /// This class contains static references to all the view models in the
    /// application and provides an entry point for the bindings.
    /// </summary>
    public static class ViewModelLocator
    {
        /// <summary>
        /// Initializes a new instance of the ViewModelLocator class.
        /// </summary>
        static ViewModelLocator()
        {
            TangoIOC.Default.Unregister<IDispatcherProvider>();
            TangoIOC.Default.Unregister<INotificationProvider>();
            TangoIOC.Default.Unregister<IAuthenticationProvider>();
            TangoIOC.Default.Unregister<IPPCModuleLoader>();
            TangoIOC.Default.Unregister<INavigationManager>();
            TangoIOC.Default.Unregister<IMachineProvider>();
            TangoIOC.Default.Unregister<IPPCApplicationManager>();
            TangoIOC.Default.Unregister<ExternalBridgeScanner>();
            TangoIOC.Default.Unregister<IDiagnosticsFrameProvider>();
            TangoIOC.Default.Unregister<IEventLogger>();
            TangoIOC.Default.Unregister<ITeamFoundationServiceClient>();
            TangoIOC.Default.Unregister<IPPCExternalBridgeService>();
            TangoIOC.Default.Unregister<IMachineSetupManager>();
            TangoIOC.Default.Unregister<IMachineUpdateManager>();
            TangoIOC.Default.Unregister<IPrintingManager>();
            TangoIOC.Default.Unregister<IConnectivityProvider>();
            TangoIOC.Default.Unregister<IHotSpotProvider>();
            TangoIOC.Default.Unregister<IRemoteAssistanceProvider>();
            TangoIOC.Default.Unregister<IStorageProvider>();
            TangoIOC.Default.Unregister<IUnifiedWriteFilterManager>();
            TangoIOC.Default.Unregister<IOperationSystemManager>();
            TangoIOC.Default.Unregister<PPCWebClient>();

            TangoIOC.Default.Register<PPCWebClient, PPCWebClient>(new PPCWebClient());
            TangoIOC.Default.Register<IDispatcherProvider, DefaultDispatcherProvider>(new DefaultDispatcherProvider(Application.Current.Dispatcher));
            TangoIOC.Default.Register<INotificationProvider, DefaultNotificationProvider>();
            TangoIOC.Default.Register<IAuthenticationProvider, DefaultAuthenticationProvider>();
            TangoIOC.Default.Register<IPPCModuleLoader, DefaultPPCModuleLoader>();
            TangoIOC.Default.Register<INavigationManager, DefaultNavigationManager>();
            TangoIOC.Default.Register<IMachineProvider, DefaultMachineProvider>();
            TangoIOC.Default.Register<IEventLogger, DefaultEventLogger>();
            TangoIOC.Default.Register<IPPCApplicationManager, DefaultPPCApplicationManager>();
            TangoIOC.Default.Register<ExternalBridgeScanner, ExternalBridgeScanner>();
            TangoIOC.Default.Register<IDiagnosticsFrameProvider, DefaultDiagnosticsFrameProvider>();
            TangoIOC.Default.Register<IPPCExternalBridgeService, PPCExternalBridgeService>();
            TangoIOC.Default.Register<IRemoteAssistanceProvider, DefaultRemoteAssistanceProvider>();
            TangoIOC.Default.Register<IMachineSetupManager, MachineSetupManager>();
            TangoIOC.Default.Register<IMachineUpdateManager, MachineUpdateManager>();
            TangoIOC.Default.Register<IPrintingManager, DefaultPrintingManager>();
            TangoIOC.Default.Register<IConnectivityProvider, DefaultConnectivityProvider>();
            TangoIOC.Default.Register<IHotSpotProvider, DefaultHotSpotProvider>();
            TangoIOC.Default.Register<IStorageProvider, DefaultStorageProvider>();
            TangoIOC.Default.Register<IUnifiedWriteFilterManager, AlternativeUnifiedWriteFilterManager>();
            TangoIOC.Default.Register<IOperationSystemManager, DefaultOperationSystemManager>();

            //TangoIOC.Default.Register<TeamFoundationServiceExtendedClient>(new TeamFoundationServiceExtendedClient("https://twinetfs.visualstudio.com", String.Empty, "szzfokrceo4rhd4eqi5qpmxn3pa5iwl3q7tlqd36l2m7smz2ynoa"));

            TangoIOC.Default.Register<LoadingViewVM>();
            TangoIOC.Default.Register<MainViewVM>();
            TangoIOC.Default.Register<LoginViewVM>();
            TangoIOC.Default.Register<LayoutViewVM>();
            TangoIOC.Default.Register<ExternalBridgeViewVM>();
            TangoIOC.Default.Register<MachineSetupViewVM>();
            TangoIOC.Default.Register<MachineUpdateViewVM>();
            TangoIOC.Default.Register<LoadingErrorViewVM>();
            TangoIOC.Default.Register<NoPermissionsViewVM>();
            TangoIOC.Default.Register<RestartingSystemViewVM>();


            TangoIOC.Default.GetInstance<IPPCApplicationManager>().ContentRendered += (_, __) =>
            {
                TangoIOC.Default.Register<ILayoutView, LayoutView>(LayoutView.Instance);
                TangoIOC.Default.Register<IMachineSetupView, MachineSetupView>(MachineSetupView.Instance);
                TangoIOC.Default.Register<IMachineUpdateView, MachineUpdateView>(MachineUpdateView.Instance);
            };

            //TangoIOC.Default.Register<LoadingViewVM>();
            //TangoIOC.Default.Register<ShutdownViewVM>();
            //TangoIOC.Default.Register<LoginViewVM>();
            //TangoIOC.Default.Register<MachineConnectionViewVM>();
            //TangoIOC.Default.Register<ConnectedMachineViewVM>();
            //TangoIOC.Default.Register<MachineLoginViewVM>();
            //TangoIOC.Default.Register<UpdateViewVM>();
        }

        public static LoadingViewVM LoadingView
        {
            get
            {
                return TangoIOC.Default.GetInstance<LoadingViewVM>();
            }
        }

        public static MainViewVM MainViewVM
        {
            get
            {
                return TangoIOC.Default.GetInstance<MainViewVM>();
            }
        }

        public static LoginViewVM LoginViewVM
        {
            get
            {
                return TangoIOC.Default.GetInstance<LoginViewVM>();
            }
        }

        public static LayoutViewVM LayoutViewVM
        {
            get
            {
                return TangoIOC.Default.GetInstance<LayoutViewVM>();
            }
        }

        public static ExternalBridgeViewVM ExternalBridgeViewVM
        {
            get
            {
                return TangoIOC.Default.GetInstance<ExternalBridgeViewVM>();
            }
        }

        public static MachineSetupViewVM MachineSetupViewVM
        {
            get
            {
                return TangoIOC.Default.GetInstance<MachineSetupViewVM>();
            }
        }

        public static MachineUpdateViewVM MachineUpdateViewVM
        {
            get
            {
                return TangoIOC.Default.GetInstance<MachineUpdateViewVM>();
            }
        }

        public static LoadingErrorViewVM LoadingErrorViewVM
        {
            get
            {
                return TangoIOC.Default.GetInstance<LoadingErrorViewVM>();
            }
        }

        public static NoPermissionsViewVM NoPermissionsViewVM
        {
            get
            {
                return TangoIOC.Default.GetInstance<NoPermissionsViewVM>();
            }
        }

        public static RestartingSystemViewVM RestartingSystemViewVM
        {
            get
            {
                return TangoIOC.Default.GetInstance<RestartingSystemViewVM>();
            }
        }
    }
}