| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | using Caliburn.Micro;using Caliburn.Micro.Core;using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows;using Aitex.Core.RT.Event;using Aitex.Core.RT.Log;using Aitex.Core.Util;using Aitex.Core.WCF;using MECF.Framework.UI.Client.ClientBase;using SciChart.Charting.Visuals;using FurnaceUI.Config;namespace FurnaceUI.Client{    public class Bootstrapper : BootstrapperBase    {        //static Mutex mutex;        //bool isNewMutex;        protected override void OnStartup(object sender, StartupEventArgs e)        {            try            {                System.Collections.ArrayList procList = new System.Collections.ArrayList();                bool.TryParse(AppSettingsHelper.GetConfigValue("IsSlave"), out bool isSlave);                if (!isSlave)                {                    foreach (System.Diagnostics.Process thisProc in System.Diagnostics.Process.GetProcesses())                    {                        procList.Add(thisProc.ProcessName);                    }                    if (!procList.Contains("FurnaceRT"))                    {                        var exeFilePath = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;                        if (!Debugger.IsAttached)                        {                            exeFilePath = exeFilePath.Replace("FurnaceUI", "FurnaceRT");                            System.Diagnostics.Process.Start(exeFilePath);                            Thread.Sleep(50);                        }                    }                    if (!EventClient.Instance.ConnectRT())                    {                        MessageBox.Show("Can not connect with RT, launch RT first", "Error", MessageBoxButton.OK, MessageBoxImage.Error);                        Environment.Exit(0);                        return;                    }                }            }            catch (Exception)            {                MessageBox.Show("Can not connect with RT, launch RT first", "Error", MessageBoxButton.OK, MessageBoxImage.Error);                Environment.Exit(0);                return;            }             Singleton<Aitex.Core.RT.Log.LogManager>.Instance.Initialize();            BaseApp.Instance = new FurnaceUI.Client.ClientApp();            DisplayRootViewFor<MainViewModel>();            base.OnStartup(sender, e);         }        protected override void OnExit(object sender, EventArgs e)        {            base.OnExit(sender, e);                 Singleton<Aitex.Core.RT.Log.LogManager>.Instance.Terminate();                 Application.Current.Shutdown();         }        protected override void OnUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)        {            if (e.Exception != null)            {                LOG.Write(e.Exception);                if (e.Exception.InnerException != null)                    LOG.Write(e.Exception.InnerException);            }            e.Handled = true;        }        private SimpleContainer container;        public Bootstrapper()        {            SciChartSurface.SetRuntimeLicenseKey("vwAIyu6FysOMMV/v7pag3WEENpK0hDMQx5zbMKYtlb3PMTsV9R+v2toHl/Z2YJ7t/MDVkKCBsZjBxOUs1djpkyLqgCFMlX5DMrKFdP82QRqZRCOht0hQjW5Omy5z9ZRbalxSx4mlgnL/YXWr2JQrD1dWoTeoDP7xm8JB3+KZ4M5pqxeUCib6VvRpfq3O7HVIyFfcDk0JVByjV+vtgGpOo5RP630lKr9VLS3CPk1aUeul4XQAnJX+IafLnsgSKiDWlZMYU9qJehqA1EdwOnEvvOwhcwckJ5/BoeQ0qDvDaYZ1Jfzkcv5sqOYKd749TJ8wsoTDubT/bLv+BwBiXura1mBZlOIE9zB5XwJVedWWzi6dGDG8LRRKh1XjuyD6V92G596xYsb5b8EJJ8AkgsC/R+fLeN/FIZBlq/Vepg+1dwkLlCCtp8nZWBjsRDQWNrG6Vyk5TF2RzI62WrwKfWfNWXtC5wjkJE5IJzUFlj/B/UhCzB8=");            Initialize();        }        protected override void Configure()        {            container = new SimpleContainer();            container.Singleton<IEventAggregator, EventAggregator>();            container.Singleton<IWindowManager, WindowManager>();            //container.Singleton<IPublisher, Publisher>();            container.PerRequest<MainViewModel>();        }        protected override object GetInstance(Type service, string key)        {            return container.GetInstance(service, key);        }        protected override IEnumerable<object> GetAllInstances(Type service)        {            return container.GetAllInstances(service);        }        protected override void BuildUp(object instance)        {            container.BuildUp(instance);        }    }}
 |