public void LlegadaCliente_Event() { var llegadaNueva = new Llegada(); _LLegada = llegadaNueva; //Setea los datos del nuevo cliente var nAuto = new Auto(Reloj, EventoAnterior.ProximoCliente); if (EventoAnterior.ProximoCliente < MySettings.CantMaxClientes) { ProximoCliente = EventoAnterior.ProximoCliente + 1; llegadaNueva.CalcularProximaLlegada(Reloj); } else { ProximoCliente = 0; llegadaNueva.TiempoEntreLlegadas = TimeSpan.Zero; llegadaNueva.FechaProximaLlegada = DateTime.MinValue; } _Auto = nAuto; if (EmpleadoQA.Estado == EstadoArea.Ocupado) { ColaQuitarAlfombra.Add(nAuto); } else { EmpleadoQA.TomarCliente(_Auto, Reloj); } }
public void FinQuitarAlfombras_Event() { _Auto = EventoAnterior.EmpleadoQA.AutoActual; if (ColaQuitarAlfombra.Count > 0) { EmpleadoQA.TomarCliente(ColaQuitarAlfombra[0], Reloj); ColaQuitarAlfombra.RemoveAt(0); } else { EmpleadoQA.Liberar(); } // Se quita la alfombra Alfombra alfombra = EventoAnterior.EmpleadoQA.AutoActual._Alfombra; _Auto._Alfombra = null; if (EmpleadoAA.Estado == EstadoArea.Ocupado) { ColaAspirarAlfombra.Add(alfombra); } else { EmpleadoAA.TomarCliente(alfombra, Reloj); } //Se decide el lavado if (EmpleadoLavado1.Estado == EstadoArea.Ocupado && EmpleadoLavado2.Estado == EstadoArea.Ocupado) { ColaLavado.Add(_Auto); } else { if (EmpleadoLavado1.Estado == EstadoArea.Libre) { EmpleadoLavado1.TomarCliente(_Auto, Reloj); } else { EmpleadoLavado2.TomarCliente(_Auto, Reloj); } } }