public void getRelaciones(DataSet dsData, List <clsRelaciones> clRelaciones)
        {
            try
            {
                int iCounRelations = clRelaciones.Count;
                for (int r = 0; r < iCounRelations; r++)
                {
                    clsRelaciones cRelaciones = new clsRelaciones();
                    cRelaciones = clRelaciones[r];

                    dsData.Relations.Add(cRelaciones.RelationName, dsData.Tables[cRelaciones.RelationParentName].Columns[cRelaciones.lRelationParentColumns[0].ColumnName], dsData.Tables[cRelaciones.RelationChildName].Columns[cRelaciones.lRelationChildColumns[0].ColumnName], cRelaciones.Constraints);
                }
            }
            catch (Exception Ex)
            {
                clsParametros cParametros = new clsParametros();
                cParametros.Id          = 0;
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.Library;
                cParametros.Metodo      = "clsRelaciones";
                cParametros.Complemento = "Creando relacion: Datset " + dsData.DataSetName.ToString();
                cParametros.Source      = Ex.Source;
                cParametros.StackTrace  = Ex.StackTrace;
                ExceptionHandled.Publicar(cParametros);
            }
        }
        public clsEstructura getEstructura(DataSet dsData)
        {
            clsEstructura        cEstructura  = new clsEstructura();
            List <clsRelaciones> lcRelaciones = new List <clsRelaciones>();
            List <clsTabla>      lcTablas     = new List <clsTabla>();

            cEstructura.DataId   = 0;
            cEstructura.DataName = dsData.DataSetName;
            try
            {
                int iCounTable = dsData.Tables.Count;

                for (int t = 0; t < iCounTable; t++)
                {
                    int                iCountColumns = dsData.Tables[t].Columns.Count;
                    clsTabla           cTabla        = new clsTabla();
                    List <clsColumnas> lcColumnas    = new List <clsColumnas>();
                    cTabla.TableId   = t;
                    cTabla.TableName = dsData.Tables[t].TableName;
                    for (int c = 0; c < iCountColumns; c++)
                    {
                        clsColumnas cColumnas = new clsColumnas();
                        cColumnas.ColumnId   = c;
                        cColumnas.ColumnName = dsData.Tables[t].Columns[c].ColumnName;
                        cColumnas.ColumnType = dsData.Tables[t].Columns[c].DataType.Name;
                        lcColumnas.Add(cColumnas);
                    }
                    cTabla.lColumns = lcColumnas;
                    lcTablas.Add(cTabla);
                }

                int iCounRelations = dsData.Relations.Count;

                for (int r = 0; r < iCounRelations; r++)
                {
                    clsRelaciones cRelations = new clsRelaciones();
                    cRelations.RelationsId        = r;
                    cRelations.RelationName       = dsData.Relations[r].RelationName;
                    cRelations.RelationParentName = dsData.Relations[r].ParentTable.TableName;
                    cRelations.RelationChildName  = dsData.Relations[r].ChildTable.TableName;

                    List <clsColumnas> lcColumnasRelaParent = new List <clsColumnas>();
                    List <clsColumnas> lcColumnasRelaChild  = new List <clsColumnas>();

                    int iCountColumnsRela = dsData.Relations[r].ParentColumns.Length;
                    for (int cp = 0; cp < iCountColumnsRela; cp++)
                    {
                        clsColumnas cColumnasRelaParent = new clsColumnas();
                        cColumnasRelaParent.ColumnId   = cp;
                        cColumnasRelaParent.ColumnName = dsData.Relations[r].ParentColumns[cp].ColumnName;
                        cColumnasRelaParent.ColumnType = dsData.Relations[r].ParentColumns[cp].DataType.Name;
                        lcColumnasRelaParent.Add(cColumnasRelaParent);
                    }

                    iCountColumnsRela = dsData.Relations[r].ChildColumns.Length;
                    for (int cp = 0; cp < iCountColumnsRela; cp++)
                    {
                        clsColumnas cColumnasRelaChild = new clsColumnas();
                        cColumnasRelaChild.ColumnId   = cp;
                        cColumnasRelaChild.ColumnName = dsData.Relations[r].ChildColumns[cp].ColumnName;
                        cColumnasRelaChild.ColumnType = dsData.Relations[r].ChildColumns[cp].DataType.Name;
                        lcColumnasRelaChild.Add(cColumnasRelaChild);
                    }
                    cRelations.lRelationParentColumns = lcColumnasRelaParent;
                    cRelations.lRelationChildColumns  = lcColumnasRelaChild;
                    lcRelaciones.Add(cRelations);
                }
                cEstructura.lRelations = lcRelaciones;
                cEstructura.lTable     = lcTablas;
            }
            catch (Exception Ex)
            {
                clsParametros cParametros = new clsParametros();
                cParametros.Id          = 0;
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.Library;
                cParametros.Metodo      = "clsEstructura";
                cParametros.Complemento = "Creando estructura dataset " + dsData.DataSetName.ToString();
                cParametros.Source      = Ex.Source;
                cParametros.StackTrace  = Ex.StackTrace;
                ExceptionHandled.Publicar(cParametros);
            }
            return(cEstructura);
        }