private void DoEditFormAcceptSystem(EditFormAccept req) { _dbHandler.SaveAllData(); EndEdit(); Builder.Output("Configuración realizada."); }
private void DoEditFormCancelSystem(EditFormCancel req) { EndEdit(); Builder.Output("Configuración cancelada."); }
private void DoEditFormAcceptDelClient(EditFormAccept req) { _dbHandler.SaveAllData(); EndEdit(); Builder.Output("Cliente eliminado."); }
private void DoEditFormCancelDelClient(EditFormCancel req) { EndEdit(); Builder.Output("Eliminación cancelada."); }
private void DoEditFormAcceptEditClients(EditFormAccept req) { _dbHandler.SaveAllData(); EndEdit(); Builder.Output("Edición aceptada."); }
private void DoEditFormCancelEditClients(EditFormCancel req) { EndEdit(); Builder.Output("Edición cancelada."); }
private void DoEditFormCancelNewClient(EditFormCancel req) { EndEdit(); Builder.Output("Registro cancelado."); }
private void DoEditFormAcceptNewClient(EditFormAccept req) { _dbHandler.SaveAllData(); EndEdit(); Builder.Output("Cliente registrado."); }
private void RegisterMessages() { Builder.Output("Messages Registered."); }
static private void ContinuarModoInteractivo(string primero, string segundo) { // Comprobando cmd arg verbose if (segundo != null && (segundo == cla_v || segundo == cla_verbose)) { OutputVerbose = true; } else { OutputVerbose = false; } // Preparando cache de texto para consola remota // Es imprescindible ejecutar este metodo antes de llamar a Builder.Output. ClientLogonEvent(new SupervisorClientLogEvent(SupervisorLoginType.Logoff)); // Pasar a clase consoleoutput // instanciar aqui _messageOutput = new ConsoleOutput(OutputVerbose, false); //Console.Clear(); //origRow = Console.CursorTop; //origCol = Console.CursorLeft; //baseRow = 0; Builder.Output("Iniciando Monitor.Service en modo interactivo."); if (!CargarConfiguracion()) { return; } Builder.Output("Ejecutando acción interactiva."); switch (primero) { case cla_im: case cla_import: case cla_ex: case cla_export: ImportExport(primero, segundo); break; case cla_add: case cla_a: case cla_edit: case cla_e: case cla_del: case cla_d: case cla_sys: case cla_s: CargarFormulario(primero); break; case cla_console: case cla_c: CargarTodosEjecutarConsole(); break; case cla_cc: case cla_create: CreateConfig(); break; case cla_as: case cla_assist: Wizard_System(); break; } // Salida de regreso a ModoInteractivo() // Terminar DbHandler _dbHandler = null; Builder.Output("Acción interactiva terminada."); Builder.Output("Terminado Monitor.Service en modo interactivo."); }
/// <summary> /// Intenta reiniciar la aplicacion cliente. Si lo logra, el cliente se mueve /// de _timeOutList a _recoverList. Si no, el cliente se mueve a _deadList y no se monitorea mas. /// </summary> private void ClientTryToRestart() { bool flag; List <ClientData> buffer = new List <ClientData>(_timeOutList); foreach (var client in buffer) { // Log Builder.Output(string.Format(ClassName + ": Intentando reiniciar Cliente: {0} ejecutable: {1}.", client.Name, client.AppFilePath), TraceEventType.Information); // Comprobar si esta activo flag = GetProcessByName(client.AppName); // kill if (flag) { KillProcessByName(client.AppName); } // "WerFault" const string pname = "WerFault"; flag = GetProcessByName(pname); if (flag) { KillProcessByName(pname); } // Realizar pausa mientras app termina System.Threading.Thread.Sleep(40); // Restart flag = StartProcessByName(client.AppFilePath); // Realizar pausa mientras sistema inicia System.Threading.Thread.Sleep(40); // Comprobar si se inicio, mover a donde corresponda y sacar de la cola if (flag) { flag = GetProcessByName(client.AppName); } // Remover de la lista incondicionalmente. _timeOutList.Remove(client); // Mover en dependencia de si se reinicio o no. if (flag) { client.Status = ClientStatus.Reiniciado; client.RestartCount++; client.RestartCountVolatil++; client.EnterTime = DateTime.Now; lock (_recoverList) { if (!_recoverList.Contains(client)) { _recoverList.Add(client); } } MessageBus.Send(new RequestSendEmail(EMessageAction.Restart, DateTime.Now, client)); Builder.Output(string.Format(ClassName + ": Reiniciado Cliente: {0} ejecutable: {1}.", client.Name, client.AppFilePath), TraceEventType.Information); } else { client.Status = ClientStatus.Muerto; lock (_deadList) { if (!_deadList.Contains(client)) { _deadList.Add(client); } } MessageBus.Send(new RequestSendEmail(EMessageAction.Dead, DateTime.Now, client)); Builder.Output(string.Format(ClassName + ": Imposible reiniciar Cliente: {0} ejecutable: {1}, movido a cola de Fuera de Control.", client.Name, client.AppFilePath), TraceEventType.Critical); } } }