public void EstructuraXML(clsEstructura cEstructura, string strArchivoXML)
        {
            string        strPathXML   = clsValidaciones.CacheTempCrea();
            XmlSerializer SerializerRQ = new XmlSerializer(typeof(clsEstructura));
            StreamWriter  WriterRQ     = new StreamWriter(strPathXML + strArchivoXML + ".xml");

            try
            {
                SerializerRQ.Serialize(WriterRQ, cEstructura);
                WriterRQ.Flush();
                WriterRQ.Close();
            }
            catch
            {
                WriterRQ.Flush();
                WriterRQ.Close();
            }
        }
        public void CrearDataSet(DataSet dsData, XmlDocument xmlDoc, string sEncabezado)
        {
            try
            {
                clsEstructura cEstructura = new clsEstructura();
                cEstructura = cEstructura.getEstructura(dsData);

                int iCounTables = cEstructura.lTable.Count;
                for (int t = 0; t < iCounTables; t++)
                {
                    string  sTableName = cEstructura.lTable[t].TableName;
                    XmlNode XMLTables_ = xmlDoc[sEncabezado][sTableName];

                    foreach (XmlNode XMLTable_ in XMLTables_.ChildNodes)
                    {
                        DataRow RowTable_     = dsData.Tables[sTableName].NewRow();
                        int     iCountColumns = cEstructura.lTable[t].lColumns.Count;

                        for (int c = 0; c < iCountColumns; c++)
                        {
                            RowTable_[cEstructura.lTable[t].lColumns[c].ColumnName] = XMLTable_[cEstructura.lTable[t].lColumns[c].ColumnName].InnerText;
                        }
                        dsData.Tables[sTableName].Rows.Add(RowTable_);
                    }
                }
            }
            catch (Exception Ex)
            {
                clsParametros cParametros = new clsParametros();
                cParametros.Id          = 0;
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.Library;
                cParametros.Metodo      = "clsSerialzer";
                cParametros.Complemento = "Creando dataset " + 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);
        }