internal void DoResumeClient(RequestResumeClient 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.Operacional;

            // Quitar de _pausedList.
            lock (_pausedList)
            {
                if (_pausedList.Contains(client))
                {
                    _pausedList.Remove(client);
                }
            }
            // Poner en _workList.
            lock (_workList)
            {
                if (!_workList.Contains(client))
                {
                    _workList.Add(client);
                }
            }

            // Enviar actualizacion a Supervisor
            SendQueueStatus();

            MessageBus.Send(new RequestSendEmail(EMessageAction.Resume, DateTime.Now, client));
            Builder.Output(string.Format("{0} : Cliente {1} movido a cola de Trabajo.", ClassName, client.Name), TraceEventType.Verbose);
        }
Example #2
0
 public void ResumeClient(RequestResumeClient req)
 {
     DoResumeClient(req);
 }