private Dictionary <string, object> CodigoDeAdomd1Dimension(string query)
        {
            Dictionary <string, object> resultado = new Dictionary <string, object>();
            AdomdConnection             con       = new AdomdConnection("Data Source=DESKTOP-MF82JHU;catalog=FullOlapCube");

            con.Open();
            AdomdCommand    cmd             = new AdomdCommand(query, con);
            CellSet         cs              = cmd.ExecuteCellSet();
            TupleCollection tuplesOnColumns = cs.Axes[0].Set.Tuples;

            Microsoft.AnalysisServices.AdomdClient.Tuple tp = cs.Axes[1].Set.Tuples[1];
            string tituloX = tp.Members[0].ParentLevel.Caption;
            string tituloY = "";

            foreach (Microsoft.AnalysisServices.AdomdClient.Tuple column in tuplesOnColumns)
            {
                tituloY = column.Members[0].Caption;
            }

            TupleCollection tuplesOnRows = cs.Axes[1].Set.Tuples;
            List <string>   listaNombres = new List <string>();
            List <double>   listaValores = new List <double>();

            for (int row = 0; row < tuplesOnRows.Count; row++)
            {
                for (int members = 0; members < tuplesOnRows[row].Members.Count; members++)
                {
                    listaNombres.Add(tuplesOnRows[row].Members[members].Caption);
                    listaValores.Add(Convert.ToDouble(cs.Cells[0, row].FormattedValue));
                }
            }
            con.Close();
            resultado.Add("listaNombres", listaNombres);
            resultado.Add("listaValores", listaValores);
            resultado.Add("tituloX", tituloX);
            resultado.Add("tituloY", tituloY);
            return(resultado);
        }
        private Dictionary <string, object> CodigoDeAdomd2DimensionSA(string query)
        {
            Dictionary <string, object> resultado = new Dictionary <string, object>();
            AdomdConnection             con       = new AdomdConnection("Data Source=DESKTOP-MF82JHU;catalog=FullOlapCube");

            con.Open();
            AdomdCommand    cmd             = new AdomdCommand(query, con);
            CellSet         cs              = cmd.ExecuteCellSet();
            TupleCollection tuplesOnColumns = cs.Axes[0].Set.Tuples;

            Microsoft.AnalysisServices.AdomdClient.Tuple tp = cs.Axes[1].Set.Tuples[1];
            string tituloX = tp.Members[0].ParentLevel.Caption;
            string tituloY = "";

            foreach (Microsoft.AnalysisServices.AdomdClient.Tuple column in tuplesOnColumns)
            {
                tituloY = column.Members[0].Caption;
            }

            TupleCollection tuplesOnRows = cs.Axes[1].Set.Tuples;
            //List<string> listaNombres = new List<string>();
            //List<double> listaValores = new List<double>();
            int row    = 0;
            int rowAux = 0;
            List <LineSeries> seriesList  = new List <LineSeries>();
            List <string>     seriesLabel = new List <string>();

            //Convert cvv = new Convert();
            while (row < tuplesOnRows.Count)
            {
                string            firstCategory = tuplesOnRows[rowAux].Members[0].Caption;
                StackedAreaSeries ls            = new StackedAreaSeries();
                ls.Title = firstCategory;
                ChartValues <DateTimePoint> cv = new ChartValues <DateTimePoint>();

                while (tuplesOnRows[row].Members[0].Caption == firstCategory)
                {
                    //for (int members = 0; members < tuplesOnRows[row].Members.Count; members++)
                    //{
                    DateTimePoint dtp = new DateTimePoint();
                    dtp.DateTime = new DateTime(Convert.ToInt32(tuplesOnRows[row].Members[1].Caption), 1, 1);
                    seriesLabel.Add(tuplesOnRows[row].Members[1].Caption);
                    //}
                    for (int col = 0; col < tuplesOnColumns.Count; col++)
                    {
                        dtp.Value = Convert.ToDouble(cs.Cells[col, row].FormattedValue);
                        cv.Add(dtp);
                        //listaValores.Add(Convert.ToDouble(cs.Cells[col, row].FormattedValue));
                    }
                    row++;
                    if (row == tuplesOnRows.Count)
                    {
                        break;
                    }
                }
                ls.Values = cv;
                rowAux    = row;
                seriesList.Add(ls);
            }



            con.Close();
            resultado.Add("listaNombres", seriesLabel);
            resultado.Add("listaValores", seriesList);
            resultado.Add("tituloX", tituloX);
            resultado.Add("tituloY", tituloY);
            return(resultado);
        }