Exemplo n.º 1
0
        private void button5_Click(object sender, EventArgs e)
        {
            if ((listaAlternativas.Count > 2) && (listaCriteiro.Count > 2))
            {
                dato = new DALDatos();

                foreach (criterio cri in listaCriteiro)
                {
                    dato.altaCriterio(id_proyecto, cri.nombre, cri.descripcion);
                }

                foreach (alternativa alt in listaAlternativas)
                {
                    dato.altaAlternativa(id_proyecto, alt.nombre, alt.descripcion);
                }

                List<experto> listaExp = dato.expertosPorProyecto(id_proyecto);
                List<criterio> listaCri = dato.criteriosPorProyecto(id_proyecto);
                List<alternativa> listaAlt = dato.alternativasPorProyecto(id_proyecto);

                foreach(experto exp in listaExp)
                {
                    dato.altaMatrizCriterio(id_proyecto, exp.id_experto);

                    foreach (criterio cri in listaCri)
                    {
                        dato.altaMatrizAlternativa(id_proyecto, exp.id_experto, cri.id_criterio);
                    }
                }

                Queue<criterio> colaCri;
                Queue<alternativa> colaAlt;

                foreach (experto exp in listaExp)
                {
                    int fila = 0;
                    int columna;

                    colaCri = dato.colaCriterios(id_proyecto);
                    foreach (criterio c in listaCri)
                    {
                        columna = fila;
                        colaCri.Dequeue();
                        foreach (criterio c2 in colaCri)
                        {
                            columna++;
                            dato.guardarComparacionCriterios(id_proyecto, exp.id_experto, c.id_criterio, c2.id_criterio, fila, columna, 0);
                        }
                        fila++;
                    }
                }

                foreach (experto exp in listaExp)
                {
                    foreach (criterio cri in listaCri)
                    {
                        int fila = 0;
                        int columna;
                        colaAlt = dato.colaAlternativas(id_proyecto);

                        foreach (alternativa a in listaAlt)
                        {
                            columna = fila;
                            colaAlt.Dequeue();
                            foreach (alternativa a2 in colaAlt)
                            {
                                columna++;
                                dato.guardarComparacionAlternativas(id_proyecto, exp.id_experto, cri.id_criterio, a.id_alternativa, a2.id_alternativa, fila, columna, 0);
                            }
                            fila++;
                        }
                    }
                }

                MessageBox.Show("Las alternativas y criterios se han creado correctamente. Las asignaciones se realizaron satisfactoriamente.");
                this.Close();
            }
            else
                MessageBox.Show("La cantidad mínima para cada conjunto de alternativas o criterios es de 3.");
        }