Beispiel #1
0
 private static void App_DispatcherUnhandledException(object sender,
                                                      DispatcherUnhandledExceptionEventArgs e)
 {
     if (!e.Handled)
     {
         IoCKernel.Get <ILogger>().Error("Error occured", e.Exception);
     }
 }
 protected override void OnStartup(StartupEventArgs e)
 {
     IoCKernel.Initialize(new AppModule());
     progressWindow = IoCKernel.Get <ProgressWindow>();
     progressWindow.Show();
     Messenger.Default.Send(new IndicateProgressMessage()
     {
         OnLoadingEndedCallback = OnLoadingEnded
     });
     LogManager.Configuration = IoCKernel.Get <LoggingConfiguration>();
     base.OnStartup(e);
 }
Beispiel #3
0
        static void Main(string[] args)
        {
            #region IoCTest

            IIoCKernel iocKernel = new IoCKernel();
            iocKernel.Bind <IAbstractOne>().To <AchieveOne>();
            iocKernel.Bind <IAbstractTwo>().To <AchieveTwo>();
            iocKernel.Bind <IAbstractOne_One>().To <AbstractOne_One>();
            iocKernel.Bind <IAbstractOne_Two>().To <AbstractOne_Two>();
            DITest diType = iocKernel.GetValue <DITest>();
            diType.Writer("IoC Frame Work Test");
            #endregion

            Console.ReadLine();
        }
        protected override void OnStartup(StartupEventArgs e)
        {
#if DEBUG
            IsDebug = true;
#endif
            IoCKernel.Init();
            ConfigureMainWindow();

            Current.MainWindow.Show();


            CheckForUpdate(IoCKernel.Get <SettingsWrapper>());
            _socketIoService = IoCKernel.Get <SocketIoService>();
            //_socketIoService.Connect();
            base.OnStartup(e);
        }
Beispiel #5
0
        private static async void CheckForUpdate(SettingsWrapper settingsWrapper)
        {
            try
            {
                var client = new HttpClient
                {
                    BaseAddress = BaseUri
                };

                var response = await client.GetAsync("/api/version/latest");

                if (!response.IsSuccessStatusCode)
                {
                    return;
                }
                var versionString  = (await response.Content.ReadAsStringAsync()).Replace("\"", string.Empty);
                var latestVersion  = new Version(versionString);
                var currentVersion = Assembly.GetExecutingAssembly().GetName().Version;

                if (latestVersion.CompareTo(currentVersion) <= 0)
                {
                    return;
                }
                //TODO: Find a solution for automatic updates
                //if (settingsWrapper.CurrentSettings.AutomaticAppUpdate)
                //{
                //	new UpdateWindow(new Uri(BaseUri, "/api/download/latest")).Show();
                //}
                //else
                //{
                var messageBoxResult =
                    MessageBox.Show(
                        $"A newer version is available for download.{Environment.NewLine}Current version: {currentVersion}, Latest version: {latestVersion}{Environment.NewLine}Go to download page?",
                        "Newer version available", MessageBoxButton.YesNo);
                if (messageBoxResult == MessageBoxResult.Yes)
                {
                    Process.Start("http://monitor.pepespub.de/download/latest");
                }
                //}
            }
            catch (Exception e)
            {
                var logger = IoCKernel.Get <ILogger>();
                logger.Error("Error while looking for newer version", e);
            }
        }
Beispiel #6
0
        public IEnumerable <IScanResult> ProcessResult(string folderName, IEnumerable <IScanResult> result)
        {
            var changed   = result.Where(r => r.Result != ScanResult.Unchanged);
            var viewmodel = IoCKernel.Get <IScanResultViewModel>(
                IoCKernel.Param("results", changed));

            viewmodel.Label = string.Format(StringFormats.ScanResultTitle, folderName);
            var window = new ScanResultWindow(viewmodel);

            if (window.ShowDialog() ?? false)
            {
                return(viewmodel
                       .Where(c => (c.IsIgnoreOption ?? false) == false)
                       .Select(c => c.ScanResult)
                       .ToList());
            }

            return(new List <IScanResult>());
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            //// 下面两个demo违背的原则是:“具体应该依赖于抽象”
            //// 依赖倒置
            //// A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象
            //IUnderly1 underly = new Underly1();
            //underly.WriteLine();

            //// B.抽象不应该依赖于具体
            //IUnderly2 underly2 = new Underly2();
            //underly2.WriteLine();

            //#region 依赖注入基本实现:依赖注入是把耦合的问题抛到了外部,抛到了要使用Top类型的对象中,这个问题就很严重了,我们怎么解决呢?
            //// 构造函数注入
            //Top top = new Top(new Underly3());
            //top.Execution();

            //// 属性注入
            //Top2 top2 = new Top2();
            //top2.Underly = new Underly3();
            //top2.Execution();

            //// 接口注入
            //Top3 top3 = new Top3();
            //top3.SetQuote(new Underly3());
            //top3.Execution();
            //#endregion

            #region IoCTest
            IIoCKernel iocKernel = new IoCKernel();
            iocKernel.Bind <IAbstractOne>().To <AchieveOne>();
            iocKernel.Bind <IAbstractTwo>().To <AchieveTwo>();
            iocKernel.Bind <IAbstractOne_One>().To <AbstractOne_One>();
            iocKernel.Bind <IAbstractOne_Two>().To <AbstractOne_Two>();
            DITest diType = iocKernel.GetValue <DITest>();
            diType.Writer("IoCFrameWorkTest");
            #endregion

            Console.ReadKey();
        }
Beispiel #8
0
 private static void ConfigureMainWindow()
 {
     Current.MainWindow = IoCKernel.Get <MainWindow>();
 }
Beispiel #9
0
        public UpdateWindow(Uri downloadUri)
        {
            InitializeComponent();

            DownloadInstall(downloadUri, IoCKernel.Get <ILogger>());
        }
 private void LoadDataContext()
 {
     DataContext = IoCKernel.Get <ISettingsViewModel>();
 }