コード例 #1
0
 private void cmdSmart_Click(object sender, EventArgs e)
 {
     if (txtNoEmpleado.Text.Length != 6)
     {
         MessageBox.Show("El numero de empleado es incorrecto", "Error");
     }
     else
     {
         string noEmpleado = txtNoEmpleado.Text;
         string fecha = txtFecha.Text;
         oEmpleado = oPoolService.ConsultaUnidadNegocio(noEmpleado);
         int idUnidadNegocio = oEmpleado.IdUnidadNegocio;
         txtIdUnidadNegocio.Text = idUnidadNegocio.ToString();
         oTurno = oTurnosService.ObtenerTurnoAsignado(fecha, idUnidadNegocio.ToString(), noEmpleado);
         string idTurno = oTurno.IdTurno.ToString();
         if (idTurno == "0") MessageBox.Show("No hay turnos asignados a este empleado");
         txtIdTurno.Text = idTurno;
     }
 }
コード例 #2
0
        public void flujoTurnoVirtual(string empleado,int TiempoMin, int TiempoMax)
        {
            string unidadNegocio = oLogicPoolService.ConsultaUnidadNegocio(empleado).IdUnidadNegocio.ToString();
            string fecha = Util.getFecha();

            Turno oTurno = new Turno();

            Random random = new Random();
            int randomTiempos = 0;
            int tiempoMinConvert = TiempoMin * 1000;
            int tiempoMaxConvert = TiempoMax * 1000;
            /*Se consulta si el empleado tiene asignado un turno, si lo tiene
             * este turno lo pospone y genera un turno virtual
             */
            randomTiempos = random.Next(tiempoMinConvert, tiempoMaxConvert);
            oTurno = oLogicTurnosService.ObtenerTurnoAsignado(fecha, unidadNegocio, empleado);
            if (oTurno.IdTurno == 0) //Si no tiene turno asignado
            {
                oLogicTurnosService.AtiendeTurnoVirtual(empleado, unidadNegocio, 1);
                oTurno = oLogicTurnosService.ObtenerTurnoAtendiendo(fecha, empleado);
                string idTurno = oTurno.IdTurno.ToString();
                Thread.Sleep(randomTiempos);
                oLogicTurnosService.FinalizarTurno(empleado, fecha, idTurno, unidadNegocio, 1);
            }
            else
            {
                string idTurno = oTurno.IdTurno.ToString();
                oLogicTurnosService.PosponerTurno(fecha, idTurno, unidadNegocio, 1);
                oLogicTurnosService.AtiendeTurnoVirtual(empleado, unidadNegocio, 1);
                oTurno = oLogicTurnosService.ObtenerTurnoAtendiendo(fecha, empleado);
                idTurno = oTurno.IdTurno.ToString();
                Thread.Sleep(randomTiempos);
                oLogicTurnosService.FinalizarTurno(empleado, fecha, idTurno, unidadNegocio, 1);
                oLogicPoolService.SetDisponible(empleado, 1);

            }
        }
コード例 #3
0
 public Turno ObtenerTurnoAtendiendo(string fecha, string noEmpleado)
 {
     int tamanoArregloUnidadesNegocio = ObtenerTurnosAtendiendo(fecha).Length;
     TurnoAtendiendo[] turnosAtendiendo = new TurnoAtendiendo[tamanoArregloUnidadesNegocio];
     Turno turnoAtendiendo = new Turno();
     turnosAtendiendo = ObtenerTurnosAtendiendo(fecha);
     for (int i = 0; i < tamanoArregloUnidadesNegocio; i++)
     {
         for (int j = 0; j < turnosAtendiendo[i].Value.Length; j++)
         {
             if (turnosAtendiendo[i].Value[j].Empleado.NoEmpleado == noEmpleado)
             {
                 turnoAtendiendo = turnosAtendiendo[i].Value[j];
             }
         }
     }
     return turnoAtendiendo;
 }
コード例 #4
0
 public HappyPathModel()
 {
     Turno = new Turno();
 }
コード例 #5
0
 public TurnoAtendiendo()
 {
     Value = new Turno[Key];
 }
コード例 #6
0
        public void HappySencillo(string empleado, string unidadNegocio, string cantidadTurnos,int tiempoMinimo, int tiempoMaximo)
        {
            TurnadorClient.Vistas.HappyPath.HappySencillo oBarra = new Vistas.HappyPath.HappySencillo();
            Random random = new Random();

            bool setDisponible;
            bool generaTurno;
            bool atiendeTurno;
            bool finalizaTurno;

            string error = null ;

            cantidadDeTurnos = Int32.Parse(cantidadTurnos);
            int randomTiempos = 0;
            int tiempoMinConvert = tiempoMinimo * 1000;
            int tiempoMaxConvert = tiempoMaximo * 1000;

            string fecha = oUtil.getFecha();
            //Todo lo que se haga ira dentro de un for que repetira el numero de veces que se desea obtener el turno
            for (int i = 0; i < cantidadDeTurnos; i++)
            {
                randomTiempos = random.Next(tiempoMinConvert, tiempoMaxConvert);
                tiempoEspera = (randomTiempos / 1000).ToString() + "." + (randomTiempos % 1000)+" seg.";
                try
                {
                    setDisponible = oPoolService.SetDisponible(empleado, 1).Complete;
                    if (setDisponible == true)
                    {
                        generaTurno = oTurnosService.GeneraTurno("1", unidadNegocio, "0", 1).Complete;
                        if (generaTurno == true)
                        {
                            oTurno = oTurnosService.ObtenerTurnoAsignado(fecha, unidadNegocio, empleado);
                            string noEmpleadoAtiende = oTurno.Empleado.NoEmpleado;
                            string fechaAtiende = oTurno.Fecha.ToString();
                            string idTurnoAtiende = oTurno.IdTurno.ToString();
                            string idUnidadNegocioAtiende = oTurno.IdUnidadNegocio.ToString();
                            atiendeTurno = oTurnosService.AtenderTurno(noEmpleadoAtiende, fechaAtiende, idTurnoAtiende, idUnidadNegocioAtiende, 1).Complete;
                            idTurnoFlow = idTurnoAtiende;
                            Thread.Sleep(randomTiempos);
                            //MessageBox.Show("Tiempo en atender turno:" + randomTiempos/1000);
                            if (atiendeTurno == true)
                            {
                                oTurno = oTurnosService.ObtenerTurnoAtendiendo(fecha, empleado);
                                string noEmpleadoFinaliza = oTurno.Empleado.NoEmpleado;
                                string fechaFinaliza = oTurno.Fecha.ToString();
                                string idTurnoFinaliza = oTurno.IdTurno.ToString();
                                string idUnidadNegocioFinaliza = oTurno.IdUnidadNegocio.ToString();
                                finalizaTurno = oTurnosService.FinalizarTurno(noEmpleadoFinaliza, fechaFinaliza, idTurnoFinaliza, idUnidadNegocioFinaliza, 1).Complete;
                                if (finalizaTurno == true)
                                {
                                    turnosTotalValue = i + 1;
                                }
                                else
                                {
                                    error = "Error al finalizar el turno";
                                    break;
                                }
                            }
                            else
                            {
                                error = "Error al atender el turno";
                                break;
                            }
                        }
                        else
                        {
                            error = "Error al generar turno";
                            break;
                        }
                    }
                    else
                    {
                        error = "Error al poner disponible al empleado";
                        break;
                    }

                }
                catch (Exception exHappy)
                {
                    string exepcion = exHappy.GetType().ToString();
                    if (exepcion == "System.Threading.ThreadAbortException")
                    {
                        MessageBox.Show("Happy Path cancelado", "Cancelado");
                    }
                    else
                    {
                        MessageBox.Show("Error en Happy Path:" + exHappy.Data, "Error");
                        break;
                    }
                }
            }
            if (error != null)
            {
                MessageBox.Show(error, "Error");
            }
            else
            {
                MessageBox.Show("Se completo el flujo " + turnosTotalValue + " veces exitosamente", "Happy path completo");
            }
        }