/*
  * Requiere: N/A
  * Modifica: Inicializa las controladoras.
  * Retorna: N/A.
  */
 public ControladoraReportes()
 {
     controlProy = new ControladoraProyecto();
     controlDis = new ControladoraDisenno();
     controlCasos = new ControladoraCasosPrueba();
     controlEjec = new ControladoraEjecucionPrueba();
     controlRH = new ControladoraRecursosHumanos();
     controlReq = new ControladoraRequerimiento();
 }
        /*
         * Requiere: N/A
         * Modifica: Se encarga de pedir la información principal del diseño al cual se asocia el caso de prueba.
         * Retorna: Lista de hileras.
         */
        protected List<string> infoDisenno()
        {
            ControladoraDisenno cd = new ControladoraDisenno();
            ControladoraRequerimiento cr = new ControladoraRequerimiento();

            List<string> tabla = cd.infoDisenno();
            string proposito = tabla[0].ToString();
            string nivel = tabla[1].ToString();
            string tecnica = tabla[2].ToString();
            string ambiente = tabla[3].ToString();
            string procedimiento = tabla[4].ToString();
            string fecha = tabla[5].ToString();
            string criterios = tabla[6].ToString();
            string responsable = tabla[7].ToString();
            string proyecto = tabla[8].ToString();

            int id_diseno = cd.consultarId_Disenno(proposito);
            DataTable dt = cr.consultarRequerimientoEnDiseno(Int32.Parse(proyecto), id_diseno);

            string requerimientos = "";
            foreach (DataRow row in dt.Rows)
            {
                requerimientos = requerimientos + ";" + row["id_requerimiento"].ToString();
            }
            tabla.Add(requerimientos);
            return tabla;
        }
        /*
         * Requiere: Evento de dar click al botón "Aceptar".
         * Modifica: Se encarga de efectuar la inserción o modificación llamando a la Controladora de Casos de Prueba, usando los datos ingresados en los campos y confirmando al usuario el resultado de la operación.
         * Retorna: N/A
         */
        protected void BotonCPAceptar_Click(object sender, EventArgs e)
        {
            ControladoraDisenno cd = new ControladoraDisenno();
            Object[] datosNuevos = new Object[7];
            datosNuevos[0] = this.TextBoxID.Text;
            datosNuevos[1] = this.TextBoxPropositoCP.Text;
            datosNuevos[2] = datosEntrada();
            datosNuevos[3] = this.TextBoxResultadoCP.Text;
            datosNuevos[4] = this.TextBoxFlujoCentral.Text;
            String prop = cd.infoDisenno()[0].ToString();
            datosNuevos[5] = cd.consultarId_Disenno(prop); //recordar modificar cuando se tenga el id del diseño

            int operacion = -1;
            if(modo == 1)
            {
                datosNuevos[6] = "";
                operacion = controladoraCasosPrueba.insertarCasosPrueba(datosNuevos);
            }
            else if( modo == 2)
            {
                datosNuevos[6] = idMod;
                operacion = controladoraCasosPrueba.modificarCasosPrueba(datosNuevos);
            }
            if (operacion == 1)
            {
                switch (modo)
                {
                    case 1:
                    {
                        EtiqMensajeOperacion.Text = "El caso de prueba ha sido insertado con éxito";
                        desmarcarBoton(ref BotonCPInsertar);
                        break;
                    }
                    case 2:
                    {
                        EtiqMensajeOperacion.Text = "El caso de prueba ha sido modificado con éxito";
                        desmarcarBoton(ref BotonCPModificar);
                        break;
                    }
                }
                EtiqMensajeOperacion.ForeColor = System.Drawing.Color.DarkSeaGreen;
                llenarGrid();
                estadoPostOperacion();
            }
            else
            {
                switch(operacion)
                {
                    case 2627:
                    {
                        EtiqMensajeOperacion.Text = "Insertó un id de caso de prueba ya existente, debe modificarlo.";
                        TextBoxID.BorderColor = System.Drawing.Color.Red;
                        break;
                    }
                    default:
                    {
                        EtiqMensajeOperacion.Text = "Ocurrió un problema en la operación.";
                        break;
                    }
                }
                EtiqMensajeOperacion.ForeColor = System.Drawing.Color.Salmon;
            }
                EtiqMensajeOperacion.Visible = true;
                ClientScript.RegisterStartupScript(this.GetType(), "alert", "HideLabel();", true);
        }