private void btnBuscarSimBorrar_Click_1(object sender, EventArgs e)
        {
            if (lBoxBuscSimList.SelectedIndex > -1)
            {
                if (MessageBox.Show("La simulación se eliminará de manera permanente.¿Desea continuar?", "", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return;

                try
                {
                    Simulaciones simulacionSeleccionada;

                    simulacionSeleccionada = context.Simulaciones.Where(x => x.Id == ((Simulaciones)lBoxBuscSimList.SelectedItem).Id).ToList().FirstOrDefault();

                    context.Simulaciones.Remove(simulacionSeleccionada);

                    context.SaveChanges();

                    buscarSimulacionesDisponibles();
                }
                catch(Exception exc)
                {
                    MessageBox.Show("No se pudo eliminar la simulación\n\n" + exc.Message);
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar alguna Simulacion.");
            }
        }
 private void button1_Click(object sender, EventArgs e)
 {
     //Boton Seleccionar
     if (lBoxBuscSimList.SelectedIndex > -1)
     {
         //Se selecciono algun item
         simulacionSeleccionada = (Simulaciones)lBoxBuscSimList.Items[lBoxBuscSimList.SelectedIndex];
         this.DialogResult = DialogResult.OK;
         Close();
     }
     else
     {
         MessageBox.Show("Debe seleccionar alguna Simulacion.");
     }
 }
        private void btnSimGuardar_Click(object sender, EventArgs e)
        {
            string errorStr = "";

            if (!Util.EsAlfaNumerico(tbSimNombre.Text))
            {
                errorStr += "Nombre: Incompleto ó Incorrecto\n";
            }

            if (!Util.EsNumerico(tbSimFrecuencia.Text))
            {
                errorStr += "Frecuencia: Incompleta ó Incorrecta\n";
            }

            if (!Util.EsNumerico(tbSimDuracion.Text))
            {
                errorStr += "Duracion: Incompleta ó Incorrecta\n";
            }

            if(lBoxSimTrazas.SelectedItem == null)
            {
                errorStr += "Falta Seleccionar una Traza";
            }

            //TODO revisar listbox, quizas el de servicios deberia ser un combobox

            if (errorStr.Length == 0)
            {
                try
                {   /*si la simulacion es null o su id es igual a 0 quiere decir que la misma no existe en la bd*/
                    if (simulacion == null || simulacion.Id == 0)
                    {
                        simulacion = new Simulaciones();

                        simulacion.Nombre = tbSimNombre.Text;

                        simulacion.Frecuencia_Salida = Convert.ToInt32(tbSimFrecuencia.Text);

                        simulacion.Tiempo_Final = Convert.ToInt32(tbSimDuracion.Text);

                        simulacion.Trazas = (Trazas)lBoxSimTrazas.SelectedItem;

                        //TODO cargar servicios

                        context.Simulaciones.Add(simulacion);
                    }
                    else
                    {
                        //Simulaciones s;
                        //s = new Simulaciones();//simulacion = context.Simulaciones.Where(x => x.Nombre.Equals(tbSimNombre.Text)).FirstOrDefault();

                        simulacion.Nombre = tbSimNombre.Text;

                        simulacion.Frecuencia_Salida = Convert.ToInt32(tbSimFrecuencia.Text);

                        simulacion.Tiempo_Final = Convert.ToInt32(tbSimDuracion.Text);

                        simulacion.Trazas = (Trazas)lBoxSimTrazas.SelectedItem;
                    }

                    context.SaveChanges();

                    MessageBox.Show("Simulación Guardada");
                }
                catch (Exception exc)
                {
                    MessageBox.Show("Simulación No Guardada\nError:\n" + exc.ToString());
                }
            }
            else
            {
                MessageBox.Show(errorStr);
            }
        }
        private void button5_Click(object sender, EventArgs e)
        {
            using (frmBuscarSimulacion frmBuscar = new frmBuscarSimulacion())
            {

                var result = frmBuscar.ShowDialog();

                if (result == DialogResult.OK)
                {
                    //simulacion = frmBuscar.simulacionSeleccionada;
                    simulacion = context.Simulaciones.Where(x => x.Id == frmBuscar.simulacionSeleccionada.Id).FirstOrDefault();
                    cargarCamposSimulacion();

            //                    this.btnSimGuardar.Enabled = false;
                }
            }
        }
        private void btnSimular_Click(object sender, EventArgs e)
        {
            string errorMsj = "";
            Trazas trazaSeleccionada = (Trazas)lBoxSimTrazas.SelectedItem;

            if (!Util.EsAlfaNumerico(tbSimNombre.Text))
                errorMsj += "Nombre: incompleto o incorrecto.\n";
            if (!Util.EsNumerico(tbSimFrecuencia.Text))
                errorMsj += "Frecuencia: Incompleto ó Incorrecta.\n";
            else if (int.Parse(tbSimFrecuencia.Text) == 0)
                errorMsj += "Frecuencia: El valor debe ser positivo.\n";
            if (!Util.EsNumerico(tbSimDuracion.Text))
                errorMsj += "Duración: Incompleta ó Incorrecta.\n";
            else if (int.Parse(tbSimDuracion.Text) == 0)
                errorMsj += "Duración: El valor debe ser positivo.\n";
            if (trazaSeleccionada == null)
                errorMsj += "Ninguna traza ha sido seleccionada.\n";

            if (string.IsNullOrEmpty(errorMsj))
            {
                //esto es de Facu
                //simulacion = new Simulaciones();
                //simulacion.Trazas = trazaSeleccionada;
                //simulacion.Tiempo_Final = Convert.ToInt32(tbSimDuracion.Text) * 60;//Paso la duracion de la simulacion a minutos
                //simulacion.Frecuencia_Salida = Convert.ToInt32(tbSimFrecuencia.Text);
                //simulacion.EjecutarSimulacion();
                //Console.WriteLine("Fin Simulación, reportar");
                //reportar();
                //jonahtan
                simulacion = new Simulaciones();
                simulacion.Trazas = trazaSeleccionada;
                simulacion.Tiempo_Final = Convert.ToInt32(tbSimDuracion.Text) * 60; //Paso la duracion de la simulacion a minutos
                simulacion.Frecuencia_Salida = Convert.ToInt32(tbSimFrecuencia.Text);
                //simulacion.EjecutarSimulacion(); esto es de Facu
                Thread threadSimulacion = new Thread(new ThreadStart(simulacion.EjecutarSimulacion)); // creo el hilo de la simulacion
                threadSimulacion.Start(); //arranco el hilo
                frmBarraProgreso barra = new frmBarraProgreso(threadSimulacion, Convert.ToDouble(simulacion.Frecuencia_Salida), Convert.ToDouble(simulacion.Tiempo_Final)); //creo la barra de progreso
                barra.ShowDialog(); //muestro la barra
                threadSimulacion.Join(); //espero a que el hilo termine ya sea porque 1)termino bien 2) o le dieon cancelar
                Console.WriteLine("Fin Simulación");
                if (barra.estado) //si la simulacion termino correctamente muestro el reportar
                {
                    reportar();
                    Console.WriteLine("Fin Reportes");
                }
            }
            else
                MessageBox.Show(errorMsj);
        }