internal void DoPauseClient(RequestPauseClient req) { // Verificar existencia de clave. if (!_clientList.ContainsGuid(req.Id)) { //TODO Log clave inexistente. return; } #if !TEST // Comenzar cambio cuando no se ejecuta queue manager process. _areClientUpdate.WaitOne(); #endif // Obtener cliente. ClientData client = _clientList.GetClient(req.Id); // Modificar Status. client.Status = ClientStatus.Pausado; // Quitar de _workList. lock (_workList) { if (_workList.Contains(client)) { _workList.Remove(client); } } // Poner en _pausedList. lock (_pausedList) { if (!_pausedList.Contains(client)) { _pausedList.Add(client); } } // Enviar actualizacion a Supervisor SendQueueStatus(); // Notificar. MessageBus.Send(new RequestSendEmail(EMessageAction.Pause, DateTime.Now, client)); Builder.Output(string.Format("{0} : Cliente {1} movido a cola de Pausado.", ClassName, client.Name), TraceEventType.Verbose); }
// Pausar cliente public void PauseClient(RequestPauseClient req) { DoPauseClient(req); }