private void executerError_Click(object sender, RoutedEventArgs e)
        {
            _logWriter.LogWrite($"exécution Batch : {cheminBatchError}");
            string output = UptimeHelper.processBatch(cheminBatchError, "", _logWriter, ref exitCode);

            _logWriter.LogWrite($"exit code Batch : {exitCode}");

            if (exitCode == -1)
            {
                if (!isFeatureLockScreen)
                {
                }
                else
                {
                    _logWriter.LogWrite($"Vérouillage système");
                    LockWorkStation();
                }
            }
        }
Beispiel #2
0
        private void executerProcess()
        {
            try
            {
                int exitCode = 0;
                // commande restart  .bat
                string output = UptimeHelper.processBatch(cheminBatchRestart, ServerIpAddress, _logWriter, ref exitCode);

                // 10 minutes d'attentes appconfig
                Thread.Sleep(1000 * AppSettings.ReadSetting <int>(AppSettingConstants.ServerResponseTimeout, 10));

                if (PingHelper.CheckAddress(ServerIpAddress).Status == System.Net.NetworkInformation.IPStatus.Success)
                {
                    ServerEventsApi.ServerEventsPostServerEvent(new IO.Swagger.Model.ServerEvent()
                    {
                        Date         = DateTime.Now,
                        Event        = IO.Swagger.Model.ServerEvent.EventEnum.NUMBER_5,
                        RestaurantId = RestaurantId,
                        Detail       = "Le serveur a repondu"
                    });

                    this.Dispatcher.Invoke(DispatcherPriority.Background, new Action(() => this.windowText.Text = "Le serveur distant a bien redemarré"));

                    //Thread.Sleep(1000 * AppSettings.ReadSetting<int>(AppSettingsConstant.XmlRpcResponseTimeout, 5) * 60);

                    //Call XmlRpc

                    //TODO

#if DEBUG
                    //Désactiver le vérouillage après 5 secondes pour pouvoir quitter (à être remplacé par un autre logique après)
                    Delay(5000).ContinueWith(_ => quitterFenetre());
#endif
                }
                else
                {
                    ServerEventsApi.ServerEventsPostServerEvent(new IO.Swagger.Model.ServerEvent()
                    {
                        Date         = DateTime.Now,
                        Event        = IO.Swagger.Model.ServerEvent.EventEnum.NUMBER_6,
                        RestaurantId = RestaurantId,
                        Detail       = "Le serveur n'a pas repondu"
                    });

                    this.Dispatcher.Invoke(DispatcherPriority.Background, new Action(() =>
                    {
                        this.windowText.Text += "\n" + "Contactez votre mainteneur!";

                        this.exitButton.Visibility = Visibility.Visible;
                    }));
                }
            }
            catch (Exception ex)
            {
                _logWriter.LogWrite($" ClassName : bloquerWindow ");
                _logWriter.LogWrite($" Exception : {ex.Message}");
                _logWriter.LogWrite($" Exception : {ex.StackTrace}");
                throw;
            }

            // if OK call xmlRPc attendre 5 minutes is ok update ecran + update api + deblocage ecran
        }