using System;
using System.Linq;
using System.Windows;
using Tango.BL.ActionLogs;
using Tango.Core.DI;
using Tango.Integration.ExternalBridge;
using Tango.Logging;
using Tango.MachineStudio.Common.Authentication;
using Tango.MachineStudio.Common.Diagnostics;
using Tango.MachineStudio.Common.EventLogging;
using Tango.MachineStudio.Common.FirmwareUpgrade;
using Tango.MachineStudio.Common.Modules;
using Tango.MachineStudio.Common.Navigation;
using Tango.MachineStudio.Common.Notifications;
using Tango.MachineStudio.Common.Speech;
using Tango.MachineStudio.Common.StudioApplication;
using Tango.MachineStudio.Common.Threading;
using Tango.MachineStudio.Common.Video;
using Tango.MachineStudio.Common.Web;
using Tango.MachineStudio.UI.Authentication;
using Tango.MachineStudio.UI.Console;
using Tango.MachineStudio.UI.FirmwareUpgrade;
using Tango.MachineStudio.UI.Modules;
using Tango.MachineStudio.UI.Navigation;
using Tango.MachineStudio.UI.Notifications;
using Tango.MachineStudio.UI.StudioApplication;
using Tango.MachineStudio.UI.SupervisingController;
using Tango.MachineStudio.UI.TFS;
using Tango.MachineStudio.UI.Threading;
using Tango.MachineStudio.UI.ViewModels;
using Tango.MachineStudio.UI.Views;
using Tango.Settings;
using Tango.TFS;
namespace Tango.MachineStudio.UI
{
///
/// This class contains static references to all the view models in the
/// application and provides an entry point for the bindings.
///
public class ViewModelLocator
{
private LogManager LogManager = LogManager.Default;
///
/// Initializes a new instance of the ViewModelLocator class.
///
public ViewModelLocator()
{
////if (ViewModelBase.IsInDesignModeStatic)
////{
//// // Create design time view services and models
//// TangoIOC.Default.Register();
////}
////else
////{
//// // Create run time view services and models
//// TangoIOC.Default.Register();
////}
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
TangoIOC.Default.Unregister();
if (App.StartupArgs.Contains("-webDebug"))
{
TangoIOC.Default.Register(new MachineStudioWebClient("http://localhost:1111", null));
}
else
{
TangoIOC.Default.Register(new MachineStudioWebClient());
}
TangoIOC.Default.Register(new DefaultDispatcherProvider(Application.Current.Dispatcher));
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register(new DefaultActionLogManager() { IsAsync = true });
TangoIOC.Default.Register(new TeamFoundationServiceExtendedClient("https://twinetfs.visualstudio.com", String.Empty, "pyulwgs7m3v7pizz3oxusypdkdfw43txggo5mjwu2ouyv2qwprhq"));
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
TangoIOC.Default.Register();
//Register View (Supervising Controller Pattern).
//if (!ViewModelBase.IsInDesignModeStatic)
//{
// LogManager.Log(String.Format("Registering Supervising Controller {0}...", nameof(IMainView)));
// TangoIOC.Default.Register(() => (IMainView)MainView.Self);
//}
}
public MainViewVM MainViewVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
public LoadingViewVM LoadingViewVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
public ShutdownViewVM ShutdownViewVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
public LoginViewVM LoginViewVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
public MachineConnectionViewVM MachineConnectionViewVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
public ConnectedMachineViewVM ConnectedMachineViewVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
public MachineLoginViewVM MachineLoginViewVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
public UpdateViewVM UpdateViewVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
public ConsoleWindowVM ConsoleWindowVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
public AboutViewVM AboutViewVM
{
get
{
return TangoIOC.Default.GetInstance();
}
}
}
}