public void LlegadaCliente(DateTime hora, Cliente cliente) { if (EstaLibre()) { ClienteActual = cliente; Estado = $"Atendiendo a {cliente.Nombre}"; cliente.ComenzarAtencion(hora, Nombre); if (bContinua) { cliente.SetLitros(DistribucionLitros.Generar()); } ActualizarFinAtencion(hora); } else { Cola.AgregarCliente(cliente); } }
public Cliente FinAtencion() { var cliente = ClienteActual; if (cliente != null) { cliente.FinalizarAtencion(ProximoFinAtencion.Value); CantidadAtendidos++; } if (DistribucionBloqueo != null && CantidadAtendidos % 15 == 0 && !EstaBloqueado()) { Estado = "Bloqueado"; ClienteActual = null; ActualizarFinBloqueo(ProximoFinAtencion.Value); } else { if (Cola.Vacia()) { Estado = "Libre"; ClienteActual = null; ProximoFinAtencion = null; } else { ClienteActual = Cola.ProximoCliente(); Estado = $"Atendiendo a {ClienteActual.Nombre}"; ClienteActual.ComenzarAtencion(ProximoFinAtencion.Value, Nombre); if (bContinua) { ClienteActual.SetLitros(DistribucionLitros.Generar()); } ActualizarFinAtencion(ProximoFinAtencion.Value); } } return(cliente); }